springboot之过滤器(filter)
来源:互联网 发布:琅琊榜飞剑进阶数据 编辑:程序博客网 时间:2024/06/03 11:34
springboot之过滤器(filter)
出于要对个别url路径进行限制访问,本来是想借由拦截器实现拦截url路径,但是简单的浏览器地址栏输入localhost:8080/hello.html无法拦截到,于是使用了比拦截器更为广泛的功能的过滤器来实现,权限限制,编码过滤,url重定向
package com.job;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.annotation.WebFilter;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.job.controller.WebSecurityConfig;@WebFilter(filterName="myFilter",urlPatterns="/html/main.html")public class Myfilter implements Filter { @Override public void init(FilterConfig arg0) throws ServletException { System.out.println("MyFilter init"); } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("MyFilter doFilter"); HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse resp =(HttpServletResponse) response; HttpSession session = req.getSession(); System.out.println("过滤器执行"); if (session.getAttribute(WebSecurityConfig.SESSION_KEY) != null){ System.out.println("session不为空"); chain.doFilter(request, response); }else{ resp.sendRedirect("/login"); } ((HttpServletResponse) response).sendRedirect("/login"); chain.doFilter(request, response); } @Override public void destroy() { System.out.println("MyFilter destroy"); }}
这里只需在项目里新建一个myfilter类并添加注解,在项目启动时,自动会识别为过滤器,并执行一次初始化init()方法
public void init(FilterConfig arg0) throws ServletException { System.out.println("MyFilter init"); }
最后根据@WebFilter(filterName="myFilter",urlPatterns="/html/main.html")
类名前写好的注解已经订好的过滤规则进行过滤;
满足条件则执行dofilter()方法
public void doFilte(){。。。。。。。。。。。此处省略若干字}
至此,我们的过滤器就开始没日没夜的为我们工作了
阅读全文
0 0
- springboot之过滤器(filter)
- SpringBoot 实现Filter过滤器
- springboot配置 java servlet的Filter过滤器
- Servlet之Filter过滤器
- Servlet之过滤器filter
- javaWeb之过滤器Filter
- 【JavaWeb】之过滤器Filter
- Servlet之过滤器Filter
- Java之Filter过滤器
- Swift之过滤器(filter)
- Servlet之Filter过滤器
- angularjs之filter过滤器
- Servlet之Filter过滤器
- Servlet之过滤器总结--Filter
- Servlet之Filter过滤器1
- MVC之自定义过滤器(Filter)
- Servlet之过滤器Filter详解
- Servlet之过滤器Filter详解
- 设计模式
- Spring源码解析之二 ------ 自定义标签的解析和注册(IOC的第一步)
- LeetCode | 45. Jump Game II
- Windows获取系统当前时区的两种方法
- 最新[Android地图sdk] 踩坑经验分享 DistanceUtil.getDistance报错
- springboot之过滤器(filter)
- Java多线程,Runnable和Thread的详解
- 成员变量 全局变量 静态方法 非静态方法 内存图解
- java配置project.home
- Oracle SQL语句(运动员)
- 在pom.xml中添加Spring依赖
- IntelliJ IDEA(2017)安装和破解。
- DNS域名服务器
- 事件监听函数addEvent