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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章