============
利用 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>