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中对静态资源的默认支持 ...
随机推荐
- 发布个工具,一键恢复Win8/8.1中的微软拼音长句模式(新体验模式)
(cnBeta:http://www.cnbeta.com/articles/277936.htm) 首先贴个图,大家来一起念台词~ 念完了木有?很激情澎湃义愤填膺有木有? 这事情最早追溯到前年 8 ...
- Java基础篇——注解和反射
注解 注解Annotation可以被其他程序(编译器)读取,常见的有@override 内置注解 @Override 适用于修饰方法,表明重写父类中的一个方法 @Deprecated 用于修饰类.方法 ...
- 个别编程语言在OJ平台上的输入输出方式
OJ 平台输入输出 一. C/ C++ 输入 scanf() gets() getchar() 输出 printf() puts() putchar() C++ cin >> cout & ...
- 转载:SQL分页查询总结
[转载]SQL分页查询总结 开发过程中经常遇到分页的需求,今天在此总结一下吧. 简单说来方法有两种,一种在源上控制,一种在端上控制.源上控制把分页逻辑放在SQL层:端上控制一次性获取所有数据,把 ...
- JSP第十次作业
1.实现 删除 回复邮件2.实现阅读邮件功能:在main.jsp中点击任意邮件的标题,进入到detail.jsp显示邮件详情,包括发件人,主题,内容,时间.同时需要把邮件状态修改为已读. com.gd ...
- KingbaseES数据库目录结构
KingbaseES数据库目录结构 [kingbase@postgres V8]$ tree -LP 2 data/ . ├── data │ ├── base # 存储用户创建的数据库文件及隶属于用 ...
- C# 处理实体类赋值(获取嵌套类型,支持list 自定义类型)
public static T AESEncrypt<T>(T obj) where T : class { if (obj == null) { return obj; } var pr ...
- Vue33 使用nvm管理nodejs
1 nvm简介 NVM:Node Version Manage,即Node的版本管理工具.使用NVM,可以按照nodejs,可以进行版本切换,可以卸载nodejs等等. 由于项目开发当中,不同的项目可 ...
- 可视化的容器镜像的图形管理工具Portainer【强烈推荐】
Portainer是一个可视化的容器镜像的图形管理工具,利用Portainer可以轻松构建,管理和维护Docker环境. 而且完全免费,基于容器化的安装方式,方便高效部署. 官方站点:https:// ...
- 学习Java Day16
今天学习静态数据的使用