SpringMVC学习笔记--拦截器拦截Request请求

SpringMVC可以通过拦截器拦截你所需要拦截的request请求

拦截器也是属于handler mapping的一种机制而且拦截器必须实现org.springframework.web.servlet包的HandlerInterceptor接口, 但是为了方便使用, 一般继承HandlerInterceptor的适配器(HandlerInterceptorAdapter)就可以了;

拦截器

下面是一个简单的拦截器的例子(是Spring官方例子小修改而成的):

package com.wenj.interceptors;

import java.util.Calendar;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

public class WorkTimeInterceptor extends HandlerInterceptorAdapter {

private int openingTime;
private int closingTime;
public void setOpeningTime(int openingTime) {
this.openingTime = openingTime;
}

public void setClosingTime(int closingTime) {
this.closingTime = closingTime;
}

@Override

public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
Calendar cl = Calendar.getInstance();
int hour = cl.get(Calendar.HOUR_OF_DAY);
if(hour=closingTime){
response.sendRedirect("http://www.baidu.com");
return false;
}
return true;
}

}


以上例子很简单主要是实现工作时间的控制只有在工作时间(8~18)才能进行操作

 

拦截器配置

xml配置如下:

 

















这样一个简单的拦截器就实现了在非工作时间内访问网站时会直接跳转到百度这个网站并且终止当前的请求执行链

 

你可能感兴趣的:(SpringMVC)