问题是这样的:
在SpringMVC项目中,如果web.xml中配置为这样:
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
那静态资源,如js文件、css文件、图片等,都会经过org.springframework.web.servlet.DispatcherServlet过滤,DispatcherServlet当然处理不了这些文件,所以这些文件就发送不到客户端了。
SpringMVC从3.0.4版本开始,新增了一种配置可以解决这个问题,具体配置如下:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<context:component-scan base-package="com.XXX.XXX" />
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/pages/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
<mvc:resources location="/r/" mapping="/r/**" />
<mvc:annotation-driven />
</beans>
新增的是<mvc:resources location="/r/" mapping="/r/**" />这个配置,相当于告诉SpringMVC,凡是请求路径为 /r/ 开始的,都自动映射到 r目录 下面相同文件名的文件去,而不经过DispatcherServlet过滤,这样就已经搞定了。
分享到:
相关推荐
6. **角色和权限**:SpringSecurity支持基于角色的访问控制(RBAC),可以为用户分配角色,并定义哪些URL或资源对应哪些角色,从而实现权限控制。 7. **自定义逻辑**:除了基本的配置,开发者还可以根据需求编写...
项目基于jdk1.8整合了springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap等技术,springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存...
- **进程**: 最小资源分配单位,包含一个或多个线程。 - **线程**: 最小执行单位,共享进程资源。 **37. 守护线程是什么?** - 守护线程是在后台执行的服务线程,当所有的非守护线程都结束时,守护线程自动结束。 ...
【SSM最新版】指的是基于Spring、SpringMVC和MyBatis三个开源框架的整合,这一版本中Spring更新到了5.0。Spring是Java企业级应用开发中的核心框架,提供了全面的面向切面编程(AOP)支持以及依赖注入(DI),使得...
开发者可以通过阅读启动类、配置文件、Shiro的过滤器配置、Thymeleaf的模板文件等,了解项目的整体架构和业务逻辑。 5. 开发与实践:对于毕业设计或课程设计来说,这个项目提供了一个完整的实战平台。通过学习和...
文档指导开发者如何进行项目的高级配置,例如修改项目名和包名、放过接口权限验证、更改静态资源和模板位置、配置多个数据源、添加登录验证码、使用springprofile、多机器部署、使用Redis以及配置XSS过滤器等。...
包括`src/main/java`存放源代码,`src/main/resources`存储配置文件,如数据库连接配置、MyBatis的Mapper接口和XML配置等,`src/main/webapp`则包含Web应用相关的资源,如静态文件、视图模板等。 **Maven**是项目...
- SpringMVC基于前端控制器模式,而Struts2基于拦截器模式。 - SpringMVC更加灵活,易于与其他Spring组件集成。 - Struts2提供了更多的内置标签库和插件支持。 - **SpringIOC和AOP的概念以及实现方式**: - **...
准备为静态变量分配内存并设初始值;解析将符号引用替换为直接引用;初始化执行类初始化语句。 5. **内存堆与栈**: - **堆**:存放对象实例,所有类的实例都在堆中分配内存,是所有线程共享的区域。 - **栈**:...
- **进程**:操作系统分配资源的基本单位,每个进程有自己的内存空间。 - **线程**:进程内的执行单元,共享进程资源,切换开销较小。 ##### JVM的内存结构 - **堆**:所有线程共享的内存区域,用于存储对象实例。...
不多说,懂得人看名字就能知道,挺好的一套案例,包含讲解视频和完整案例。 内容: 『课程目录』: ├─众筹项目-第01天《Atcrowdfunding》3 n7 ]2 w M, M1 ^ ^& P │ ├─代码 - G( G, ]4 n, n! y3 k! o │ ├─...
- 准备阶段:为静态变量分配内存并初始化为默认值。 - 解析阶段:将符号引用转化为直接引用。 - 初始化阶段:执行类构造器`()`。 - **面试考察要点:** - 类加载器的种类及其工作原理。 - 双亲委派模型的意义。...