ssm框架下的拦截器过滤静态资源以及拦截jsp
这篇文章如果能给你带来帮助 不胜荣幸,如果有错误 ,欢迎批评指正,共同进步。
今天啊搭了一个ssm的框架 虽然说现在大部分都在使用shiro权限,可是正如mybatis、hibernate和jdbc的感觉一样。我认为还是有必要掌握以下springMVC的拦截器的。
说实话,本人因为实力有限,并没有深入的去挖拦截器的源代码,会使用也是很久之前的了,每次用的时候,采用ctrl+c,ctrl+v大法。但是似乎这次没有这么幸运了,可能是这次是
全新的框架吧,没有复制以前的而是从网上扒的代码。结果出现了两件坑:第一个坑:jsp界面拦截不了。第二个问题 js.css等静态资源却被拦截了。真是哭笑不得。想要的和拦截的截然相反。我这个人实力也不强,直接告诉怎么解决,不在多跟大家瞎扯淡。首先当你配置了你自己的拦截器的bean之后。我是这样配置的:
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
/*System.out.println("请求处理前执行");
HttpSession session=request.getSession();
User user= (User) session.getAttribute("user");
response.setContentType("text/html;charset=utf-8"); String url=request.getRequestURI();//获取请求的地址
String path = url.substring(url.indexOf("/",1)+1);
System.out.println(path);
if(path.equals("")||path.equals("login.jsp")||url.endsWith("user/login")||url.endsWith(".png")||url.endsWith(".jpg")||url.endsWith(".css")||url.endsWith(".js")){//放行
return true;
}else{
if(user==null){
response.sendRedirect("/myssm/login.jsp");
return false;
}else{
return true;
}
}*/
return true;
}
在springMVC的xml配置文件中(因为每个人的springMVC的配置文件不相同。 )看看是不是跟我一样:有经过简化的静态资源加载的标签和简单的创建了一个拦截器的对象:
<mvc:default-servlet-handler/>
<mvc:interceptors>
<!-- 创建拦截器对象 -->
<bean id="my" class="com.utils.MyInterceotor"/>(其中MyInterceotor是你自己的拦截器的类名)
</mvc:interceptors>
或许还有的人在这个配置文件里面继续放行了一些其他的静态资源 。我没有 因为怕出错,有的网上也是说的很专业,非科班出身的很难看懂。
这个时候你不妨在web.xml中配置放行静态资源的代码:
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
<url-pattern>*.css</url-pattern>
<url-pattern>/assets/*"</url-pattern>
<url-pattern>/images/*</url-pattern>
</servlet-mapping>
好了,这样就可以了,静态资源就可以稳稳的放行了。说来也怪,当时学的时候也没人给你去解释为什么jsp不是静态资源。网上说解决的方法有很多 ,我呢 就不跟大家强势介绍很多了,1:就是把你的全部jsp界面放到 WEB-INF下 这样自动会给你提供一个保护,但是说实话.(很多培训出来的人可能都知道 几乎讲的时候是不会吧jsp界面放到WEB-INF下的,因为为了讲课方便) 第二个就是很过滤器一起使用来一个双重保护经过Filter来拦截界面。说实话,因为使用很少使用过滤器了,所以在web.xml当中的配置,和其他的都不发代码了。大家可以自行百度。
ssm框架下的拦截器过滤静态资源以及拦截jsp的更多相关文章
- springboot2.0+ 使用拦截器导致静态资源被拦截
在spring1.0+的版本中,配置拦截器后是不会拦截静态资源的.其配置如下: @Configuration public class WebMvcConfig extends WebMvcConfi ...
- Springboot2.1.1下的自定义拦截器而静态资源不能访问的问题
1.项目结构 2.自定义拦截器 public class LoginHandlerlnterceptor implements HandlerInterceptor { //目标方法执行之前 @Ove ...
- spring拦截器排除 静态资源
拦截器需要排除静态资源,不然会造成资源浪费 <!-- 拦截器 --> <mvc:interceptors> <!-- 使用bean定义一个Interceptor,直接定义 ...
- spring boot 2.x拦截器导致静态资源404终极解决办法
首先添加application文件static路径,我的是yml文件 spring: mvc: static-path-pattern: /static/**然后注册拦截器类如下方法; @Overri ...
- springboot 入门八-自定义配置信息(编码、拦截器、静态资源等)
若想实际自定义相关配置,只需要继承WebMvcConfigurerAdapter.WebMvcConfigurerAdapter定义些空方法用来重写项目需要用到的WebMvcConfigure实现.具 ...
- spring boot 添加拦截器的简单实例(springBoot 2.x版本,添加拦截器,静态资源不可访问解决方法)
spring中拦截器主要分两种,一个是HandlerInterceptor,一个是MethodInterceptor 一.HandlerInterceptor HandlerInterceptor是s ...
- 防止SpringMVC拦截器拦截js等静态资源文件
SpringMVC提供<mvc:resources>来设置静态资源,但是增加该设置如果采用通配符的方式增加拦截器的话仍然会被拦截器拦截,可采用如下方案进行解决: 方案一.拦截器中增加针对静 ...
- 【转】Spring Boot干货系列:(六)静态资源和拦截器处理
前言 本章我们来介绍下SpringBoot对静态资源的支持以及很重要的一个类WebMvcConfigurerAdapter. 正文 前面章节我们也有简单介绍过SpringBoot中对静态资源的默认支持 ...
- Spring Boot干货系列:(六)静态资源和拦截器处理
Spring Boot干货系列:(六)静态资源和拦截器处理 原创 2017-04-05 嘟嘟MD 嘟爷java超神学堂 前言 本章我们来介绍下SpringBoot对静态资源的支持以及很重要的一个类We ...
- Spring Boot干货:静态资源和拦截器处理
前言 本章我们来介绍下SpringBoot对静态资源的支持以及很重要的一个类WebMvcConfigurerAdapter. 正文 前面章节我们也有简单介绍过SpringBoot中对静态资源的默认支持 ...
随机推荐
- 使用Spring MVC框架进行前台页面跳转时,跳转到的新页面中文显示乱码的问题解决
使用Spring MVC框架进行前台页面跳转时,跳转到的新页面中文显示乱码的问题解决 摘要:我昨天花了一天时间学习了SSM项目搭建,却在最终的编码问题上拉胯了,在使用Spring MVC框架进行前 ...
- BC2-小飞机
题目描述 KiKi 学会了 printf 在屏幕输出信息,他想输出一架小飞机.请帮他编写程序输出这架小飞机. 输入描述 无 输出描述 解题思路 方案一: 将小飞机的图形按照行进行划分,总共可以分成 6 ...
- 如何将WebAssembly优化到2MB?
Blazor WebAssembly加载优化方案 对于Blazor WebAssembly加载方案的优化是针对于WebAssembly首次加载,由于BlazorWebAssembly是在首次加载的时候 ...
- P6327 区间加区间sin和 题解
P6327 区间加区间sin和 题解 题目描述 给出一个长度为 \(n\) 的整数序列 \(a_1,a_2,\ldots,a_n\),进行 \(m\) 次操作,操作分为两类. 操作 \(1\):给出 ...
- Sundial (二)
相关重要的组件一览 Triggers(触发器)相关类 保存触发器相关参数,例如起止时间,次数,间隔时间等,其中Sundial支持多种类型触发器 多种类型的触发器必须重写GetNextOccurrenc ...
- 可迭代对象和迭代器对象以及for循环的本质
目录 一.可迭代对象 二.迭代器对象 迭代器介绍: 迭代器对象: 迭代器对象的作用 迭代器对象实操: 注意事项 三.for循环的本质 一.可迭代对象 之前我们对于for循环为什么可以遍历没有做具体解释 ...
- python自动发布-优化版本
import sys import time import os import paramiko from pygments.lexers import shell baseconfig = { &q ...
- Android IO 框架 Okio 的实现原理,到底哪里 OK?
本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 前言 大家好,我是小彭. 今天,我们来讨论一个 Square 开源的 I/O 框架 Okio,我们最开始接触 ...
- 新开一个系列,c++刷题集
点开我的博客,然后选择 c++ csp 备考 标签进行筛选即可 工具采用devcpp 5.11 github地址:https://github.com/Dou-fugan/Basic-algorith ...
- Vue 24 props
1 简介 props主要用于组件的传值,他的工作就是为了接收外面传过来的数据,与data.el.ref是一个级别的配置项 2 一个简单示例 1)StudentComp.vue <template ...