java web

JSP(前端页面)+Servlet(控制器)+JavaBean(数据获取与封装组件),创建DAO获取数据库数据,创建VO封装取回的数据,并用EL表达式展示在页面中。实现一个数据库的模糊查询。(java web实验报告)

1.首项给大家看一下我这个web实验的目录
submit_inform.jsp代码主要使用来提交表单数据给servlet和显示session里面的数据到前端页面上。servlet包里面的Test_servlet.jsp主要使用来中转数据。Beans包里面的DAO.jsp用来访问数据库,Student.java 代码主要是用来创建VO封装取回来的数据。 filter包里面的代码主要用来处理中文乱码的问题。

2.软件准备:MyEclipse和MySQL数据库

2-1.MySQL数据库:
首先我在MySQL数据库里面建立一张名为:t_student的表:
表的主键我设置的是stuno
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去访问数据库)
这篇文章是我第一次写博客所写,有很多不足地方,忘大家批评指正。有什么问题,大家也可以留言,欢迎大家一起交流学习!!!!

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Champion.XL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值