012 整合Servlet、原始jdbc、jsp

============

利用 Servlet、原始jdbc、jsp写一个简单的学生管理系统雏形

大概的文件结构(粗略)

main里放的是servlet , file里是配置文件,login是登录的界面,student.jsp是简单的显示出学生信息的界面

首先创建2张表,1张是用户表users,一般是老师或者管理员用的,因为学生没有资格来管理,所以学生表要另建一张student表

用户表

学生表

然后就是写Dao接口,管理员的UserDao

public interface User
{
	//这里就简单写一个Boolen判断是否登录成功,以后这里肯定是要返回个人信息的
	boolean login(String us,String pass);
}

这是学生的结构,后面应该是单独写一个Bean包把这个结构放进去

public class MyStudent
{
	private int id;
	private String name;
	private String address;
	public String getName()
	{
		return name;
	}
	public void setName(String name)
	{
		this.name = name;
	}
	public String getAddress()
	{
		return address;
	}
	public void setAddress(String address)
	{
		this.address = address;
	}
	public int getId()
	{
		return id;
	}
	public void setId(int id)
	{
		this.id = id;
	}
}

学生的Dao

public interface Student
{
     //查找所有学生返回到list里
	 List<MyStudent> findAll();
}

然后是写UserImp实现类

public class UserImp implements User
{
	Connection connection1 = null;
	PreparedStatement ps1 = null;
	ResultSet resultSet1 = null;

	public boolean login(String user,String pass)
	{
		try
		{
			// 获取连接
			connection1 = JDBCUtil.getConnection();

			//查询用户密码
			String sql = "select * from users where username=? and password=?";
			
			//预处理声明语句
			ps1 = connection1.prepareStatement(sql);
			ps1.setString(1, user);
			ps1.setString(2, pass);

			//执行查询
			resultSet1 = ps1.executeQuery();
			
			//如果next有数据,就会返回真,直接返回即可
			return resultSet1.next();
			
		} catch (SQLException e)
		{
			e.printStackTrace();
		}finally {
			JDBCUtil.release(resultSet1, ps1, connection1);
		}
		return false;
	}
}

StudentImp实现类

把查出来的数据存入先封装到一个Student对象里,然后存入list即可

public class StudentImp implements Student
{
	Connection connection1 = null;
	PreparedStatement ps1 = null;
	ResultSet resultSet1 = null;
	
	public List<MyStudent> findAll()
	{
		try
		{
			connection1 = JDBCUtil.getConnection();

			String sql = "select * from student";
			ps1 = connection1.prepareStatement(sql);
			
			resultSet1 =ps1.executeQuery();
			
			List<MyStudent>list1=new ArrayList<MyStudent>();
			
			while(resultSet1.next())
			{
				MyStudent stu1=new MyStudent();
				stu1.setId(resultSet1.getInt("id"));
				stu1.setName(resultSet1.getString("name"));
				stu1.setAddress(resultSet1.getString("address"));
				list1.add(stu1);
			}
			
			return list1;
		} catch (SQLException e)
		{
			e.printStackTrace();
		}finally {
			JDBCUtil.release(resultSet1, ps1, connection1);
		}
		return null;
	}
}

Login.html的页面

	<!-- 	使用post方式 -->
	<form action="LoginServlet" method="post">
	帐号:  <input type="text"name="username"/>
	密码:  <input type="text"name="password"/>
	<input type="submit" value="登录" />
	</form>

写servlet

public class LoginServlet extends HttpServlet
{
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
	{
		 //提交的数据可能有中文,设置编码(我们现在是post提交方式,所以可以用这个命令)
		request.setCharacterEncoding("UTF-8");
		
		//设置输出到浏览器的编码方式
		response.setContentType("text/html;charset=utf-8");
		
		//获取参数
		String username=request.getParameter("username");
		String password=request.getParameter("password");
		
		System.out.println("username="+username+"  password="+password);
		
		//创建用户的实现类,并且看是否可以登录,可以的话就跳转到学生管理界面
		User dao1=new UserImp();
		boolean isSucess=dao1.login(username,password);
		
		if (isSucess)
		{
			response.getWriter().write("登录成功");
			
			Student  stu1=new StudentImp();
			List<MyStudent>list1=stu1.findAll();
			
			//把这个list存到作用域里面传给student.jsp
			request.getSession().setAttribute("list", list1);
			
			
			//重定向跳到student.jsp
			response.sendRedirect("student.jsp");
			
		}else {
			response.getWriter().write("登录失败");
		}
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
	{
		doGet(request, response);
	}

}

跳转到的页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
		<br>学生列表</br>
		
		<table border="1px" width="700">
				<tr align="center">
						<td>id</td>
						<td>姓名</td>
						<td>地址</td>			
				</tr>
				
				<!-- 	循环创建每个列表,需要用到jstl和el ,这个list是我们的session带过来的-->
				<c:forEach items="${list}" var="stu">
						<tr align="center">
								<td>${stu.id}</td>
								<td>${stu.name}</td>
								<td>${stu.address}</td>			
						</tr>
				</c:forEach>
		
		</table>

</body>
</html>

猜你喜欢

转载自blog.csdn.net/yzj17025693/article/details/82839097