SpringMVC_interceptor攔截器

這裏寫圖片描述

在springmvc的攔截器的開發中遇到以下問題,
這裏寫圖片描述

攔截器的代碼如下:

package com.tz.springmvc.sysmanage.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

public class LoginInterceptor implements HandlerInterceptor{

    @Override
    public boolean preHandle(HttpServletRequest request, 
            HttpServletResponse response,
            Object arg2) throws Exception {
        System.out.println("in preHandle....");

        //先過濾掉匿名訪問地址
        String url = request.getRequestURI();
        if(url.indexOf("/login.do")>=0){
            return true;
        }

        HttpSession session = request.getSession();
        String loginName=(String) session.getAttribute("loginName");
        if(loginName!=null){
            return true;
        }else{
            System.out.println("沒有登陸過");
            request.getRequestDispatcher("/login.jsp").forward(request, response);
        }
        return false;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse arg1,
            Object response, ModelAndView arg3) throws Exception {
        System.out.println("in postHandle....");

    }

    @Override
    public void afterCompletion(HttpServletRequest request,
            HttpServletResponse response, Object arg2, Exception arg3)
            throws Exception {
            System.out.println("in afterCompletion....");
    }

}

牧牛遛馬在寫這篇博客的過程中找到了異常點:

原來是在設置session時,把session的設置寫在了service層接口的service方法中,出現了參數類型不匹配的情況。

把session參數修改到controller包下面的LoginController類中,異常消除。

而在出現異常時,前臺頁面打印出來的信息不能夠全面,後臺打印的異常信息中有details一項中有提示,從而找到異常點。

這裏寫圖片描述

發佈了47 篇原創文章 · 獲贊 13 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章