SringMVC拦截器


目录结构

LoginInterceptor


package cn.edu.springmvc.login;

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

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


public class LoginInterceptor implements HandlerInterceptor {
    //Handler执行前调用
   //应用场景:登录认证、身份授权
     //返回值为true则是放行,为false是不放行
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse
            response, Object handler) throws Exception {
        // 获取请求的URI
        String requestURI = request.getRequestURI();
        System.out.println(requestURI);
      // 1.如果请求的URL是公开地址(无需登录就可以访问的URL),采取放行。
        if (requestURI.indexOf("login/check") > -1) {
            return true;
        }
       // 2.如果用户session存在,则放行。
        Object username = request.getSession().getAttribute("username");
        if (username != null && !username.equals("")) {
            return true;
        }
       // 3.如果用户session中不存在,则跳转到登录页面。
        response.sendRedirect("/index.jsp");
        return false;

    }
    //进入Handler开始执行,并且在返回ModelAndView之前调用
    //应用场景:对ModelAndView对象操作,可以把公共模型数据传到前台,可以统一指定视图
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse
            response, Object handler, ModelAndView modelAndView) throws Exception {
    }
    //执行完Handler之后调用
    //应用场景:统一异常处理、统一日志处理
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse
            response, Object handler, Exception ex) throws Exception {
    }
}

springmvc

  
    
        
        
            
            
            
        
    

usercontroller


@RequestMapping("/check")
	public String  hello(HttpSession session,User user, Model model){
		// 视图模型对象初始化
		ModelAndView modelAndView = new ModelAndView();

		User user_test= (User)usermapper.selectOne(user.getName());

		if(user_test.getPassword().equals(user.getPassword()))
		{
			modelAndView.addObject(user);
			session.setAttribute("username", user_test.getName());
			return "redirect:/student/selectall";
		}
		else if (user_test==null)
		{
			model.addAttribute("msg", "登录密码或用户名错误!!");
			return "error";
		} else{
			model.addAttribute("msg", "无此用户名!!");
			return "error";
		}
	}

相关