JavaWeb期末作业---jsp+tomcat+servlet+jdbc---登录+jsp分页查询+增删改查
·
前言
本次作业工具的使用版本:idea2023 tomcat 10.0 mysql 8.0 mysql连接驱动8.0 jdk 11
本文代码的登录修改增加有很多数据和异常未处理,可能会出现数据有误或报空指针异常,登录也没有使用过滤器拦截,需要可以自行添加
数据库用户名和密码需要在DB类中改为自己的用户名和密码
一、环境搭建:
1.创建空项目

2.创建模块

3.添加框架支持

3.添加web应用程序

4.编辑配置

选择本地tomcat服务器
配置tomcat服务器



5.编辑项目结构


添加依赖


6.运行

弹出此页面表示成功

二、工具类及实体
1.数据库连接类DB.java
package com.example.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DB {
private static final String URL = "jdbc:mysql://localhost:3306/db_student";
private static final String USER = "root";
private static final String PASSWORD = "1234";
static {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
throw new RuntimeException("Unable to load MySQL JDBC driver. Check your classpath.");
}
}
public static Connection getConnection() throws SQLException {
Connection connection = DriverManager.getConnection(URL, USER, PASSWORD);
return connection;
}
}
2. PageHelper.java
package com.example.util;
public class PageHelper {
private Integer pageNo;//页码
private Integer pageSize=10;//默认每页显示10条数
private Integer pageCount;//总条数
private Integer pageTotal;//总页数
public Integer getPageTotal() {
return pageTotal;
}
public PageHelper() {
}
public PageHelper(int pageSize, int pageCount){
this.pageSize = pageSize;
this.pageCount = pageCount;
if (this.pageCount % this.pageSize == 0) {
// 计算总页数
this.pageTotal = this.pageCount / this.pageSize;
} else {
this.pageTotal = this.pageCount / this.pageSize + 1;
}
}
public Integer getPageNo() {
return pageNo;
}
public void setPageNo(Integer pageNo) {
this.pageNo = pageNo;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public Integer getPageCount() {
return pageCount;
}
public void setPageCount(Integer pageCount) {
this.pageCount = pageCount;
}
}
3.Student.java
package com.example.entity;
import java.time.LocalDateTime;
public class Student {
Integer studentId; //学生id
String studentNo ;//学生学号
String studentName;//学生姓名
String sex ; //学生性别
Integer age ;//学生年龄
String className ;//学生班级
String note ;//注释
LocalDateTime timeRenew;//时间
public Student() {
}
@Override
public String toString() {
return "Student{" +
"studentId=" + studentId +
", studentNo='" + studentNo + '\'' +
", studentName='" + studentName + '\'' +
", sex='" + sex + '\'' +
", age=" + age +
", className='" + className + '\'' +
", note='" + note + '\'' +
", timeRenew=" + timeRenew +
'}';
}
public Integer getStudentId() {
return studentId;
}
public void setStudentId(Integer studentId) {
this.studentId = studentId;
}
public String getStudentNo() {
return studentNo;
}
public void setStudentNo(String studentNo) {
this.studentNo = studentNo;
}
public String getStudentName() {
return studentName;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note;
}
public LocalDateTime getTimeRenew() {
return timeRenew;
}
public void setTimeRenew(LocalDateTime timeRenew) {
this.timeRenew = timeRenew;
}
public Student(String studentNo, String studentName, String sex, Integer age, String className, String note) {
this.studentNo = studentNo;
this.studentName = studentName;
this.sex = sex;
this.age = age;
this.className = className;
this.note = note;
}
}
三、功能实现
jsp文件放在web目录下
java文件放在src目录下
1.登录功能
login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登录页面</title>
<style>
form{
margin: 0 30% ;
}
</style>
</head>
<body>
<form action="/loginServlet" method="post">
学号:<input type="text" name="studentNo" value="123456" ><br>
姓名:<input type="text" name="studentName" value="admin" ><br>
<input type="submit" value="登录">
</form>
</body>
</html>
LoginServlet.java
import com.example.mapper.StudentMapper;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {
StudentMapper studentMapper;
{
try {
studentMapper = new StudentMapper();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");
String studentNo = req.getParameter("studentNo");
String studentName = req.getParameter("studentName");
try {
if(studentMapper.loginCheck(studentNo,studentName)){
req.getSession().setAttribute("studentName",studentName);
req.getRequestDispatcher("functionPage.jsp").forward(req,resp);
}else {
req.getRequestDispatcher("login.jsp").forward(req,resp);
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
}
StudentMapper
import com.example.entity.Student;
import com.example.util.DB;
import com.example.util.PageHelper;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class StudentMapper {
private Connection conn;
//重写无参构造方法来获取数据库连接
public StudentMapper() throws SQLException {
this.conn = DB.getConnection(); //获取数据库连接对象
}
//根据Id修改学生数据
public boolean updateById(String studentId, Student student) throws SQLException {
if (conn.isClosed()) {
conn = DB.getConnection();
}
//查询学号是否重复
PreparedStatement preparedStatement = conn.prepareStatement("select * from tb_student where studentNo=?");
preparedStatement.setString(1, student.getStudentNo());
ResultSet resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
return false;
}
preparedStatement = conn.prepareStatement("update tb_student set studentNo=?,studentName=?,sex=?,age=?,className=?," +
"note=?,timeRenew=? where studentId=?");
preparedStatement.setString(1, student.getStudentNo());
preparedStatement.setString(2, student.getStudentName());
preparedStatement.setString(3, student.getSex());
preparedStatement.setInt(4, student.getAge());
preparedStatement.setString(5, student.getClassName());
preparedStatement.setString(6, student.getNote());
preparedStatement.setTimestamp(7, new Timestamp(System.currentTimeMillis()));
preparedStatement.setString(8, studentId);
int i = preparedStatement.executeUpdate();
System.out.println("更新了" + i + "条数据");
//关闭连接
conn.close();
preparedStatement.close();
return true;
}
//根据ID查询学生数据
public Student getById(String studentNo) throws SQLException {
if (conn.isClosed()) {
conn = DB.getConnection();
}
Student student = new Student();
PreparedStatement preparedStatement = conn.prepareStatement("select * from tb_student where studentNo = ?");
preparedStatement.setString(1, studentNo);
ResultSet resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
student.setStudentId(resultSet.getInt("studentId"));
student.setStudentNo(resultSet.getString("studentNo"));
student.setStudentName(resultSet.getString("studentName"));
student.setSex(resultSet.getString("sex"));
student.setAge(Integer.parseInt(resultSet.getString("age")));
student.setClassName(resultSet.getString("className"));
student.setNote(resultSet.getString("note"));
student.setTimeRenew(resultSet.getTimestamp("timeRenew").toLocalDateTime());
}
//关闭连接
conn.close();
preparedStatement.close();
resultSet.close();
return student;
}
//查询总记录数
public int getCount() throws SQLException {
if (conn.isClosed()) {
conn = DB.getConnection();
}
//查询总记录数
PreparedStatement preparedStatement = conn.prepareStatement("select count(1) from tb_student");
ResultSet resultSet = preparedStatement.executeQuery();
int pageCount = 0;
while (resultSet.next()) {
pageCount = Integer.parseInt(resultSet.getString(1));
}
conn.close();
preparedStatement.close();
resultSet.close();
return pageCount;
}
//分页查询
public List<Student> getPage(PageHelper page) throws SQLException {
if (conn.isClosed()) {
conn = DB.getConnection();
}
conn = DB.getConnection();
//创建学生列表,存储学生信息
List<Student> list = new ArrayList<>();
//获取创建pageHelper对象并生成总页数
PreparedStatement pre = conn.prepareStatement("select *" +
"from tb_student limit ?,?");
pre.setInt(1, (page.getPageNo() - 1) * page.getPageSize());
pre.setInt(2, page.getPageSize());
//执行查询
ResultSet resultSet = pre.executeQuery();
while (resultSet.next()) {
//将数据装入学生列表
Student student = new Student();
student.setStudentId(resultSet.getInt("studentId"));
student.setStudentNo(resultSet.getString("studentNo"));
student.setStudentName(resultSet.getString("studentName"));
student.setSex(resultSet.getString("sex"));
student.setAge(resultSet.getInt("age"));
student.setClassName(resultSet.getString("className"));
student.setNote(resultSet.getString("note"));
student.setTimeRenew(resultSet.getTimestamp("timeRenew").toLocalDateTime());
list.add(student);
}
//关闭连接
conn.close();
pre.close();
resultSet.close();
return list;
}
//登录校验
public boolean loginCheck(String studentNo, String studentName) throws SQLException {
if (conn.isClosed()) {
conn = DB.getConnection();
}
PreparedStatement preparedStatement = conn.prepareStatement("select * from tb_student where studentNo=? and " +
"studentName=?");
preparedStatement.setString(1, studentNo);
preparedStatement.setString(2, studentName);
ResultSet res = preparedStatement.executeQuery();
while (!res.next()) {
System.out.println("登录失败");
return false;
}
conn.close();
preparedStatement.close();
res.close();
System.out.println("登录成功");
return true;
}
//添加学生
public boolean addStudent(Student student) throws SQLException {
if (conn.isClosed()) {
conn = DB.getConnection();
}
//查询学号是否重复
PreparedStatement preparedStatement = conn.prepareStatement("select * from tb_student where studentNo=?");
preparedStatement.setString(1, student.getStudentNo());
ResultSet resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
return false;
}
preparedStatement = conn.prepareStatement("insert into tb_student(studentNo, studentName, sex, age, " +
"className, note, timeRenew) VALUES(?,?,?,?,?,?,?)");
preparedStatement.setString(1, student.getStudentNo());
preparedStatement.setString(2, student.getStudentName());
preparedStatement.setString(3, student.getSex());
preparedStatement.setInt(4, student.getAge());
preparedStatement.setString(5, student.getClassName());
preparedStatement.setString(6, student.getNote());
preparedStatement.setTimestamp(7, new Timestamp(System.currentTimeMillis()));
int i = preparedStatement.executeUpdate();
conn.close();
preparedStatement.close();
if (i == 0) {
System.out.println("添加失败");
return false;
}
return true;
}
//删除学生信息
public void deleteStudent(int studentNo) throws SQLException {
if (conn.isClosed()) {
conn = DB.getConnection();
}
PreparedStatement preparedStatement = conn.prepareStatement("delete from tb_student where studentId=?");
preparedStatement.setInt(1, studentNo);
int i = preparedStatement.executeUpdate();
System.out.println("删除了学号为:" + studentNo + "的学生数据");
conn.close();
preparedStatement.close();
}
//查询学生信息
public List<Student> query(String studentNo, String studentName) throws SQLException {
if (conn.isClosed()){
conn = DB.getConnection();
}
PreparedStatement preparedStatement = conn.prepareStatement("select * from tb_student where studentNo like concat('%',?,'%') and studentName like concat('%',?,'%') ");
preparedStatement.setString(1,studentNo);
preparedStatement.setString(2,studentName);
ResultSet resultSet = preparedStatement.executeQuery();
List<Student> list = new ArrayList<>();
while (resultSet.next()){
//将数据装入学生列表
Student student = new Student();
student.setStudentId(resultSet.getInt("studentId"));
student.setStudentNo(resultSet.getString("studentNo"));
student.setStudentName(resultSet.getString("studentName"));
student.setSex(resultSet.getString("sex"));
student.setAge(resultSet.getInt("age"));
student.setClassName(resultSet.getString("className"));
student.setNote(resultSet.getString("note"));
student.setTimeRenew(resultSet.getTimestamp("timeRenew").toLocalDateTime());
list.add(student);
}
conn.close();
preparedStatement.close();
resultSet.close();
return list;
}
}
2.功能页
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>学生管理</title>
<style>
.container{
/*margin: auto;*/
padding-left: inherit;
}
.table_title {
background: cornflowerblue;
}
td {
/*width: 500px;*/
border: 1px solid black;
text-align: center;
border-collapse: collapse;
}
.aa{
margin:0 auto;
width:500px;
height: 150px;
border-collapse: collapse;
}
.welcome{
margin: auto;
padding-left: 47%;
color: red;
}
.exit{
font-size: 30px;
}
</style>
</head>
<body>
<div class="container">
<h1 align="center">用户功能</h1>
<span class="welcome">欢迎${studentName}登录</span>
<span class="exit" ><a href="login.jsp">退出</a></span>
<table class="aa">
<tr>
<th class="table_title" colspan="3"> 用户功能列表</th>
</tr>
<tr>
<td>学生管理</td>
<td colspan="3">
<a href="addStudent.jsp">新添</a>
<a href="query.jsp">列表/查询</a>
<a href="studentPageQuery.jsp">学生分页 删除 修改</a>
</td>
</tr>
</table>
</div>
</body>
</html>
3.分页查询
StudentPageQuery.jsp
<%@ page import="com.example.entity.Student" %>
<%@ page import="com.example.util.PageHelper" %>
<%@ page import="com.example.mapper.StudentMapper" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>学生分页</title>
<style>
.pageInfo{
margin:0 auto;
height: 100px;
border-collapse: collapse;
border: 1px solid black;
text-align: center;
}
th{
text-align: left;
}
.pageInfo_th,.pageInfo_td,.pageInfo_tr{
width: 100px;
border: 1px solid black;
text-align: center;
border-collapse: collapse;
}
.page{
margin:0 auto;
}
</style>
</head>
<body>
<table class="pageInfo" cellpadding="10px">
<tr class="pageInfo_tr">
<th class="pageInfo_th">学号</th>
<th class="pageInfo_th">姓名</th>
<th class="pageInfo_th">性别</th>
<th class="pageInfo_th">年龄</th>
<th class="pageInfo_th">班级</th>
<th class="pageInfo_th">描述</th>
<th class="pageInfo_th">更新时间</th>
<th class="pageInfo_th" colspan="2">管理</th>
</tr>
<%
//获取页码
String pageNo = request.getParameter("page");
//初始页第一页
int pno = 1;
if (pageNo != null && !pageNo.equals("")) {
try {
pno = Integer.parseInt(pageNo);
} catch (Exception e) {
pno = 1;
}
}
//每次页面跳转都需要刷新页面
StudentMapper studentMapper = new StudentMapper();
//10 表示每页显示10条记录数
PageHelper pageHelper = new PageHelper(5, studentMapper.getCount());
//设置页码
pageHelper.setPageNo(pno);
//获取本页数据
List<Student> list = studentMapper.getPage(pageHelper);
//使用迭代器进行遍历
for (Student s : list) {
out.print("<tr class=\"pageInfo_tr\">");
out.print("<td class=\"pageInfo_td\">" + s.getStudentNo() + "</td>");
out.print("<td class=\"pageInfo_td\">" + s.getStudentName() + "</td>");
out.print("<td class=\"pageInfo_td\">" + s.getSex() + "</td>");
out.print("<td class=\"pageInfo_td\">" + s.getAge() + "</td>");
out.print("<td class=\"pageInfo_td\">" + s.getClassName() + "</td>");
out.print("<td class=\"pageInfo_td\">" + s.getNote() + "</td>");
out.print("<td class=\"pageInfo_td\">" + s.getTimeRenew() + "</td>");
out.print("<td class=\"pageInfo_td\">" + "<a href=\"/deleteStudent?studentId="+s.getStudentId()+"\">" + "删除" + "</a></td>");
out.print("<td class=\"pageInfo_td\">" + "<a href=\"/update.jsp?studentId="+s.getStudentId()+"\">" + "修改" + "</a></td>");
out.print("</tr>");
}
%>
</table>
<table cellspacing="10px" class="page">
<tr>
<td>共<% out.print(pageHelper.getPageTotal()); %>页</td>
<%
out.print("<td><a href=\"studentPageQuery.jsp?page=" + 1 + "\"" + ">首页</a></td>");
if (pageHelper.getPageNo() > 1) {
out.print("<td><a href=\"studentPageQuery.jsp?page=" + (pageHelper.getPageNo() - 1) + "\"" + ">上一页</a></td>");
}
if (pageHelper.getPageNo() < pageHelper.getPageTotal()) {
out.print("<td><a href=\"studentPageQuery.jsp?page=" + (pageHelper.getPageNo() + 1) + "\"" + ">下一页</a></td>");
}
out.print("<td><a href=\"studentPageQuery.jsp?page=" + (pageHelper.getPageTotal()) + "\"" + ">尾页</a></td>");
%>
<td><a href="functionPage.jsp">返回功能页</a></td>
</tr>
</table>
</body>
</html>
4.增删改查
a.增删改查jsp代码
add.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>新增学生</title>
<style>
div{
font-size: larger;
}
form{
width: 300px;
margin: auto;
}
</style>
</head>
<body>
<div>
<h1 align="center">新增学生</h1>
<form action="/addStudent" method="post">
学号:<input type="text" name="studentNo"><br>
姓名:<input type="text" name="studentName"><br>
男:<input type="radio" name="sex"> 女:<input type="radio" name="sex"><br>
年龄:<input type="number" name="age"><br>
班级:<input type="text" name="className"><br>
记录:<input type="text" name="note"><br>
<input type="submit" value="添加" style="margin-left: 80px;width: 100px"><br>
</form>
<a href="functionPage.jsp" style="margin:0 40%;">返回功能页</a>
</div>
</body>
</html>
query.jsp
<%@ page import="com.example.entity.Student" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>查询学生信息</title>
<style>
table{
margin:0 auto;
height: 100px;
border-collapse: collapse;
border: 1px solid black;
text-align: center;
}
th{
text-align: left;
}
th,tr,td{
width: 100px;
border: 1px solid black;
text-align: center;
border-collapse: collapse;
}
form{
float: left;
margin: 0 15%;
}
</style>
</head>
<body>
<div>
<form action="/query" method="post">
学号搜索框:<input type="text" name="sno">
姓名搜索框:<input type="text" name="sName">
<input type="submit" value="查询">
</form>
<a href="functionPage.jsp">返回功能页</a>
</div>
<br>
<%
Object list = request.getAttribute("list");
if (list != null) {
out.print("<table cellpadding=\"10px\">");
out.print("<tr>" +
" <th>学号</th>" +
" <th>姓名</th>" +
" <th>性别</th>" +
" <th>年龄</th>" +
" <th>班级</th>" +
" <th>描述</th>" +
" <th>更新时间</th>" +
" </tr>");
List<Student> studentList = (List<Student>) list;
for (Student s : studentList) {
out.print("<tr>");
out.print("<td>"+s.getStudentNo()+"</td>");
out.print("<td>"+s.getStudentName()+"</td>");
out.print("<td>"+s.getSex()+"</td>");
out.print("<td>"+s.getAge()+"</td>");
out.print("<td>"+s.getClassName()+"</td>");
out.print("<td>"+s.getNote()+"</td>");
out.print("<td>"+s.getTimeRenew()+"</td>");
out.print("</tr>");
}
out.print("<table>");
}
%>
</table>
</body>
</html>
update.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>修改学生数据</title>
</head>
<body>
<%out.print("<form action=\"/update?studentId="+request.getParameter("studentId")+ "\"method=\"post\">");%>
学号:<input type="text" name="studentNo"><br>
姓名:<input type="text" name="studentName"><br>
男:<input type="radio" name="sex" value="男"> 女:<input type="radio" name="sex" value="女"><br>
年龄:<input type="number" name="age"><br>
班级:<input type="text" name="className"><br>
记录:<input type="text" name="note"><br>
<input type="submit" value="修改" style="margin-left: 80px;width: 100px"><br>
</form>
</body>
</html>
b.增删改查java代码
AddStudent.java
package com.example.controller;
import com.example.entity.Student;
import com.example.mapper.StudentMapper;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
import java.time.LocalDateTime;
@WebServlet("/addStudent")
public class AddStudent extends HttpServlet {
StudentMapper studentMapper;
{
try {
studentMapper = new StudentMapper();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//防止中文乱码,设置解码方式为UTF-8
req.setCharacterEncoding("UTF-8");
//将用户输入内容装进student实体中
Student student = new Student();
try {
student.setStudentNo(req.getParameter("studentNo"));
student.setStudentName(req.getParameter("studentName"));
student.setSex(req.getParameter("sex"));
System.out.println(student.getSex());
student.setAge(Integer.parseInt(req.getParameter("age")));
student.setClassName(req.getParameter("className"));
student.setNote(req.getParameter("note"));
student.setTimeRenew(LocalDateTime.now());
}catch (Exception e){
req.setAttribute("msg","数据不完整,请输入数据!!!");
req.getRequestDispatcher("error.jsp").forward(req,resp);
}
try {
if(studentMapper.addStudent(student)){
req.setAttribute("msg","登录成功!!!");
req.getRequestDispatcher("success.jsp").forward(req,resp);
}else {
req.setAttribute("msg","操作失败,学号重复");
req.getRequestDispatcher("error.jsp").forward(req,resp);
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
//req.getParameter("")
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
}
DeleteStudentServlet.java
package com.example.controller;
import com.example.mapper.StudentMapper;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
@WebServlet("/deleteStudent")
public class DeleteStudentServlet extends HttpServlet {
StudentMapper studentMapper;
{
try {
studentMapper = new StudentMapper();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
int studentNo = 0;
try {
studentNo = Integer.parseInt(req.getParameter("studentId"));
} catch (NumberFormatException e) {
req.setAttribute("msg","删除失败,请重新尝试!");
req.getRequestDispatcher("error.jsp").forward(req,resp);
}
try {
studentMapper.deleteStudent(studentNo);
req.getRequestDispatcher("studentPageQuery.jsp").forward(req,resp);
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req,resp);
}
}
QueryServlet.java
package com.example.controller;
import com.example.entity.Student;
import com.example.mapper.StudentMapper;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
@WebServlet("/query")
public class QueryServlet extends HttpServlet {
StudentMapper studentMapper;
{
try {
studentMapper = new StudentMapper();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
String studentNo = req.getParameter("sno");
String studentName = req.getParameter("sName");
try {
List<Student> list = studentMapper.query(studentNo, studentName);
req.setAttribute("list",list);
req.getRequestDispatcher("query.jsp").forward(req,resp);
} catch (SQLException e) {
req.setAttribute("msg","查询失败,请重新操作!!!");
req.getRequestDispatcher("error.jsp").forward(req,resp);
}
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
}
UpdateServlet.java
package com.example.controller;
import com.example.entity.Student;
import com.example.mapper.StudentMapper;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
@WebServlet("/update")
public class UpdateServlet extends HttpServlet {
StudentMapper studentMapper;
{
try {
studentMapper = new StudentMapper();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
try {
//获取学号及要更新的数据
String studentId = req.getParameter("studentId");
Student student = studentMapper.getById(studentId);
System.out.println(studentId);
student.setStudentNo(req.getParameter("studentNo"));
student.setStudentName(req.getParameter("studentName"));
student.setSex(req.getParameter("sex"));
student.setAge(Integer.parseInt(req.getParameter("age")));
student.setClassName(req.getParameter("className"));
student.setNote(req.getParameter("note"));
studentMapper.updateById(studentId, student);
req.getRequestDispatcher("studentPageQuery.jsp").forward(req,resp);
} catch (Exception e) {
req.setAttribute("msg","学号不能重复");
req.getRequestDispatcher("error.jsp").forward(req,resp);
}
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req,resp);
}
}
四.运行效果






更多推荐




所有评论(0)