springMVC 攔截器如何做登錄檢查及頁面跳轉


一個非常簡單的登錄權限攔截器

問題一:登錄頁面的提交請求肯定是要過濾掉的,目前采用在xml里配置<mvc:mapping path="/supplier/*"/>來過濾,可不可以配置不攔截某種請求。如果是按目前這種配置需要攔截請求,當請求太多的時候那就太麻煩了。

問題二:我簡單地在攔截器里判斷session是否有值,如果有表示登錄,如果沒有則跳轉登錄頁面。按我下面的做法是不行的,有沒有正確而有效的方法。

問題三:如果大家能夠給出在攔截器內跳轉頁面的方案,可我的login.jsp是放在WEB-INF下面的,通過ModelAndView跳轉時,視圖解析器會跳轉到/WEB-INF/login.jsp下,那肯定是找不到頁面的。但如果我放到此文件夾下,那瀏覽器又不能訪問login.jsp頁面了。下載地址

1.public class UserInterceptor implements HandlerInterceptor{  
2.  
3.    @Override  
4.    public void afterCompletion(HttpServletRequest request,  
5.            HttpServletResponse response, Object obj, Exception err)  
6.            throws Exception {  
7.    }  
8.  
9.    @Override  
10.    public void postHandle(HttpServletRequest request, HttpServletResponse response,  
11.            Object obj, ModelAndView mav) throws Exception {  
12.        response.sendRedirect("/login.jsp");  
13.    }  
14.  
15.    @Override  
16.    public boolean preHandle(HttpServletRequest request, HttpServletResponse response,  
17.            Object obj) throws Exception {  
18.        String str = (String) request.getSession().getAttribute("isLogin");  
19.        System.out.println("str=========>"+str);  
20.        if(str!=null){  
21.            return true;  
22.        }  
23.        return false;  
24.    }  
25.}  
1.<!-- 自定義攔截鏈配置 -->  
2.    <mvc:interceptors>  
3.        <mvc:interceptor>  
4.            <mvc:mapping path="/supplier/*"/>  
5.            <mvc:mapping path="/goods/*"/>  
6.            <mvc:mapping path="/contact/*"/>  
7.            <bean class="com.xiaoxing.shangjia.user.controller.UserInterceptor"></bean>  
8.        </mvc:interceptor>  
9.    </mvc:interceptors>  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM