javascript
springmvc拦截器对请求参数解密_SpringMVC拦截器如何修改请求参数
攔截器1,基本攔截器:
package cn.ijava.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
public class BaseInterceptor implements HandlerInterceptor{
/**
* 在DispatcherServlet之前執(zhí)行
* */
public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
System.out.println("************BaseInterceptor preHandle executed**********");
return true;
}
/**
* 在controller執(zhí)行之后32313133353236313431303231363533e78988e69d8331333365656530的DispatcherServlet之后執(zhí)行
* */
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
throws Exception {
System.out.println("************BaseInterceptor postHandle executed**********");
}
/**
* 在頁面渲染完成返回給客戶端之前執(zhí)行
* */
public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
System.out.println("************BaseInterceptor afterCompletion executed**********");
//?? ??? ?Thread.sleep(10000);
}
}
指定controller請求的攔截器
public?class?TestInterceptor?implements?HandlerInterceptor?{public?boolean?preHandle(HttpServletRequest?arg0,?HttpServletResponse?arg1,?Object?arg2)?throws?Exception?{System.out.println("************TestInterceptor?preHandle?executed**********");return?true;}public?void?postHandle(HttpServletRequest?arg0,?HttpServletResponse?arg1,?Object?arg2,?ModelAndView?arg3)throws?Exception?{System.out.println("************TestInterceptor?postHandle?executed**********");}public?void?afterCompletion(HttpServletRequest?arg0,?HttpServletResponse?arg1,?Object?arg2,?Exception?arg3)throws?Exception?{System.out.println("************TestInterceptor?afterCompletion?executed**********");}}
在SpringMVC的配置文件中注冊這兩個(gè)攔截器
定義一個(gè)測試使用的controller:
@Controllerpublic?class?TestController?{@RequestMapping("/test.html")public?ModelAndView?handleRequest(){System.out.println("---------TestController?executed--------");return?new?ModelAndView("test");}}
擴(kuò)展:java里的攔截器是動態(tài)攔截Action調(diào)用的對象。
它提供了一種機(jī)制可以使開發(fā)者可以定義在一個(gè)action執(zhí)行的前后執(zhí)行的代碼,
也可以在一個(gè)action執(zhí)行前阻止其執(zhí)行,同時(shí)也提供了一種可以提取action中可重用部分的方式。
在AOP(Aspect-Oriented Programming)中攔截器用于在某個(gè)方法或字段被訪問之前,
進(jìn)行攔截然后在之前或之后加入某些操作。
總結(jié)
以上是生活随笔為你收集整理的springmvc拦截器对请求参数解密_SpringMVC拦截器如何修改请求参数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无法确定当前的订阅失效日期_元器件失效率
- 下一篇: java坦克大战 素材_坦克大战 游戏源