Spring拦截器

表单中文参数值的乱码问题

. 表单应该以post方式来提交。<br/> . 配置spring提供的过滤器(CharacterEncodingFilter), 并且设置encoding初始化参数值与页面的编码一致。<br/>

拦截器

  1. 什么是拦截器?
    前端控制器收到请求之后,如果有拦截器,则先调用
    拦截器,然后再调用处理器。 inter

注:
过滤器是Servlet规范当中定义的特殊的类,而拦截器
是Spring框架提供的一种特殊的类。 Serlvet容器收到请求之后,先调用过滤器,再调用
Servlet。
2. 如何写一个拦截器?
step1. 写一个java类,实现HandlerInterceptor接口。
注:
preHandle():前端控制器收到请求之后,会先调用拦截器
的preHandle方法,如果该方法的返回值为true,表示继续
向后调用,如果该方法的返回值为false,表示中断请求(
不再向后调用)。
postHandle():拦截器的方法已经执行完毕,正准备将处理
结果(ModelAndView)返回给前端控制器的时候,执行
postHandle方法(我们可以在该方法里面,修改ModelAndView)。
afterCompletion():最后执行的方法。
step2. 在拦截器方法里面,编写拦截处理逻辑。
step3. 配置拦截器。
interceptor

Spring框架中,拦截器是一种可以拦截请求并在处理请求之前或之后执行自定义逻辑的组件。它们可以用于实现身份验证、授权、日志记录等功能。下面是使用拦截器的步骤: 1. 创建一个类并实现`HandlerInterceptor`接口。 2. 在类中实现`preHandle`、`postHandle`和`afterCompletion`方法,分别在请求处理之前、请求处理之后和视图渲染完成后执行特定的逻辑。 3. 在配置文件中注册拦截器,并指定拦截的URL模式或特定路径。 以下是一个简单的例子: ```java public class CustomInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 在请求处理之前执行的逻辑 return true; // 返回true继续处理请求,返回false终止请求处理 } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { // 在请求处理之后但视图渲染之前执行的逻辑 } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { // 在视图渲染完成后执行的逻辑 } } ``` 在配置文件中注册拦截器: ```xml <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <!-- 拦截所有URL --> <bean class="com.example.CustomInterceptor"/> </mvc:interceptor> </mvc:interceptors> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值