java web
程序员文章站
2022-03-25 17:53:57
1、Servlet总结 在Java Web程序中,Servlet主要负责接收用户请求 HttpServletRequest,在doGet(),doPost()中做相应的处理,并将回应HttpServletResponse反馈给用户。Servlet 可以设置初始化参数,供Servlet内部使用。一个S ......
JSP(前端页面)+Servlet(控制器)+JavaBean(数据获取与封装组件),创建DAO获取数据库数据,创建VO封装取回的数据,并用EL表达式展示在页面中。实现一个数据库的模糊查询。(java web实验报告)
1.首项给大家看一下我这个web实验的目录
2.软件准备:MyEclipse和MySQL数据库
2-1.MySQL数据库:
首先我在MySQL数据库里面建立一张名为:t_student的表:
3.核心代代码:
3-1.jsp代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.*" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<body>
<form action="Test_servlet" method="POST">
请输入学生信息:<input type="text" name="stuinfo">
<input type="submit" value="查询">
</form>
<!-- 这里的stuinfor标识的是session里面的student数据,这里直接使用stuinfor去获取session里面的数据 -->
<c:forEach items="${stuinfor }" var="student">
姓名:${student.stuname }
学号:${student.stuno }<br>
</c:forEach>
</body>
</html>
jsp代码中我使用了forEach核心标签去遍历session中的数据,这里我直接使用的是taglib指令去声明jsp代码使用的标签库。
然后将相应的java包导入lib目录下。
3-2.servlet代码(doGet方法):
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//接受表单传来的数据
try {
request.setCharacterEncoding("UTF-8");
String stuinfor = request.getParameter("stuinfo");
DAO dao = new DAO();
ArrayList<String> student = dao.queryAllStudents(stuinfor);
HttpSession session = request.getSession();
// 这里我将student数据存储在session中并用stuinfor(相当于student数据的一个名字叫做stuinfor)来标识它,以后需要用到student数据就直接使用stuinfor
session.setAttribute("stuinfor", student);
response.sendRedirect("submit_inform.jsp");
}
catch (Exception e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
这个代码里,我将取回的数据放在了session中;然后注意一点记得重定向一下:
response.sendRedirect("submit_inform.jsp");
3-3.Beans包代码(连接数据库)
DAO.jsp代码
package Beans;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
public class DAO {
public ArrayList<String> queryAllStudents(String stuinfor) throws Exception{
java.sql.Connection conn = null;
ArrayList students = new ArrayList();
try{
//获取连接
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8",
user,password);
String sql = "select * from t_student where stuno like '%"+stuinfor+"%' or stuname like '%"+stuinfor+"%' or stusex like '%"+stuinfor+"%'";
Statement stat = conn.createStatement();
ResultSet rs = stat.executeQuery(sql);
while(rs.next()){
Students student = new Students();
student.setStuno(rs.getString("stuno"));
student.setStuname(rs.getString("stuname"));
students.add(student);
}
rs.close();
stat.close();
}catch(SQLException e){
e.printStackTrace();
}finally{
try{
//关闭连接
if(conn!=null){
conn.close();
conn=null;
}
}catch(Exception ex){
}
}
return students;
}
}
DriverManager.getConnection("jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8",
user,password);
这段代码中的user是自己创建数据库时的用户名,password是密码(这里根据自己的情况而定)
Student.jsp代码
package Beans;
public class Students {
private String stuno;
private String stuname;
// 给每个成员变量定义setter/getter方法
public String getStuno() {
return stuno;
}
public void setStuno(String stuno) {
this.stuno = stuno;
}
public String getStuname() {
return stuname;
}
public void setStuname(String stuname) {
this.stuname = stuname;
}
}
4.结果截图
5.总结
jsp:主要是用来用户展示数据,输入数据的地方 servlet:我觉得是一个数据中转站 javabean:实际操作的地方(本次实验主要是创建了一个DAO.jsp去访问数据库)
这篇文章是我第一次写博客所写,有很多不足地方,忘大家批评指正。有什么问题,大家也可以留言,欢迎大家一起交流学习!!!!
本文地址:https://blog.csdn.net/qq_45675616/article/details/111072235