Filter_案例1_登录验证_代码实现与Filter_案例2_过滤敏感词汇_分析
Filter_案例1_登录验证_代码实现
重新打开一个新导航栏:
切换一个浏览器再打开:
package hf.xueqiang.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 doFilter(ServletRequest req, ServletResponse response, FilterChain chain) throws ServletException, IOException { //0.强制转换 HttpServletRequest request =(HttpServletRequest) req; //1.获取资源请求路径 String uri = request.getRequestURI(); //2.判断是否包含登录相关资源路径,要注意排除掉 css/js/图片/验证码等资源 if(uri.contains("/login.jsp") || uri.contains("/loginServlet") || uri.contains("/css/") || uri.contains("/js/") || uri.contains("/fonts/") || uri.contains("/checkCodeServlet")){ //包含,用户就是想登录。放行 chain.doFilter(request,response); }else { //不包含,需要验证用户是否登录 //3.从获取session中获取user Object user = request.getSession().getAttribute("user"); if (user !=null){ //登录了.放行 chain.doFilter(request,response); }else { //没有登录。跳转登录页面 request.setAttribute("login_msg","您尚未登录,请登录"); request.getRequestDispatcher("/login.jsp").forward(request,response); } } // chain.doFilter(request, response); } public void init(FilterConfig config) throws ServletException { } public void destroy() { } }
Filter_案例2_过滤敏感词汇_分析
需求:
1. 对day17_case案例录入的数据进行敏感词汇过滤
2. 敏感词汇参考《敏感词汇.txt》
3. 如果是敏感词汇,替换为 ***
分析:
过滤器
过滤敏感词汇
req
chain.doFilter (reg,resp ) ;
1.对request对象的getParameter 方法进行增强。产生一个新的request对象。
⒉.放行。将新的request对象传入
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)