1.controller的生命周期
- spring框架默认为单例模式,会使数据之间的传递互相影响,而springMVC给我们提供了request与session两个,request每次请求就会产生一个单例,会导致数据比较多,session每次回话才会产生一个请求,所以我们一般情况都是用session比较多,它们两个具体的表现是出现在方法上的注解@requestscope或者@scope("request")和@sessionscope或者@scope("session")
- 当然因为他是后来才加入的注解,所以必须配置springMVC的扩展,我们需要在web。xml中配置<mvc:annotation-driven />
2.一些相关的注解配置及说明
- 放开所有的静态资源<mvc:default-servlet-handler/>
- 开放指定路径
location:表示访问的静态文件的目录mapping:表示访问的规则
<mvc:resources location="/image/" mapping="/image/**"></mvc:resources>
<mvc:resources location="/css/" mapping="/css/**"></mvc:resources>
<mvc:resources location="/js/" mapping="/js/**"></mvc:resources>
3.springMVC对json的支持
1.springMVC可以把所有的json语句和json对象进行强制转换,当然需要先导入支持其的相对应包
2.发送过来的json请求必须通过@requestBody注解对传过来的json进行强制转换为json对象返回的直接就是json对象
4.spring中的拦截器
- 拦截器和过滤器的基本功能是一样的,但是过滤器拦截的是请求路径,而拦截器是拦截的相对应映射方法路径
- 拦截器因为本就属于spring框架中的功能,所以spring一些需要的组件功能还是可以使用,而过滤器会把这些全都给拦截了
- 在SpringMVC里面,拦截器一定要实现HandleInterceptor,所以我们配置拦截器的时候必须继承HandleInterceptor这个接口类
- 拦截器的spring相关配置
4.1既然拦截器是基于spring框架中当然需要先配置一下这个拦截器的spring的配置,首先还是必须先保证springMVC的那几个包的添加
并且我们要先了解一下它的一些通配符,以达到精确拦截的要求。 ? 可以匹配任何一个字符 * 匹配任何长度的字符 ** 匹配多级目录的路径
5.
<!-- 配置拦截器 --> <mvc:interceptors> <!-- 配置指定的拦截器 --> <mvc:interceptor> <!-- 过滤规则,放在最前面 --> <mvc:mapping path="/**"/> <!-- 排除的过滤规则,放在第二,不包括 --> <!--注意,如果加了命名空间 --> <!-- 规则: 1.**不能加任何的字符,表示通配多级目录 2.多个字符*号. 表示通配同一级目录的多个字符 3.排除的范围小于拦截的范围. --> <mvc:exclude-mapping path="/user/login*"/> <!-- 对象配置放在最后 --> <bean class="cn.gzsxt.interceptor.MyInterceptor"></bean> </mvc:interceptor> </mvc:interceptors> |
原文地址:https://www.cnblogs.com/Virtual-field/p/10739612.html