专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 SpringMVC拦截器配置示例

SpringMVC拦截器配置示例

更新时间:2022-03-25 09:46:12 来源:赢咖4 浏览970次

Spring mvc 拦截器

Spring MVC 提供了对将拦截器配置到 Web 应用程序中非常容易的支持。

SpringMVC拦截器配置需要以下步骤:

1.创建一个将充当您的拦截器的类。

这个类应该扩展HandlerInterceptorAdapter类。

2.preHandle()根据拦截器的功能将此类的,postHandle()和方法实现afterCompletion()到您的类中。

3.preHandle()如果拦截器应该在应用程序处理请求之前添加一些功能,则需要方法。

如果此方法返回true,则将请求转发给应用程序,否则返回。

postHandle()如果拦截器在响应发送到客户端之前执行任务,则afterCompletion()方法是必需的,如果拦截器应该在响应发送到客户端之后执行某些操作,则方法是必需的。

这些方法都不是强制性的。

4.将您的拦截器类声明为 spring 配置文件中标记下的bean<mvc:interceptors>

使用场景

假设您希望您的应用程序响应 url 以 myapp 结尾的请求,否则返回错误页面。

这可以使用拦截器轻松完成。

以下部分将指导您如何在 Spring 应用程序中配置拦截器并实现此功能。

package com.codippa.interceptor.ApplicationInterceptor
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
public class ApplicationInterceptor extends HandlerInterceptorAdapter {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, 
                          Object handler) throws Exception {
       // get the url of request
       String uri = request.getRequestURI();
       //check if it has myapp at the end
       if (uri.endsWith("myapp")) {
          //forward request to the application 
          return true;
       }
       // else show error page
       response.sendRedirect("/error.jsp");
       return false;
    }
    @Override
    public void postHandle(HttpServletRequest request, 
                        HttpServletResponse response, 
                        Object handler, 
                        ModelAndView modelAndView) throws IOException {
       System.out.println("Request handled");
    }
}

每个请求首先到达preHandle拦截器类的方法,该方法获取请求到达的 uri。

它检查 uri 是否以字符串 myapp 结尾并相应地返回true或返回false。

请注意,如果preHandle拦截器的方法返回true,则将请求转发给应用程序,否则将其返回。

在应用程序处理请求后,它到达postHandle输出字符串请求处理的方法,该字符串打印在服务器日志文件中。

在应用程序的 Spring 上下文文件中将此类声明为 bean,如下所示:

<?xml 版本= “1.0” 编码= “UTF-8” ?>
<beans xmlns= “http://www.springframework.org/schema/beans”
xmlns:context= “http://www.springframework.org /schema/context”
xmlns:xsi= “http://www.w3.org/2001/XMLSchema-instance” xmlns:mvc= “http://www.springframework.org/schema/mvc”
xmlns:tx= “ http://www.springframework.org/schema/tx” xmlns:p= “http://www.springframework.org/schema/p”
xsi:schemaLocation= “
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context。 xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd” >
<mvc:interceptors>
        <bean class=”com.codippa.interceptor.ApplicationInterceptor” />
</mvc:interceptors>
   <bean
class= "org.springframework.web.servlet.view.InternalResourceViewResolver" >
      <property name= "prefix" value= "/WEB-INF/views/jsp/" />
      <property name= "suffix" value= " .jsp” />
</bean>
</beans>

以上就是关于“SpringMVC拦截器配置示例”的介绍,大家如果想了解更多相关知识,不妨来关注一下赢咖4的SpringMVC教程,里面的课程内容更加细致全面,由浅到深,通俗易懂,适合没有基础的小白学习,希望对大家能够有所帮助。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>