我们在日程管理第二期中,完成了一些功能,但有一个点忽略了。
在项目中,用户在未登录的状态下,不允许访问 showSchedule.html 和 SysScheduleController 相关增删改的操作,需要重定向到 login.html 页面中,登录成功后才可以自由访问。
图解:


LoginFilter.java:
@WebFilter(urlPatterns = {"/showSchedule.html", "/schedule/*"})
public class LoginFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
// 参数父转子
HttpServletRequest request = (HttpServletRequest)servletRequest;
HttpServletResponse response = (HttpServletResponse)servletResponse;
// 获得 session 对象
HttpSession session = request.getSession();
// 从 session 中获得登录的用户对象
SysUser sysUser = (SysUser)session.getAttribute("sysUser");
// 判断对象是否为空
if (null == sysUser) {
// 没登陆 跳转到登录页面
response.sendRedirect("/login.html");
} else {
// 已经登录过 放行
filterChain.doFilter(request, response);
}
}
}
完!

被折叠的 条评论
为什么被折叠?



