springmvc拦截器配置
生活随笔
收集整理的這篇文章主要介紹了
springmvc拦截器配置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、目的:攔截器的配置主要是對請求進行相應的處理(在登錄和session過時的時候是一個很好的方式)
2、由于Spring容器的優越性,在配置的時候全部交給容器管理是一個很不錯的方式
3、配置攔截器:
1)在對應的方式類中實現HandlerInterceptor接口,會要求實現3個方法
@Overridepublic void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)throws Exception {// TODO Auto-generated method stub}@Overridepublic void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)throws Exception {// TODO Auto-generated method stub}public boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object obj) throws Exception {return true;}
2)所有的請求都會在攔截器里面經過,這樣在做登錄攔截的時候會起到數據的保護和相關的展示限權
在preHandle方法里面加入自己的邏輯
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object obj) throws Exception {//獲取判定登陸的session是否存在String token = (String) request.getSession().getAttribute("token");String postId = (String) request.getSession().getAttribute("postId");if(token == null || token == ""){String XRequested =request.getHeader("X-Requested-With");if("XMLHttpRequest".equals(XRequested)){response.getWriter().write("IsAjax");}else{response.sendRedirect("/m-web/");}return false;}if(postId == null || postId == ""){String XRequested =request.getHeader("X-Requested-With");if("XMLHttpRequest".equals(XRequested)){response.getWriter().write("IsAjax");}else{response.sendRedirect("/m-web/");}return false;}return true;}里面存在ajax請求攔截的處理詳情見:http://www.cnblogs.com/ll409546297/p/6203403.html
3、在Spring的配置文件里面加入
<mvc:interceptors><mvc:interceptor><mvc:mapping path="/**"/><mvc:exclude-mapping path="/user/login"/><mvc:exclude-mapping path="/user/loginOut"/><mvc:exclude-mapping path="/user/setPostId"/><mvc:exclude-mapping path="/user/getPostId"/><mvc:exclude-mapping path="/resources/**"/><mvc:exclude-mapping path="/assets/**"/><mvc:exclude-mapping path="/css/**"/><mvc:exclude-mapping path="/fonts/**"/><mvc:exclude-mapping path="/images/**"/><mvc:exclude-mapping path="/img/**"/><mvc:exclude-mapping path="/js/**"/><mvc:exclude-mapping path="/pic/**"/><mvc:exclude-mapping path="/plugins/**"/><mvc:exclude-mapping path="/static/**"/><mvc:exclude-mapping path="/ui/**"/><bean class="com.troy.ai.web.Interceptors.LoginInterceptor"/></mvc:interceptor></mvc:interceptors>解釋:
<mvc:mapping path="/**"/> //是對所有路徑進行過濾 <mvc:exclude-mapping path="/user/login"/> //是對該路徑進行放行 <mvc:exclude-mapping path="/ui/**"/> //是對靜態資源加載放行 <bean class="com.troy.ai.web.Interceptors.LoginInterceptor"/> //指定處理攔截的相關類4、攔截器的配置相對簡單,但是在實際的應用過程卻非常常見,邏輯處理方面需要根據實際來處理
總結
以上是生活随笔為你收集整理的springmvc拦截器配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 继承MonoBehaviour类的优缺点
- 下一篇: 关于MQTT协议的说明