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中对静态资源的默认支持 ...
随机推荐
- P7076 [CSP-S2020] 动物园
题面 动物园里饲养了很多动物,饲养员小 A 会根据饲养动物的情况,按照<饲养指南>购买不同种类的饲料,并将购买清单发给采购员小 B. 具体而言,动物世界里存在 \(2^k\) 种不同的动物 ...
- 踩坑实录---Angular防抖——点击事件
npx ng g directive DebounceClickDirective --module=app 然后自动生成了2 个文件 CREATE src/app/debounce-click-di ...
- Linux防火墙部署与配置
Linux防火墙部署与配置 1. 实验概述 Linux作为网关,搭建小型局域网,在此基础上进行实验,了解Linux防火墙的构成.NAT和包过滤配置方法等. 2. 实验环境 网络大致结构如图2-1所示, ...
- DJI Flight Simulator 无人机模拟器 功能介绍与使用说明
0 前言 无人机是当前非常火热的"相机设备",而大疆又是其中翘楚,功能丰富,可以说是一个将带着云台的智能手机放到了天空中.如果你有自己玩过旋翼无人机航模的话,可能会体会到大疆的另一 ...
- python实现通用excel导入到mysql
{ "file": "OrderDetail-2020-06-03.xls", "startRow": 1, "table&quo ...
- CentOS7 RPM方式安装JDK
1.下载jdk rpm Java Downloads | Oracle 中国 https://www.oracle.com/cn/java/technologies/downloads/#jdk19- ...
- 线程基础知识05 synchronized类锁和对象锁演示
1 简介 synchronized在方法内,同步代码块,传入对象,使用的是对象锁,传入class对象,使用的是类锁 作用于普通方法,也是对象锁,当前对象 作用于静态方法,是类锁 2 同步方法示例 2. ...
- 学习Java Day15
今天学习了自定义类
- ajax的原理是什么?如何实现?
一.是什么 AJAX全称(Async Javascript and XML) 即异步的JavaScript 和XML,是一种创建交互式网页应用的网页开发技术,可以在不重新加载整个网页的情况下,与服务器 ...
- Java基础语法:注释、数据类型、字节
Java基础语法:注释.数据类型.字节 注释 单行注释:// 多行注释:/* 注释 */ 文档注释:/** 注释 */ 数据类型分为两大类:基本类型和引用类型 八大基本数据类型 整数类型 byte(占 ...