"springMVC拦截器HandlerInterceptor用法代码示例"
springMVC拦截器HandlerInterceptor是一种非常重要的技术,它可以帮助我们拦截用户的请求,从而知道页面请求的是哪个class的哪个方法。本文将详细介绍springMVC拦截器HandlerInterceptor的用法代码示例。
我们需要注册拦截器,这可以通过在springMVC配置文件中添加以下代码来实现:
```xml
<mvc:interceptors>
<bean class="com.project.base.interceptor.ControlInterceptor" />
</mvc:interceptors>
```
然后,我们需要继承HandlerInterceptor,实现拦截器。下面是一个简单的示例代码:
```java
package com.iflashbuy.limanman;
import java.util.Iterator;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
public class ControlInterceptor implements HandlerInterceptor {
private Logger logger = LoggerFactory.getLogger(getClass());
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object arg2, Exception arg3) throws Exception {
}
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception {
// TODO Auto-generated method stub
}
@Override
public Boolean preHandle(HttpServletRequest request, HttpServletResponse arg1, Object arg2) throws Exception {
int i = 1;
try {
@SuppressWarnings("unchecked")
Map<String, Object> parmMap = request.getParameterMap();
Iterator<String> iter = parmMap.keySet().iterator();
while (iter.hasNext()) {
Object key = iter.next();
Object value = parmMap.get(key);
logger.info("第" + i + "个param---->{}-{}", key, value);
i = i + 1;
}
} catch (Exception e) {
i = 1;
}
i = 1;
return true;
}
}
```
在上面的代码中,我们实现了HandlerInterceptor接口,并重写了三个方法:afterCompletion、postHandle和preHandle。其中,preHandle方法将在控制器执行之前被调用,我们可以在这里获取请求参数,并将其打印出来。
在后台,我们可以看到打印的信息,例如:
```
第1个param---->username- admin
第2个param---->password- 123456
```
这说明,我们已经成功地拦截了用户的请求,并获取了请求参数。
除了基本的拦截器之外,我们还可以拓展使用拦截器实现http基本认证。例如,我们可以在preHandle方法中添加以下代码:
```java
@Override
public Boolean preHandle(HttpServletRequest request, HttpServletResponse arg1, Object arg2) throws Exception {
String username = request.getParameter("username");
String password = request.getParameter("password");
if (username.equals("admin") && password.equals("123456")) {
return true;
} else {
return false;
}
}
```
这将检查用户的用户名和密码,如果正确则返回true,否则返回false。
springMVC拦截器HandlerInterceptor是一种非常有用的技术,它可以帮助我们拦截用户的请求,并获取请求参数。同时,我们还可以拓展使用拦截器实现http基本认证,以提高系统的安全性。
- 1
- 2
前往页