Servlet拦截器

1.LoginFilter

package main.java.filter;import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;public class LoginFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) {}/*** @description 登录拦截* @param servletRequest 请求* @param servletResponse 响应* @param filterChain 持有Filter列表的管理和控制* @author zhq* @throws IOException 读写异常* @throws ServletException Servlet异常* @date 2021/5/24 10:40* @version 1.0*/@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {HttpServletRequest request = (HttpServletRequest) servletRequest;HttpServletResponse response = (HttpServletResponse) servletResponse;HttpSession session = request.getSession();Object username = session.getAttribute("username");String path = request.getServletPath();//不需要过滤的urlString[] urls = {"/login","/json",".js",".css",".ico",".jpg",".png"};// flag是登录成功标志boolean flag = true;for (String url : urls) {if (path.contains(url) && !path.contains(".jsp")){flag = false;break;}else if (path.contains("login.jsp")){flag = false;break;}}if (flag) {if (username != null) {filterChain.doFilter(request, response);}else {response.sendRedirect("login.jsp");}}else{filterChain.doFilter(request, response);}}@Overridepublic void destroy() {}
}

2.web.xml配置

<filter><filter-name>LoginFilter</filter-name><filter-class>main.java.filter.LoginFilter</filter-class></filter><filter-mapping><filter-name>LoginFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>

Servlet拦截器相关推荐

  1. Java中Filter、Listener,拦截器的学习,listener、 filter、servlet 加载顺序及其详解

    Filter filter可认为是Servlet的一种"变种",它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链.它与Se ...

  2. Servlet,过滤器,监听器,拦截器的区别

    由于最近两个月工作比较清闲,个人也比较"上进",利用工作空余时间,也继续学习了一下,某天突然想起struts2和struts1的区别的时 候,发现为什么struts1要用servl ...

  3. Struts2 拦截器 及如何获得 servlet 请求对象 以及Struts 基本配置 Session 超时设置...

    在拦截器中可以三种实现 一:继承 AbstractInterceptor 类 二:继承 MethodFilterInterceptor类 三:实现 Interceptor 接口 在实现Intercep ...

  4. springboot _配置过滤器、拦截器、使用原生servlet

    配置过滤器.拦截器.使用原生servlet 过滤器和拦截器的根本区别 过滤器是servlet规范规定的,只能用于web程序中,而拦截器是在spring容器中,它不依赖servlet容器. 拦截器属于S ...

  5. Java Servlet 过滤器与 springmvc 拦截器的区别?

    前言:在工作中,遇到需要记录日志的情况,不知道该选择过滤器还是拦截器,故总结了一下. servlet 过滤器 定义 java过滤器能够对目标资源的请求和响应进行截取.过滤器的工作方式分为四种 应用场景 ...

  6. servlet串行拦截器实现例子

    至于串行过滤器有什么作用,我实在不知.我的理解是它只是说明 过滤器的串行运行方式 需求:当用户没有登录访问更新页面的时候,跳转到登录页面 1.登录页面:login.jsp <%@ page la ...

  7. jsp/servlet过滤器和struts2拦截器的有什么区别

    jsp/servlet过滤器和struts2拦截器的有什么区别 542430725 | 浏览 3715 次  问题未开放回答  推荐于2016-11-14 01:43:29 最佳答案 过滤器,是在ja ...

  8. ssh备考-05Struts2 Action类下的重要API(原生Servlet的API、跳转配置、框架自身的数据封装、自定义拦截器)

    目录 一.Struts框架中如何使用原生Servlet的API 方法一.使用ActionContext类(完全解耦合的方式)(不好用,了解) demo1.jsp demo1Action.java    ...

  9. SpringBoot中使用拦截器、servlet、过滤器Filter

    Spring Boot 使用拦截器步骤: 1. 创建类实现 HandlerInterceptor 接口 package com.dongmu.interceptor;import org.spring ...

最新文章

  1. 修改AspNetSqlMembershipProvider的密码规则
  2. Java jmap查看堆内存
  3. 如何给网红变现?Instagram正在尝试一种全新的方式
  4. SpringMVC + Apache POI 实现WEB中Excel下载功能
  5. [转]使用DBX分析AIX 下的 CoreDump
  6. ubuntu linux root,Ubuntu 中的 root 用户:你应该知道的重要事情 | Linux 中国
  7. 位置模拟服务器超时,调用别人提供的服务的时候没有设置超时程序被卡住了怎么办?,如何模拟超时的情况?...
  8. DockerFile入门指南
  9. 上海特斯拉自燃事件终于有结果了:没有系统缺陷 单个电池模组故障
  10. mysql5.6 table cache_MySQL 5.6下table_open_cache参数优化合理配置详解
  11. 申报火热进行中|2021“科创中国”开源创新榜评选
  12. 基于LM324的音调放大电路
  13. STM32学习笔记二、DS18B20单总线上挂载多路采集
  14. Django的models中ORM
  15. 网络编程中同步与异步,IO阻塞与非阻塞总结
  16. Latex-条目、编号、描述
  17. 音频服务器未能正常启动,Windows10系统音频服务未启动问题彻底解决方法
  18. 如何选择一款好相机?
  19. 乘法逆元 java_java写的三个求乘法逆元的算法
  20. Win2019AD域DNS服务器NSLOOKUP出现 Non-existent domain访问不了某一网站

热门文章

  1. 【渝粤教育】电大中专药品储存与养护技术 (2)作业 题库
  2. 【渝粤教育】广东开放大学 财务管理 形成性考核 (58)
  3. 【渝粤题库】国家开放大学2021春2094法理学题目
  4. 服务器突然关机的操作系统日志,一台R410 服务器不定时宕机,系统日志只有“上一次系统是意外关闭”...
  5. android自动退出对话框,Android开发 在用EditText对话框Dialog退出后实现输入盘的退出...
  6. 软件测试中需求分析谁去做的,软件项目在进入需求分析阶段,测试人员应该开始介入其中。 - 问答库...
  7. php 猴子选大王,php猴子选大王
  8. 【数字信号处理】分贝的概念及其日常使用中常见的错误
  9. centos8.2安装mysql_为CentOS 8操作系统安装MySQL的方法,以安装MySQL 8为例
  10. 苹果手机透明桌面_原来苹果手机辨别真假这么简单!查看桌面1个图标,就能轻松分辨...