这篇文章如果能给你带来帮助 不胜荣幸,如果有错误 ,欢迎批评指正,共同进步。

今天啊搭了一个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的更多相关文章

  1. springboot2.0+ 使用拦截器导致静态资源被拦截

    在spring1.0+的版本中,配置拦截器后是不会拦截静态资源的.其配置如下: @Configuration public class WebMvcConfig extends WebMvcConfi ...

  2. Springboot2.1.1下的自定义拦截器而静态资源不能访问的问题

    1.项目结构 2.自定义拦截器 public class LoginHandlerlnterceptor implements HandlerInterceptor { //目标方法执行之前 @Ove ...

  3. spring拦截器排除 静态资源

    拦截器需要排除静态资源,不然会造成资源浪费 <!-- 拦截器 --> <mvc:interceptors> <!-- 使用bean定义一个Interceptor,直接定义 ...

  4. spring boot 2.x拦截器导致静态资源404终极解决办法

    首先添加application文件static路径,我的是yml文件 spring: mvc: static-path-pattern: /static/**然后注册拦截器类如下方法; @Overri ...

  5. springboot 入门八-自定义配置信息(编码、拦截器、静态资源等)

    若想实际自定义相关配置,只需要继承WebMvcConfigurerAdapter.WebMvcConfigurerAdapter定义些空方法用来重写项目需要用到的WebMvcConfigure实现.具 ...

  6. spring boot 添加拦截器的简单实例(springBoot 2.x版本,添加拦截器,静态资源不可访问解决方法)

    spring中拦截器主要分两种,一个是HandlerInterceptor,一个是MethodInterceptor 一.HandlerInterceptor HandlerInterceptor是s ...

  7. 防止SpringMVC拦截器拦截js等静态资源文件

    SpringMVC提供<mvc:resources>来设置静态资源,但是增加该设置如果采用通配符的方式增加拦截器的话仍然会被拦截器拦截,可采用如下方案进行解决: 方案一.拦截器中增加针对静 ...

  8. 【转】Spring Boot干货系列:(六)静态资源和拦截器处理

    前言 本章我们来介绍下SpringBoot对静态资源的支持以及很重要的一个类WebMvcConfigurerAdapter. 正文 前面章节我们也有简单介绍过SpringBoot中对静态资源的默认支持 ...

  9. Spring Boot干货系列:(六)静态资源和拦截器处理

    Spring Boot干货系列:(六)静态资源和拦截器处理 原创 2017-04-05 嘟嘟MD 嘟爷java超神学堂 前言 本章我们来介绍下SpringBoot对静态资源的支持以及很重要的一个类We ...

  10. Spring Boot干货:静态资源和拦截器处理

    前言 本章我们来介绍下SpringBoot对静态资源的支持以及很重要的一个类WebMvcConfigurerAdapter. 正文 前面章节我们也有简单介绍过SpringBoot中对静态资源的默认支持 ...

随机推荐

  1. 【RocketMQ】负载均衡源码分析

    RocketMQ在集群模式下,同一个消费组内,一个消息队列同一时间只能分配给组内的某一个消费者,也就是一条消息只能被组内的一个消费者进行消费,为了合理的对消息队列进行分配,于是就有了负载均衡. 接下来 ...

  2. Asp-Net-Core-管道VS过滤器

    title: Asp.Net Core底层源码剖析(二)过滤器 date: 2022-09-18 10:41:57 categories: 后端 tags: - .NET 正文 Asp.Net Cor ...

  3. MongoDB分片副本集生产环境部署-Windows版本

    title: MongoDB分片副本集生产环境部署(Windows版本) date: 2022-10-29 17:21:11 tags: - 运维 系统架构 配置环境 系统都是windows 10 专 ...

  4. Java解题练习

    Java解题练习 1.A+B问题   解题代码: import java.util.*; public class Main { public static void main(String[] ar ...

  5. .NET周报【1月第4期 2023-01-28】

    由于微信公众号排版问题,建议大家在PC端浏览. 国内文章 C# 很少人知道的科技 https://blog.lindexi.com/post/C-很少人知道的科技.html 本文来告诉大家在C#很少有 ...

  6. 在spring boot3中使用native image

    目录 简介 安装GraalVM 添加Native Image支持 构建spring boot3应用 总结 简介 在之前spring boot3文章中我们介绍了,spring boot3的一个重要特性就 ...

  7. Time Series Analysis (Best MSE Predictor & Best Linear Predictor)

    Time Series Analysis Best MSE (Mean Square Error) Predictor 对于所有可能的预测函数 \(f(X_{n})\),找到一个使 \(\mathbb ...

  8. KingbaseES在线wal日志

    KingbaseES数据库日志文件记录数据库的历史操作信息, 包含恢复数据库中的所有事务所需的信息. KingbaseES在线WAL日志: WAL日志: 预写式日志(Write-Ahead Loggi ...

  9. Element ui &多选框、输入框、下拉框、开关、上传文件

    ElementUI多选框 Checkbox 使用 <el-checkbox v-model="checked">备选项</el-checkbox> < ...

  10. Kali Linux Web 渗透测试秘籍 中文版

    第一章 配置 Kali Linux 简介 在第一章中,我们会涉及如何准备我们的 Kali 以便能够遵循这本书中的秘籍,并使用虚拟机建立带有存在漏洞的 Web 应用的实验室. 1.1 升级和更新 Kal ...