springmvc访问静态资源
㈠ 如何让Spring MVC来处理静态资源
在进行Spring MVC的配置时,通常我们会配置一个dispatcher servlet用于处理对应的URL。配置如下:
<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>
这表示名字为mvc-dispatcher的servlet会处理一切的url对应的请求,那么我们怎么让servlet来处理项目中的静态资源呢?这里有两种方法。
1. 另外使用一个servlet来处理静态资源。若我们的资源放置在webapps文件夹下的resources文件夹中,那么我们可以用名字为default的servlet来处理静态资源。因此我们还需要在上述配置的基础上加上以下配置:
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>resources/*</url-pattern>
</servlet-mapping>
这表示default的servlet会处理url中为resources/*的对应的请求。这样,当你把你的image,css已经其他文件放在resources文件中时,spring就可以找到它啦。
2. 采用spring自带<mvc:resources>方法。首先找到你定义的那个servlet的xml文件,如本例子中,servlet的名字叫mvc-dispatcher,因此需要找到mvc-dispatcher-servlet.xml文件,并在该文件中插入以下配置:
<mvc:annotation-driven/>
<mvc:resources mapping="/resources/**/" location="/resources/"/>
这样,就不必另外添加一个mvc来处理静态资源。而mvc知道静态资源所处的位置为resources文件夹。
两种方法都可以将spring mvc配置处理静态资源。
㈡ 关于springmvc静态资源的访问问题
正常情况应该不会区分 文件后缀的吧
你是不是在别处定义了 类似.jpg的过滤
web.xml中是不是定义了这样的
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
㈢ spring mvc 经过controller跳转后的页面无法访问静态资源
因为我们配置拦截路径的时候一般都是/,就是拦截所有资源,springMVC为了解决这个问题,在配置文件里可以使用resource标签,在里面配置静态资源。具体使用可以查看文档
㈣ spring mvc 静态资源访问
从报错的角度来看,你使用post请求获取数据,mvc:resources 不支持POST,只支持GET
㈤ spring mvc 访问静态资源问题
怎么感觉你的静态资源配置有问题 ,问什么要分开配置呢 ,直接配置一次就好了呀 <mvc:resources location="/WEB-INF/resource/" mapping="/resource/**"/>,jsp引用的时候直接用resource/img/xxx.jpg
㈥ 如何配置SpringMVC能够访问静态资源
springMVC的<mvc:resources location="/css/" mapping="/css/**"/>,这就可以访问webapp下的css文件夹下所有静态css文件,不需要过滤了
㈦ SpringMvc访问静态资源的几种方法
第一种:在web.xml中配置名为default的servlet-mapping
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.gif</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.png</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
第二种:在SpringMVC配置文件中添加<mvc:resource>标签
<mvc:resources mapping="/js/**" location="/js/"/>
<mvc:resources mapping="/css/**" location="/css/"/>
<mvc:resources mapping="/img/**" location="/img/"/>
第三种:在SpringMVC配置文件中添加<mvc:default-servlet-handler/>标签
<mvc:default-servlet-handler/>
第四种:修改SpringMVC的拦截路径,我这里使用的是/,也就是说所有的链接的拦截,
可以修改成*.do或者*.action或者其他,这样静态资源就不会拦截了
<servlet-mapping>
<servlet-name>spring-mvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
㈧ springmvc怎么获取静态资源
[html] view plain
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<span style="BACKGROUND-COLOR: #ffff33"><url-pattern>/</url-pattern>
</span> </servlet-mapping>
分析原因:<servlet-mapping>的<url-pattern>/</url-pattern>把所有的请求都交给spring去处理了,而所有available的请求url都是在Constroller里使用类似@RequestMapping(value = "/login/{user}", method = RequestMethod.GET)这样的注解配置的,这样的话对js/css/jpg/gif等静态资源的访问就会得不到。
目的:可以正常访问静态文件,不要找不到静态文件报404。
方案一:激活Tomcat的defaultServlet来处理静态文件
在web.xml里添加如下配置
[html] view plain
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
㈨ 如何让springmvc对静态资源文件的访问使用文件系统的相对路径
<!-- 自动扫描的包名 -->
<context:component-scan base-package="com.app,com.core,JUnit4" ></context:component-scan>
<!-- 默认的注解映射的支持 -->
<mvc:annotation-driven />
<!-- 视图解释类 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/><!--可为空,方便实现自已的依据扩展名来选择视图解释类的逻辑 -->
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
</bean>
<!-- 拦截器 -->
<mvc:interceptors>
<bean class="com.core.mvc.MyInteceptor" />
</mvc:interceptors>
<!-- 对静态资源文件的访问 方案一 (二选一) -->
<mvc:default-servlet-handler/>
<!-- 对静态资源文件的访问 方案二 (二选一)-->
<mvc:resources mapping="/images/**" location="/images/" cache-period="31556926"/>
<mvc:resources mapping="/js/**" location="/js/" cache-period="31556926"/>
<mvc:resources mapping="/css/**" location="/css/" cache-period="31556926"/>