Filter案例登录验证
Filter案例登录验证
需求:
1.访问用户信息案例的资源。验证其是否登录
2.如果登录了,则直接放行。
3.如果没有登录,则跳转到登录页面,提示"您尚未登录,请先登录"。
分析:
LoginFilter:
package com.peng.ca.web.filter; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import java.io.IOException; /** * 登录验证的过滤器 */ @WebFilter("/*") public class LoginFilter implements Filter { public void destroy() { } public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException { //强制转换 HttpServletRequest request = (HttpServletRequest) req; //获取资源请求路径 String uri = request.getRequestURI(); //判断是否包含登录相关资源路径,要注意排除 css/js/图片/验证码等资源 if (uri.contains("/login.jsp") || uri.contains("/loginServlet") || uri.contains("/css/") || uri.contains("/js/") || uri.contains("/fonts/") || uri.contains("/checkCodeServlet")){ //包含用户要登录 chain.doFilter(req, resp); }else { //不包含,验证用户是否登录 //从session中获取user Object user = request.getSession().getAttribute("user"); if (user!=null){ //登录了,放行 chain.doFilter(req, resp); }else { //没有登录 request.setAttribute("login_msg","您未登录,请登录"); request.getRequestDispatcher("/login.jsp").forward(request,resp); } } } public void init(FilterConfig config) throws ServletException { } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix