@Ablechen
2019-07-11T01:00:18.000000Z
字数 15731
阅读 461
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{@Overrideprotected 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");//使用beanStudent 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();}}@Overrideprotected 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{@Overrideprotected 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();}}@Overrideprotected 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{@Overrideprotected 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();}}@Overrideprotected 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{@Overrideprotected 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");}}@Overrideprotected 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{@Overrideprotected 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();}}@Overrideprotected 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;}}