Spring MVC拦截器

拦截器

什么是拦截器:

  Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter)

  它主要用于拦截用户请求并作相应的处理。

  例如通过拦截器可以进行权限验证、记录请求信息的日志、判断用户是否登录等。

  在SpringMVC中通过实现HandlerInterceptor接口实现自定义拦截器类。

自定义拦截器类

public class MyInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Object handler) throws Exception {
        System.out.println("拦截器前");
        return true;
    }

    @Override
    public void postHandle(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("拦截器中");
    }

    @Override
    public void afterCompletion(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("拦截器后");
    }
}

大配置文件

    <!--配置拦截器-->
    <mvc:interceptors>
        <!--可多个 <mvc:interceptor>   -->
        <mvc:interceptor>
            <mvc:mapping path="/threeController/**"/>
            <bean class="com.xiao.Interceptor.MyInterceptor"/>
        </mvc:interceptor>
    </mvc:interceptors>

控制器

@Controller
@RequestMapping("/threeController")
public class threeController {
    @RequestMapping("/one")
    public ModelAndView one(String uname) {
        ModelAndView mv=new ModelAndView();
        System.out.println("进入Controller");
        mv.addObject("uname",uname);
        mv.setViewName("myform");
        return mv;
    }
}

表单

<html>
<head>
    <title>Title</title>
</head>
<body>
    <form action="/threeController/one" method="post">
        账号:<input type="text" name="uname"><br>
        密码:<input type="password" name="upwd"><br>
        <input type="submit" value="提交">
    </form>
</body>
</html>

目标页面

<html>
<head>
    <title>欢迎</title>
</head>
<body>
正常进入页面${uname}
</body>
</html>

Spring MVC拦截器

 

 

 

 

 

 

上一篇:springboot入门及配置文件介绍


下一篇:原型链