Spring3 MVC 拦截器
来源:互联网 发布:淘宝双十一实时交易额 编辑:程序博客网 时间:2024/06/16 08:35
<!-- 拦截器 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/*.do" /> <bean class="com.log.report.interceptor.AccessStatisticsIntceptor" /> </mvc:interceptor> </mvc:interceptors>定义一个全局的拦截器:
定义在servlet-config.xml文件中。
以下是一个拦截器,它用来记录访问的ip和流量。
拦截器需要实现HandlerInterceptor接口,同时实现相应的方法。在PreHandler方法中,返回值如果是false,就会拦截住请求。
import java.text.SimpleDateFormat;import java.util.Date;import java.util.HashMap;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;public class AccessStatisticsIntceptor implements HandlerInterceptor {public static long access_num = 0;public static Map<String,Long> IPMap = new HashMap<String,Long>();public static Map<String,Long> urlMap = new HashMap<String,Long>();@Overridepublic void afterCompletion(HttpServletRequest arg0,HttpServletResponse arg1, Object arg2, Exception arg3)throws Exception {// TODO Auto-generated method stub}@Overridepublic void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,Object arg2, ModelAndView arg3) throws Exception {// TODO Auto-generated method stub}@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object obj) throws Exception {access_num += 1;SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");Date now = new Date();String ip = request.getHeader("x-forwarded-for"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } String url = request.getRequestURI() != null ? request.getRequestURI().toString() : null; url= sdf.format(now) + "-" + url; if(url != null && urlMap.containsKey(url)) { urlMap.put(url, urlMap.get(url) + 1 ); } else if(url != null) { urlMap.put(url, 1l); } String key = sdf.format(now) + "-" + ip; if(IPMap.containsKey(key)) { IPMap.put(key, IPMap.get(key) + 1 ); } else { IPMap.put(key, 1l); }return true;}}
- Spring3 MVC 拦截器
- Spring3 MVC 拦截器
- Spring3 MVC 拦截器拦截不到的问题
- Spring3 MVC 拦截器拦截不到的问题
- Spring3中的mvc:interceptors标签配置拦截器
- Spring3中的mvc:interceptors标签配置拦截器
- Spring3中的mvc:interceptors标签配置拦截器
- Spring3中的mvc:interceptors标签配置拦截器
- Spring3中的mvc:interceptors标签配置拦截器
- spring3.0 MVC初步5-利用拦截器防止SQL注入
- Spring MVC 拦截器
- Spring MVC 拦截器
- Spring MVC 拦截器
- spring MVC拦截器
- Spring MVC拦截器
- spring mvc 拦截器
- spring mvc 拦截器
- spring mvc 拦截器
- 一套强大的vim配置文件+详细注释
- C# 开发 Win 7下应用程序所需的管理员身份运行问题
- 二分搜索
- spring3.0 MVC 配置全局日期转换
- 国内HTML5前端开发框架汇总
- Spring3 MVC 拦截器
- Windows下Nutch的配置
- Jquery EasyUI插件中关于Dialog屏幕显示居中的解决方案
- 用弹出框做的本地下载
- 异步编程摘录
- 深入研究java对String字符串对象的创建以及管理
- 一个jQuery效果
- uploadify-v3.1 java 实例
- Linux进程管理内核API函数pid_task( )