springmvc的静态资源为什么被拦截

springmvc的静态资源为什么被拦截,第1张

"mvc:annotation-driven" 的前缀 "mvc"未绑定

办法:这是我在spring-servlet.xml文件里使用<mvc>开头的标签时,忘记引入了命名空间。在xml的beans里面加入如下代码即可

xmlns:mvc="http://www.springframework.org/schema/mvc"

http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd

静态文件访问,主要是让DispatcherServlet不拦截以下静态资源

<mvc:annotation-driven />

<mvc:resources location="/image/" mapping="/image/**"/>

<mvc:resources location="/css/" mapping="/css/**"/>

<mvc:resources location="/js/" mapping="/js/**"/>

<!-- 启动扫描所有的controller -->

<context:component-scan base-package="com.peidw.web"/>

<mvc:annotation-driven/>

<!-- 对特册顷定路径拦截-->

<mvc:interceptors>

<mvc:interceptor>

<mvc:mapping path="/user/MyHome"/>

<mvc:mapping path="州腔陆/um/*"/>

<bean class="com.peidw.web.interceptor.MyInterceptor"></bean>

</mvc:interceptor>

</mvc:interceptors>

在java代码里实现拦截

package com.peidw.web.interceptors

import org.springframework.stereotype.Component

import org.springframework.web.servlet.HandlerInterceptor

import org.springframework.web.servlet.ModelAndView

import javax.servlet.http.HttpServletRequest

import javax.servlet.http.HttpServletResponse

import org.apache.log4j.*

/**

* Created by peidw on 2015/3/6.

*/

@Component

public class HelloInterceptor implements HandlerInterceptor{

private static Logger logger=Logger.getLogger(HelloInterceptor.class)

@Override

public boolean preHandle(HttpServletRequest httpServletRequest,

HttpServletResponse httpServletResponse, Object o) throws Exception {

logger.info("执行Action前先判断权限圆坦")

return true

}

@Override

public void postHandle(HttpServletRequest httpServletRequest,

HttpServletResponse httpServletResponse, Object o, ModelAndView

modelAndView) throws Exception {

logger.info("生成视图前,可以改model和视图")

}

@Override

public void afterCompletion(HttpServletRequest httpServletRequest,

HttpServletResponse httpServletResponse, Object o, Exception e) throws

Exception {

logger.info("生成视图前,可以改model和视图")

}

}

package com.peidw.web

import com.peidw.web.interceptors.HelloInterceptor

import org.springframework.context.annotation.Configuration

import org.springframework.web.servlet.config.annotation.EnableWebMvc

import org.springframework.web.servlet.config.annotation.InterceptorRegistry

import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter

/**

* Created by peidw on 2015/3/6.

*/

@Configuration

@EnableWebMvc

public class WebApplicationConfig extends WebMvcConfigurerAdapter {

@Override

public void addInterceptors(InterceptorRegistry registry) {

registry.addInterceptor(new HelloInterceptor()).addPathPatterns("/hello")

}

}

<!-- 全局拦截 -->

<mvc:interceptors>

<bean class="com.peidw.web.interceptor.MyInterceptor"></bean>

</mvc:interceptors>

一些常用注解

@Autowired和@Qualifier 自动注入[根据类型注入]

@Autowired 可以对成员变量、方法以及构造函数进行注释,

@Qualifier 的标注对象是成员变量、方法入参、构造函数入参。

ps:两者结合使用相当于@Resourcede效果。

@Resource 自动注入[根据名称注入],可写参数name=""

@Controller 表示控制器

@Service表示业务处理层[一般在serviceImpl]

@Repository 表示持久层[一般在daoImpl]

@Component 当你的类不清楚是哪一层的时候使用该注解

@ResponseBody 异步返回数据类型为json

@RequestMapping 路径,请求类型等设置

@InitBinder 数据绑定

@RequestBody、@ModeleAttributes、@SessionAttributes等

实际开发静态漏腊碰资源 html、js、图片 肯定是放在各自文件夹下面的

参考链接

demo地址

demo 地址

可以访问:

http://localhost:8080/JS/1.js

http://localhost:8080/Image/1.png

http://localhost:8080/JS/1.html

3、 1.js 1.png 1.html 和 2.js 一样直接访问

设置 spring.web.resources.static-locations

3.1 、 http://localhost:8080/1.js 、 http://localhost:8080/1.png 、 http://localhost:8080/1.html 可以直接访问了

demo地址

这样的配置,可以说最简单且粗暴,但是灵活性差一点点:

URL响应地址只能为一项,也就是spring.mvc.static-path-pattern配置只能写一项。

这意味着,按我上文设置了/SystemData/ 为URL匹配,就不能设置第二个/resources/ 这样的配置为第二静态目录。

写一个配置类,实现静态资源的文件夹方法很多。比如:

继承于WebMvcConfigurationSupport父类,并实现addResourceHandlers方法。

引用WebMvcConfigurer接返谈口,并实现addInterceptors方法

现在我们就来配置。 最终效果很简单,我想要的效果(两组同时):

浏览器输入: http://localhost:8080/SystemData/UserData/Avatar/1.png

可以直接访问局渣项目文件下的:/SystemData/UserData/Avatar/1.png,

浏览器输入: http://localhost:8080/Test/UserData/Avatar/2.png

可以直接访问项目文件下的:/Test/UserData/Avatar/2.png,


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12255214.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存