Java Filter 和 interceptors 拦截器 综合使用问题
来源:互联网 发布:股票主力分析软件 编辑:程序博客网 时间:2024/06/05 03:37
文章纯原创,刚开始接触,如有大神请多开车,不要赶下车...
正文:
1、起因:
环境是在SSM下搭建的,一个后台管理系统为了限制用户未登录的情况下只能访问 登录页面(login.jsp),登录页面当中也引用了一些静态资源文件如:css, js, image 等。
2、filter 和 interceptors的环境配置:
filter 针对性的拦截配置文件
web.xml 配置文件中设置
<!-- 登录过滤器 -->
<filter>
<filter-name>PrivilegeFilter</filter-name>
<filter-class>com.zxl.filter.PrivilegeFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>PrivilegeFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
<url-pattern>*.html</url-pattern>
</filter-mapping>
interceptors 拦截器配置:
实体类:
public class BackManageInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object arg2) throws Exception {
}
}
springmvc.xml:
<!-- 拦截器 -->
<mvc:interceptors>
<bean class="com.zxl.interceptor.BackManageInterceptor"></bean>
</mvc:interceptors>
3、错误情况:
按照上面等配置的话一开始访问登录页面的话,filter 文件中进行判断如果是 login.jsp 的访问路径的话,进行忽略。但是interceptors 拦截器就把登录页面的一些样式.css 和部分图片进行拦截了,登录页面显示异常。同时无法访问登录用户调用数据库验证用户是否存在问题。
因此在 interceptors 拦截器页面的 preHandle 方法内添加后缀为登录页面的控制器,后缀为静态资源文件的一些文件设置,此时在运行的话,访问login.jsp登录页面正常,进入各个页面的控制器方法或者静态 .jsp 页面也正常访问。
我在登录后的页面当中添加了退出登录的按钮,清空session,并 请求转发到 login.jsp 页面,此时再进行访问 非登录页面的时候,任何 .jsp 成功拦截并跳转登录页面,任何控制器方法成功拦截,跳转登录页面。
但是如果在地址栏直接访问项目当中的静态资源文件的话,也能成功。这里就不知道问题所在了,看看有没有了解的。
- Java Filter 和 interceptors 拦截器 综合使用问题
- 拦截器(Interceptors)
- struts2 Interceptors 拦截器
- OkHttp-Interceptors拦截器
- mvc:interceptors 完全拦截问题
- Interceptors拦截器——OkHttp3详细使用教程
- 拦截器和filter
- 拦截器interceptors基本介绍
- struts 拦截器(Interceptors)
- 【Struts】:Interceptors(拦截器)
- mvc:interceptors拦截器配置
- 11 Spring MVC 访问入参获取和拦截器使用(@RequestParam 和 Interceptors)登录模块demo
- struts框架中,filter和interceptors区别?
- 使用mvc:interceptors标签来声明需要加入到SpringMVC拦截器链中的拦截器
- 【java基础】filter拦截器
- AOP--Filter使用,过滤器和拦截器的区别
- AOP--Filter使用,过滤器和拦截器的区别
- AOP--Filter使用,过滤器和拦截器的区别
- tensorflow笔记(三)之 tensorboard的使用
- Linux I2C驱动完全分析(一)
- 门罗币(XMR)挖矿教程
- Java 中==和 equals 的区别, equals 和 hashCode 的区别
- C++模板实现优先级队列
- Java Filter 和 interceptors 拦截器 综合使用问题
- string stringbuffer stringbuilder 区别
- google protobuf 简单实例
- 输入n ( n<= 100,000)个整数,找出其中的两 肯定有解)。题中所有整数都能用 int 表示
- C语言全局变量与局部变量及存储方式
- Gym
- 16读书笔记之文件存储和SharedPreference存储
- 什么导致线程阻塞
- SUSE Linux以及mysql的安装