@Ablechen
2019-07-11T01:00:18.000000Z
字数 15731
阅读 413
jsp(用于数据的显示,和用户进行交互)
在整个项目的过程中,有的页面之间需要进行信息的传递,比如通过servlet向loginServlet.jsp页面需要传送数据rs(一个返回结果集),这里使用的就是为session设置属性来保存自己需要的数据。然后进行增删改之后,再更新session的属性,这样就达到了使得loginServlet.jsp页面显示的更新。
还有就是有关PreparedStatement的setString方法的使用
使用setString/setInt之类的方法可以为SQL语句中提供参量,便于动态的执行sql语句
String sql = "insert into student(name, sex, specialty, grade) values(?, ?, ?, ?)"
其中的每一个问号都是一个需要填充的形参,位置是从1开始的,而不是0
使用隐藏属性提供参数
当有一些参数是下一个页面所必需的,但是又不需要再页面中显示的时候,隐藏属性得到了运用
<input type="hidden" name=*** value=***>
在jsp页面中和html嵌套使用判断语句进行逻辑控制
<%if(condition) { %>
html标签
<% } else if(condition2) { %>
html标签
<% } else if(condition3) { %>
html标签
<% } %>
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>学生管理系统</title>
</head>
<body>
<form action="LoginServer" method="post">
<table align="center" border="1">
<tr>
<td colspan="2" align="center">管理员登陆界面</td>
</tr>
<tr>
<td>用户名:</td>
<td>
<input type="text" name="admin">
</td>
</tr>
<tr>
<td>密码:</td>
<td>
<input type="password" name="upwd">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="登陆">
</td>
</tr>
</table>
</form>
</body>
</html>
loginAction.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%
ResultSet rs = (ResultSet) session.getAttribute("rs");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>学生管理系统</title>
</head>
<body>
<table align="center" border="1">
<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(rs.next()){
%>
<tr>
<td><%=rs.getString("name") %></td>
<td><%=rs.getString("sex") %></td>
<td><%=rs.getString("specialty") %></td>
<td><%=rs.getString("grade") %></td>
<td>
<a href="SelectServlet?id=<%=rs.getInt("id") %>">修改</a>
</td>
<td>
<!-- 这里使用了javascript函数 -->
<a href="DeleteServlet?id=<%=rs.getInt("id") %>" onclick
= "return confirm('确定要删除吗?');">删除</a>
</td>
</tr>
<%
}
%>
<tr>
<td align="center" colspan="6">
<a href="stuAdd.jsp">添加</a>
</td>
</tr>
</table>
</body>
</html>
stuAdd.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>添加学生信息</title>
</head>
<body>
<form action="AddServlet" method="post">
<table align="center">
<tr>
<td colspan="2">添加学生信息</td>
</tr>
<tr>
<td>学号</td>
<td>
<input type="text" name="unumber">
</td>
</tr>
<tr>
<td>姓名</td>
<td>
<input type="text" name="uname">
</td>
</tr>
<tr>
<td>性别</td>
<td>
<input type="radio" name="ugender" value="男">男
<input type="radio" name="ugender" value="女">女
</td>
</tr>
<tr>
<td>专业</td>
<td>
<input type="text" name="specialty">
</td>
</tr>
<tr>
<td>年级</td>
<td>
<select name="ugrade">
<option value="大一">大一</option>
<option value="大二">大二</option>
<option value="大三">大三</option>
<option value="大四">大四</option>
</select>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="添加">
</td>
</tr>
</table>
</form>
</body>
</html>
stuEdit.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="bean.Student" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>修改学生信息</title>
</head>
<%
Student stu = (Student) session.getAttribute("stu");
%>
<body>
<form action="EditServlet" method="post">
<table align="center" border="1">
<tr>
<td colspan="2">
<input type="hidden" name="unumber" value=<%=stu.getId() %>>
</td>
</tr>
<tr>
<td colspan="2" align="center">修改学生信息</td>
</tr>
<tr>
<td>用户名:</td>
<td>
<input type="text" name="uname" value=<%=stu.getName() %>>
</td>
</tr>
<tr>
<td>性别:</td>
<% if(stu.getSex().equals("男")) { %>
<td>
<input type="radio" name="ugender" value="男" checked="checked">男
<input type="radio" name="ugender" value="女">女
</td>
<% }else{ %>
<td>
<input type="radio" name="ugender" value="男">男
<input type="radio" name="ugender" value="女" checked="checked">女
</td>
<% } %>
</tr>
<tr>
<td>专业</td>
<td>
<input type="text" value=<%=stu.getSpecialty() %> name="specialty">
</td>
</tr>
<tr>
<td>专业</td>
<% if(stu.getGrade().equals("大一")) { %>
<td>
<select name="ugrade">
<option selected="selected">大一</option>
<option>大二</option>
<option>大三</option>
<option>大四</option>
</select>
</td>
<% }else if(stu.getGrade().equals("大二")){ %>
<td>
<select name="ugrade">
<option>大一</option>
<option selected="selected">大二</option>
<option>大三</option>
<option>大四</option>
</select>
</td>
<% }else if(stu.getGrade().equals("大三")){ %>
<td>
<select name="ugrade">
<option>大一</option>
<option>大二</option>
<option selected="selected">大三</option>
<option>大四</option>
</select>
</td>
<% }else if(stu.getGrade().equals("大四")){ %>
<td>
<select name="ugrade">
<option>大一</option>
<option>大二</option>
<option>大三</option>
<option selected="selected">大四</option>
</select>
</td>
<% } %>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="修改">
</td>
</tr>
</table>
</form>
</body>
</html>
error.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>error</title>
</head>
<body>
<%
String message = (String) session.getAttribute("message");
out.println(message);
%>
</body>
</html>
AddServlet.java
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
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 bean.Student;
import db.DbConnect;
@WebServlet(urlPatterns = "/AddServlet")
public class AddServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html");
resp.setCharacterEncoding("utf-8");
req.setCharacterEncoding("utf-8");
PrintWriter out = resp.getWriter();
//获得需要添加的对应字段的值
int number = Integer.parseInt(req.getParameter("unumber"));
String name = req.getParameter("uname");
String sex = req.getParameter("ugender");
String specialty = req.getParameter("specialty");
String grade = req.getParameter("ugrade");
//使用bean
Student stu = new Student(name, sex, specialty, grade, number);
//对数据库的数据进行修改
Connection con = DbConnect.getConnection();
//创建带有参数的SQL语句
String sql = "INSERT INTO student(id, name, sex, specialty, grade) VALUES(?, ?, ?, ?, ?)";
PreparedStatement ps = null ;
try {
ps = con.prepareStatement(sql);
ps.setInt(1, stu.getId());
ps.setString(2, stu.getName());
ps.setString(3, stu.getSex());
ps.setString(4, stu.getSpecialty());
ps.setString(5, stu.getGrade());
int i = ps.executeUpdate();
HttpSession session = req.getSession();
//如果添加成功跳转到显示页面进行显示
if(i==1) {
String sql1 = "select * from student";
ps = con.prepareStatement(sql1);
ResultSet rs = ps.executeQuery();
//对于session的属性进行更新
session.setMaxInactiveInterval(7200);
session.setAttribute("rs", rs);
resp.sendRedirect("loginAction.jsp");
}else {
//添加失败的时候进入失败页面
session.setAttribute("message", "添加失败");
resp.sendRedirect("error.jsp");
}
}catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
DeleteServlet.java
package servlet;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
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 db.DbConnect;
@WebServlet(urlPatterns = "/DeleteServlet")
public class DeleteServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html");
resp.setCharacterEncoding("utf-8");
int id = Integer.parseInt(req.getParameter("id"));
String sql = "DELETE FROM student WHERE id = ?";
Connection con = DbConnect.con ;
PreparedStatement ps = null ;
ResultSet rs = null ;
HttpSession session = req.getSession() ;
//进行删除操作
try {
ps = con.prepareStatement(sql);
ps.setInt(1, id);
int i = ps.executeUpdate() ;
if(i==1) {
sql = "SELECT * FROM student" ;
ps = con.prepareStatement(sql);
rs = ps.executeQuery() ;
//重新设置session属性
session.setMaxInactiveInterval(7200);
session.setAttribute("rs", rs);
resp.sendRedirect("loginAction.jsp");
}else {
session.setAttribute("message", "删除失败!");
resp.sendRedirect("error.jsp");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
EditServlet.java
package servlet;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
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 bean.Student;
import db.DbConnect;
@WebServlet(urlPatterns = "/EditServlet")
public class EditServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html");
resp.setCharacterEncoding("utf-8");
//获得修改后的值
int id = Integer.parseInt(req.getParameter("unumber"));
String name = req.getParameter("uname");
String sex = req.getParameter("ugender");
String specialty = req.getParameter("specialty");
String grade = req.getParameter("ugrade");
Student stu = new Student(name, sex, specialty, grade, id);
//找到需改的信息
String sql = "UPDATE student set name=?, sex=?, specialty=?, grade=? WHERE id = ? ";
Connection con = DbConnect.con;
ResultSet rs = null ;
PreparedStatement ps = null ;
try {
ps = con.prepareStatement(sql);
ps.setString(1, stu.getName());
ps.setString(2, stu.getSex());
ps.setString(3, stu.getSpecialty());
ps.setString(4, stu.getGrade());
ps.setInt(5, id);
int i = ps.executeUpdate();
HttpSession session = req.getSession();
if(i==1) {
sql = "SELECT * FROM student";
ps = (PreparedStatement) con.prepareStatement(sql);
rs = ps.executeQuery();
//设置有效时长
session.setMaxInactiveInterval(7200);
session.setAttribute("rs", rs);
resp.sendRedirect("loginAction.jsp");
}else {
resp.sendRedirect("error.jsp");
}
}catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
LoginServer.java
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
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 db.DbConnect;
@WebServlet(urlPatterns = "/LoginServer")
public class LoginServer extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html");
resp.setCharacterEncoding("utf-8");
req.setCharacterEncoding("utf-8");
PrintWriter out = resp.getWriter();
//判断是否为管理员
String admin = req.getParameter("admin");
String pwd = req.getParameter("upwd");
if(admin.equals("admin")&&pwd.equals("123")) {
//获取数据库的连接
Connection con = DbConnect.getConnection();
String sql = "select * from student";
PreparedStatement ps = null ;
ResultSet rs = null ;
try {
ps = (PreparedStatement) con.prepareStatement(sql);
rs = ps.executeQuery();
//设置有效时长
HttpSession session = req.getSession();
session.setMaxInactiveInterval(7200);
session.setAttribute("rs", rs);
resp.sendRedirect("loginAction.jsp");
}catch (Exception e) {
e.printStackTrace();
}
}else {
resp.sendRedirect("index.jsp");
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
SelectServlet.java
package servlet;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
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 bean.Student;
import db.DbConnect;
@WebServlet(urlPatterns = "/SelectServlet")
public class SelectServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html");
resp.setCharacterEncoding("utf-8");
int id = Integer.parseInt(req.getParameter("id"));
//查找需要修改的信息
String sql = "SELECT * FROM student WHERE id = ? ";
Connection con = DbConnect.con;
ResultSet rs = null ;
PreparedStatement ps = null ;
//为session设置属性做准备,便于传输需要的信息
Student stu = null ;
try {
ps = con.prepareStatement(sql);
ps.setInt(1, id);
//获得结果的集合
rs = ps.executeQuery();
while(rs.next()) {
String name = rs.getString("name");
String sex = rs.getString("sex");
String specialty = rs.getString("specialty");
String grade = rs.getString("grade");
stu = new Student(name, sex, specialty, grade, id);
}
HttpSession session = req.getSession();
session.setAttribute("stu", stu);
resp.sendRedirect("stuEdit.jsp");
}catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
DbConnect.java
package db;
import java.sql.Connection;
import java.sql.DriverManager;
public class DbConnect {
public static Connection con;
public static Connection getConnection() {
try {
//加载数据库驱动
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
//数据库的连接地址
String url = "jdbc:mysql://localhost:3306/StuManage?user=root&password=***"
+ "&useUnicode=true&characterEncoding=utf-8&userSSL=true";
//与数据库连接
con = DriverManager.getConnection(url);
System.out.println("数据库连接成功");
}catch (Exception e) {
e.printStackTrace();
}
return con ;
}
}
Student.java
package bean;
public class Student {
private String name;
private String sex;
private String specialty;
private String grade ;
private int id ;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Student(String name, String sex, String specialty, String grade) {
this.name = name;
this.sex = sex;
this.specialty = specialty;
this.grade = grade;
}
public Student(String name, String sex, String specialty, String grade, int id) {
this.name = name;
this.sex = sex;
this.specialty = specialty;
this.grade = grade;
this.id = id;
}
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;
}
}