大家好,又见面了,我是你们的朋友全栈君。
运行截图:
项目文件结构:
获取 数据库连接类:
代码语言:javascript复制package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
* @ClassName: DbConnect
* @Author: Leo
* @Description:
* @Date: 2019/3/27 21:36
*/
public class DbConnect {
public static Connection connection;
public static String url = "jdbc:mysql://localhost/stumanage?user=root&password=root"
"&useUnicode=true&characterEncoding=utf-8&useSSL=true";
public static Connection getConnection() {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
connection = DriverManager.getConnection(url);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
}
对应学生的实体类:
代码语言:javascript复制package entity;
public class Student {
private long id;
private String name;
private String sex;
private String specialty;
private String grade;
public Student() {
}
public Student(long id, String name, String sex, String specialty, String grade) {
this.id = id;
this.name = name;
this.sex = sex;
this.specialty = specialty;
this.grade = grade;
}
public Student(String name, String sex, String specialty, String grade) {
this.name = name;
this.sex = sex;
this.specialty = specialty;
this.grade = grade;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getSpecialty() {
return specialty;
}
public void setSpecialty(String specialty) {
this.specialty = specialty;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
}
登录界面jsp:
代码语言:javascript复制<%--
Created by IntelliJ IDEA.
User: 24234
Date: 2019/3/27
Time: 19:26
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="utf-8" %>
<html>
<head>
<title>学生管理系统</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>
<body>
<center>
<form action="/loginServer" method="post">
<table>
<tr>
<td>
用户名
</td>
<td>
<input type="text" name="admin">
</td>
</tr>
<tr>
<td>
密  码
</td>
<td>
<input type="password" name="pwd">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="登录">
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
登录servlet:(查询所有学生信息显示到主页面jsp)
代码语言:javascript复制package servlet;
import db.DbConnect;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* @ClassName: ${NAME}
* @Author: Leo
* @Description:
* @Date: 2019/3/28 20:29
*/
@WebServlet(name = "loginServer")
public class loginServer extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html");
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
String admin = req.getParameter("admin");
String pwd = req.getParameter("pwd");
if (admin.equals("admin") && pwd.equals("123")) {
Connection connection = DbConnect.getConnection();
String sql = "SELECT * FROM STUDENT";
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
preparedStatement = connection.prepareStatement(sql);
resultSet = preparedStatement.executeQuery();
HttpSession httpSession = req.getSession();
// 设置session有效时间为两小时
httpSession.setMaxInactiveInterval(7200);
httpSession.setAttribute("resultSet", resultSet);
resp.sendRedirect("loginAction.jsp");
} catch (SQLException e) {
e.printStackTrace();
}
} else {
resp.sendRedirect("index.jsp");
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
主页面jsp:
代码语言:javascript复制<%@ page import="java.sql.ResultSet" %><%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2019/3/28
Time: 14:31
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="utf-8" %>
<% ResultSet resultSet = (ResultSet) session.getAttribute("resultSet");%>
<html>
<head>
<title>学生管理系统</title>
<link rel="stylesheet" type="text/css" href="css/table.css">
</head>
<body>
<center>
<table class="gridtable">
<tr>
<td align="center" colspan="6">学生信息</td>
</tr>
<tr>
<td>姓名</td>
<td>性别</td>
<td>专业</td>
<td>年级</td>
<td align="center" colspan="2">操作</td>
</tr>
<%
while (resultSet.next()) {
%>
<tr>
<td><%=resultSet.getString("name")%>
</td>
<td><%=resultSet.getString("sex")%>
</td>
<td><%=resultSet.getString("specialty")%>
</td>
<td><%=resultSet.getString("grade")%>
</td>
<td><a href="selectServlet?id=<%=resultSet.getInt("id")%>">修改</a></td>
<td><a href="deleteServlet?id=<%=resultSet.getInt("id")%>" onclick="return confirm('确定删除?')">删除</a></td>
</tr>
<%}%>
<tr>
<td align="center" colspan="6">
<a href="stuAdd.jsp">添加</a>
</td>
</tr>
</table>
</center>
</body>
</html>
根据id查询数据库记录:
代码语言:javascript复制package servlet;
import db.DbConnect;
import entity.Student;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* @ClassName: ${NAME}
* @Author: Leo
* @Description:
* @Date: 2019/3/29 15:20
*/
@WebServlet(name = "selectServlet")
public class selectServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
request.setCharacterEncoding("utf-8");
String id = request.getParameter("id");
String sql = "SELECT * FROM STUDENT WHERE ID=?";
Connection connection = DbConnect.getConnection();
PreparedStatement preparedStatement = null;
ResultSet resultset = null;
Student student = null;
try {
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, Integer.parseInt(id));
resultset = preparedStatement.executeQuery();
while (resultset.next()) {
String name = resultset.getString("name");
String sex = resultset.getString("sex");
String specialty = resultset.getString("specialty");
String grade = resultset.getString("grade");
student = new Student(Integer.parseInt(id), name, sex, specialty, grade);
}
HttpSession httpSession = request.getSession();
httpSession.setAttribute("student", student);
response.sendRedirect("stuEdit.jsp");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
修改学生信息jsp:
代码语言:javascript复制<%@ page import="entity.Student" %><%--
Created by IntelliJ IDEA.
User: 24234
Date: 2019/3/29
Time: 14:59
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="utf-8" %>
<html>
<head>
<title>修改学生信息</title>
<link rel="stylesheet" type="text/css" href="css/table.css">
</head>
<body>
<%Student student = (Student) session.getAttribute("student");%>
<form action="/updateServlet" method="post">
<center>
<table class="gridtable">
<tr>
<td align="center" colspan="2">
修改学生信息
<input type="hidden" name="id" value="<%=student.getId()%>">
</td>
</tr>
<tr>
<td>姓名</td>
<td><input type="text" name="name" value="<%=student.getName()%>"></td>
</tr>
<tr>
<td>性别</td>
<td><%if (student.getSex().equals("男")) {%>
<input type="radio" name="sex" value="男" checked="checked">男
<input type="radio" name="sex" value="女">女
</td>
<%
} else {
%>
<td>
<input type="radio" name="sex" value="男">男
<input type="radio" name="sex" value="女" checked="checked">女
</td>
<%}%>
</tr>
<tr>
<td>专业</td>
<td><input type="text" name="specialty" value="<%=student.getSpecialty()%>"></td>
</tr>
<tr>
<td>年级</td>
<td>
<%
if (student.getGrade().equals("大一")) {
%>
<select name="grade">
<option value="大一" selected="selected">大一</option>
<option value="大二">大二</option>
<option value="大三">大三</option>
<option value="大四">大四</option>
</select>
<%} else if (student.getGrade().equals("大二")) {%>
<select name="grade">
<option value="大一">大一</option>
<option value="大二" selected="selected">大二</option>
<option value="大三">大三</option>
<option value="大四">大四</option>
</select>
<%} else if (student.getGrade().equals("大三")) {%>
<select name="grade">
<option value="大一">大一</option>
<option value="大二">大二</option>
<option value="大三" selected="selected">大三</option>
<option value="大四">大四</option>
</select>
<%} else if (student.getGrade().equals("大四")) {%>
<select name="grade">
<option value="大一">大一</option>
<option value="大二">大二</option>
<option value="大三">大三</option>
<option value="大四" selected="selected">大四</option>
</select>
<%}%>
</td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="submit" value="修改">
</td>
</tr>
</table>
</center>
</form>
</body>
</html>
修改学生信息servlet:
代码语言:javascript复制package servlet;
import db.DbConnect;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* @ClassName: ${NAME}
* @Author: Leo
* @Description:
* @Date: 2019/3/29 15:44
*/
@WebServlet(name = "updateServlet")
public class updateServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
request.setCharacterEncoding("utf-8");
String id = request.getParameter("id");
String name = request.getParameter("name");
String sex = request.getParameter("sex");
String specialty = request.getParameter("specialty");
String grade = request.getParameter("grade");
Connection connection = DbConnect.getConnection();
String sql = "UPDATE STUDENT SET name=? , sex=? , specialty=? , grade=? where id=?";
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(5, Integer.parseInt(id));
preparedStatement.setString(1, name);
preparedStatement.setString(2, sex);
preparedStatement.setString(3, specialty);
preparedStatement.setString(4, grade);
int i = preparedStatement.executeUpdate();
HttpSession httpSession = request.getSession();
if (i == 1) {
String selectAll = "SELECT * FROM STUDENT";
preparedStatement = connection.prepareStatement(selectAll);
resultSet = preparedStatement.executeQuery();
httpSession.setMaxInactiveInterval(7200);
httpSession.setAttribute("resultSet", resultSet);
response.sendRedirect("loginAction.jsp");
} else {
httpSession.setAttribute("message", "修改失败!");
response.sendRedirect("error.jsp");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
添加学生信息jsp:
代码语言:javascript复制<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2019/3/28
Time: 14:50
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="utf-8" %>
<html>
<head>
<title>添加学生信息</title>
<link rel="stylesheet" type="text/css" href="css/table.css">
</head>
<body>
<form action="/addServlet" method="post">
<center>
<table class="gridtable">
<tr>
<td align="center" colspan="2">添加学生信息</td>
</tr>
<tr>
<td>姓名</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td>性别</td>
<td>
<input type="radio" name="sex" value="男" checked="checked">男
<input type="radio" name="sex" value="女">女
</td>
</tr>
<tr>
<td>专业</td>
<td><input type="text" name="specialty"></td>
</tr>
<tr>
<td>年级</td>
<td><select name="grade">
<option value="大一">大一</option>
<option value="大二">大二</option>
<option value="大三">大三</option>
<option value="大四">大四</option>
</select></td>
</tr>
<tr>
<td align="center" colspan="2"><input type="submit" value="添加"></td>
</tr>
</table>
</center>
</form>
</body>
</html>
添加学生信息servlet:
代码语言:javascript复制package servlet;
import db.DbConnect;
import entity.Student;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* @ClassName: ${NAME}
* @Author: Leo
* @Description:
* @Date: 2019/3/28 20:24
*/
public class addServlet extends javax.servlet.http.HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
String sex = request.getParameter("sex");
String specialty = request.getParameter("specialty");
String grade = request.getParameter("grade");
Student student = new Student(name, sex, specialty, grade);
Connection connection = DbConnect.getConnection();
String sql = "INSERT INTO student(name,sex,specialty,grade) values(?,?,?,?)";
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, student.getName());
preparedStatement.setString(2, student.getSex());
preparedStatement.setString(3, student.getSpecialty());
preparedStatement.setString(4, student.getGrade());
int i = preparedStatement.executeUpdate();
HttpSession httpSession = request.getSession();
if (i == 1) {
String selectSql = "SELECT * FROM STUDENT";
preparedStatement = connection.prepareStatement(selectSql);
resultSet = preparedStatement.executeQuery();
httpSession.setMaxInactiveInterval(7200);
httpSession.setAttribute("resultSet", resultSet);
response.sendRedirect("loginAction.jsp");
} else {
httpSession.setAttribute("message", "添加失败!");
response.sendRedirect("error.jsp");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
删除学生信息servlet:
代码语言:javascript复制package servlet;
import db.DbConnect;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* @ClassName: ${NAME}
* @Author: Leo
* @Description:
* @Date: 2019/3/29 16:05
*/
@WebServlet(name = "deleteServlet")
public class deleteServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
request.setCharacterEncoding("utf-8");
String id = request.getParameter("id");
String sql = "DELETE FROM STUDENT WHERE ID=?";
Connection connection = DbConnect.getConnection();
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
HttpSession httpSession = request.getSession();
try {
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, Integer.parseInt(id));
int i = preparedStatement.executeUpdate();
if (i == 1) {
String select = "SELECT * FROM STUDENT";
preparedStatement = connection.prepareStatement(select);
resultSet = preparedStatement.executeQuery();
httpSession.setMaxInactiveInterval(7200);
httpSession.setAttribute("resultSet", resultSet);
response.sendRedirect("loginAction.jsp");
} else {
httpSession.setAttribute("message", "删除失败!");
response.sendRedirect("error.jsp");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
错误页面:
代码语言:javascript复制<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2019/3/28
Time: 15:18
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="utf-8" %>
<html>
<head>
<title>Error</title>
</head>
<body>
<%
String message = (String) session.getAttribute("message");
out.print(message);
%>
</body>
</html>
web.xml
代码语言:javascript复制<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>addServlet</servlet-name>
<servlet-class>servlet.addServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>loginServer</servlet-name>
<servlet-class>servlet.loginServer</servlet-class>
</servlet>
<servlet>
<servlet-name>selectServlet</servlet-name>
<servlet-class>servlet.selectServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>updateServlet</servlet-name>
<servlet-class>servlet.updateServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>deleteServlet</servlet-name>
<servlet-class>servlet.deleteServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>addServlet</servlet-name>
<url-pattern>/addServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>loginServer</servlet-name>
<url-pattern>/loginServer</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>selectServlet</servlet-name>
<url-pattern>/selectServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>updateServlet</servlet-name>
<url-pattern>/updateServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>deleteServlet</servlet-name>
<url-pattern>/deleteServlet</url-pattern>
</servlet-mapping>
</web-app>
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/128635.html原文链接:https://javaforall.cn