前置工作,添加框架支持,导入3个jar包,一个数据库的,2个和标签库有关系的
src下创建目录,管理配置文件
点击文件,项目结构,模块,导入tomcat相关的2个包
将lib下的包,全部添加为库,这样你写代码的时候,就不会有些没提示了,甚至给你报错
增加的功能
private void doexitLogin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
HttpSession session = request.getSession();
if(session!=null){
/*手动退出,销毁session和cookie*/
session.invalidate();
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
if ("loginuser".equals(cookie.getName())) {
/*
以下三步,一步也不能少
消除cookie的时候有个路径问题要注意
我在建建的时候这个cookie关联的是request.getContextPath()下所有的路径
因此在销毁的时候,应该把它关联到request.getContextPath()下所有路径的
cookiemaxage设置为0才行,因为
/oa和/oa/user,即使你名字一样,但是路径不同,浏览器就会认为你这是2个cookie
如果你这里不设置路径,它就默认是当前路径的上一路径的cookie的maxage设置为0
其他的仍然是10天。
所以在销毁cookie的时候,最好就是原来关联的是哪个路径,我们销毁的时候也关联哪个路径
或者就是设置路径为本项目,反正我们有if语句,不怕删成别的cookie
* */
cookie.setMaxAge(0);
cookie.setPath(request.getContextPath());
response.addCookie(cookie);
}else if ("loginpassword".equals(cookie.getName())){
cookie.setMaxAge(0);
cookie.setPath(request.getContextPath());
response.addCookie(cookie);
}
}
}
response.sendRedirect(request.getContextPath());
}
}
private void doValidation(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
/*用于验证cookie是否还和数据库信息一致,不一致则让cookie丧失直接进入的能力*/
Cookie[] cookies = request.getCookies();
String user = "";
String password = "";
if (cookies != null) {
for (Cookie cookie : cookies) {
if ("loginuser".equals(cookie.getName())) {
user = cookie.getValue();
}
if ("loginpassword".equals(cookie.getName())) {
password = cookie.getValue();
}
}
if (user != null && password != null) {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
connection = DBUtil.getconnection();
String sql = "select username,password from table_user where username=? and password=?";
try {
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, user);
preparedStatement.setString(2, password);
resultSet = preparedStatement.executeQuery();
if (resultSet.next()) {
/*走到这一步说明数据库的信息没有变化,cookie存的仍然有效*/
response.sendRedirect(request.getContextPath() + "/oa/list");
} else {
response.sendRedirect(request.getContextPath() + "/login.jsp");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(connection, preparedStatement, resultSet);
}
}
} else {
response.sendRedirect(request.getContextPath() + "/login.jsp");
}
}
<%--
Created by IntelliJ IDEA.
User: TMJIE5200
Date: 2022/3/24
Time: 9:16
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
学生信息管理JSP改造
欢迎光临
<%--从管理页面
改为管理页面
--%>
点击登录
<%--
Created by IntelliJ IDEA.
User: TMJIE5200
Date: 2022/3/24
Time: 17:31
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
用户登录
<%@ page import="com.sj.www.Bean" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Title
<%
String username="";
Cookie[] cookies = request.getCookies();
if(session.getAttribute("username")!=null){
username= (String) session.getAttribute("username");
}else if (cookies !=null){
for (Cookie cookie : cookies) {
if (cookie.getName().equals("loginuser")){
username=cookie.getValue();
}
}
}
%>
学生信息列表,欢迎光临${username}
退出登录
序号
学生学号
学生姓名
学生性别
学生班级
操作
<%--这里显示动态的html页面--%>
${stuStatus.count}
${student.id}
${student.name}
${student.sex}
${student.classno}
修改
删除
详情
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
update
修改学生信息
<%--
Created by IntelliJ IDEA.
User: TMJIE5200
Date: 2022/3/24
Time: 16:20
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
error
ERROR!
重新登陆
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
detail
学生信息详情
学生学号: ${param.studentid}
学生姓名: ${param.studentname}
学生性别: ${param.studentsex}
学生班级: ${param.studentclassno}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
add
新增学生信息
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
version="5.0">
<session-config>
<session-timeout>20session-timeout>
session-config>
<welcome-file-list>
<welcome-file>Welcomewelcome-file>
welcome-file-list>
web-app>
<%--动态获取,默认地址
只要下面代码中href的路径不以/开头,那么就会默认以下面这个href开头
--%>
http://localhost:8080/JavaWeb0326/oa
<base href="${pageContext.request.scheme}://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}/">
....
<td>
<a href="update.jsp?studentid=${student.id}&studentname=${student.name}&studentsex=${student.sex}&studentclassno=${student.classno}">修改a>
<a href="oa/delete?studentid=${student.id}">删除a>
<a href="detail.jsp?studentid=${student.id}&studentname=${student.name}&studentsex=${student.sex}&studentclassno=${student.classno}">详情a>
td>