SpringMvc学习-4-Spring MVC 拦截器

本文介绍SpringMVC中如何利用@RequestBody和@ResponseBody实现JSON数据交互。通过配置处理器映射器和适配器,以及JSON转换器,实现浏览器与控制器间的数据交换。还介绍了拦截器的应用场景及执行流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SPring MVC  JSON数据交互

Spring提供了一个HttpMessageConverter<T>接口来实现浏览器与控制器类(Controller)之间的数据交互。
该接口主要用于将请求信息中的数据转换为一个类型为T的对象,并将类型为T的对象绑定到请求方法的参数中,或者将对象转换为响应信息传递给浏览器显示。
在使用注解式开发时,需要用到2个重要的JSON格式转换注解,分别为@RequestBody和@ResponseBody,
@RequestBody 用于将要请求的体中的数据绑定到方法中的参数上,该注解用再形参上
@ResponseBody 直接返回return对象 该注解用在方法上


<!-- <bean>标签配置注解方式的处理器映射器和处理器适配器必须配对使用 -->
<!-- 使用<bean>标签配置注解方式的处理器映射器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
使用<bean>标签配置注解方式的处理器适配器
<bean
    class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
    <property name="messageConverters">
        <list>
            在注解适配器中配置JSON转换器
            <bean
                class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
        </list>
    </property>
</bean> -->


静态资源:在springmvc.xml配置如下:
<!--配置静态资源的访问映射,此配置中的文件,将不被前端控制器拦截 -->

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

拦截器定义

拦截器:
Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理。
例如通过拦截器可以进行权限验证、记录请求信息的日志、判断用户是否登录等。

拦截器定义:
通过实现HandlerInterceptor接口,或继承HandlerInterceptor接口的实现类(如HandlerInterceptorAdapter)来定义
通过实现WebRequestInterceptor接口,或继承WebRequestInterceptor接口的实现类来定义。

拦截器执行流程

单个拦截器流程:
程序先执行preHandle()方法,如果该方法的返回值为true,则程序会继续向下执行处理器中的方法,否则将不再向下执行
在业务处理器(即控制器Controller类)处理完请求后,会执行postHandle()方法,然后会通过DispatcherServlet向客户端返回响应
在DispatcherServlet处理完请求后,才会执行afterCompletion()方法

多个拦截器执行顺序:
当有多个拦截器同时工作时,它们的preHandle()方法会按照配置文件中拦截器的配置顺序执行,
而它们的postHandle()方法和afterCompletion()方法则会按照配置顺序的反序执

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员路同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值