文章目录
- 过滤器控制登录校验
- 创建过滤器类
- 修改login原业务方法
- 总结
过滤器控制登录校验
未添加过滤器 可以直接访问 showShedule.html
需求说明:
- 未登录状态下不允许访问
showShedule.html
和SysScheduleController
相关增删改处理,- 重定向到
login.html
,登录成功后可以自由访问
创建过滤器类
开发登录过滤器,对指定资源的请求进行过滤
package com.doug.wake.filter;import com.doug.wake.pojo.SysUser;
import jakarta.servlet.*;
import jakarta.servlet.annotation.WebFilter;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;import java.io.IOException;/*** @Description:*/
@WebFilter(urlPatterns = {"/showSchedule.html","/schedule/*"}
)
public class LoginFilter implements Filter {@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {//获得session对象//从session会话域中 获得登录的用户对象HttpServletRequest req = (HttpServletRequest) servletRequest;HttpServletResponse resp = (HttpServletResponse) servletResponse;HttpSession session = req.getSession();SysUser sysUser = (SysUser) session.getAttribute("sysUser");// 判断对象是否为Nullif (null != sysUser) {// 登录 过 放行filterChain.doFilter(servletRequest, servletResponse);} else {// 没登录 到login.htmlresp.sendRedirect("/login.html");}}
}
修改login原业务方法
修改用户登录请求的login方法,登录成功时,将用户信息存入session
总结
每次登录 , 在没有登录成功时 不能直接输入网页跳转,or 进行Add等… 设置重定向到登录页面