springmvc拦截器
来源:互联网 发布:dx修复软件 编辑:程序博客网 时间:2024/06/17 20:03
applicationContext-mvc.xml中相应配置:
<mvc:interceptors> <!-- 使用bean定义一个Interceptor,直接定义在mvc:interceptors根下面的Interceptor将拦截所有的请求 --> <mvc:interceptor> <mvc:mapping path="/**"/> <!-- 需排除拦截的地址 --> <mvc:exclude-mapping path="/" /> <mvc:exclude-mapping path="/test" /> <!-- 定义在mvc:interceptor下面的表示是对特定的请求才进行拦截的 --> <bean class="com.interceptor.ParamProcessingInterceptor"/> </mvc:interceptor> </mvc:interceptors>
/** * */package com.interceptor;import java.util.Arrays;import java.util.Map;import java.util.Map.Entry;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.sagacity.core.utils.StringUtil;import org.springframework.web.method.HandlerMethod;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;/** *@description $<p></p>$ *@author heqf */public class ParamProcessingInterceptor implements HandlerInterceptor {/* (non-Javadoc) * @see org.springframework.web.servlet.HandlerInterceptor#afterCompletion(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.Object, java.lang.Exception) */@Overridepublic void afterCompletion(HttpServletRequest arg0,HttpServletResponse arg1, Object arg2, Exception arg3)throws Exception {}/* (non-Javadoc) * @see org.springframework.web.servlet.HandlerInterceptor#postHandle(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.Object, org.springframework.web.servlet.ModelAndView) */@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println(request.getAttribute("pageSize"));System.out.println(request.getAttribute("pageNo"));long startTime = (Long) request.getAttribute("startTime"); long endTime = System.currentTimeMillis(); long executeTime = endTime - startTime; if(handler instanceof HandlerMethod){ StringBuilder sb = new StringBuilder(1000); sb.append("CostTime : ").append(executeTime).append("ms").append("\n"); sb.append("-------------------------------------------------------------------------------"); System.out.println(sb.toString()); }}/* (non-Javadoc) * @see org.springframework.web.servlet.HandlerInterceptor#preHandle(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.Object) */@Overridepublic boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler) throws Exception {long startTime = System.currentTimeMillis();request.setAttribute("startTime", startTime);if (handler instanceof HandlerMethod) {if (StringUtil.isNotNullAndBlank(request.getParameterMap().get("pageModel.pageSize"))) {request.setAttribute("pageSize", request.getParameterMap().get("pageModel.pageSize")[0]);}if (StringUtil.isNotNullAndBlank(request.getParameterMap().get("pageModel.pageNo"))) {request.setAttribute("pageNo", request.getParameterMap().get("pageModel.pageNo")[0]);} StringBuilder sb = new StringBuilder(1000);HandlerMethod h = (HandlerMethod) handler;sb.append("Controller: ").append(h.getBean().getClass().getName()).append("\n");sb.append("Method : ").append(h.getMethod().getName()).append("\n");sb.append("Params : ").append(getParamString(request.getParameterMap())).append("\n");sb.append("URI : ").append(request.getRequestURI()).append("\n");System.out.println(sb.toString());}return true;}private String getParamString(Map<String, String[]> map) {StringBuilder sb = new StringBuilder();for(Entry<String,String[]> e:map.entrySet()){sb.append(e.getKey()).append("=");String[] value = e.getValue();if(value != null && value.length == 1){sb.append(value[0]).append("\t");}else{sb.append(Arrays.toString(value)).append("\t");}}return sb.toString();}}
set进去的参数在action中需要用String pageSize = (String) request.getAttribute("pageSize");的方式获取
如:
/** * 工单查询 * * @return * @throws BaseException */@RequestMapping(value = "/search", method = RequestMethod.GET)public String search(Model model,@ModelAttribute("eventSheetVO") EventSheetVO eventSheetVO,HttpServletRequest request) throws BaseException {String pageSize = (String) request.getAttribute("pageSize");if (StringUtil.isNotNullAndBlank(pageSize)) {pageModel.setPageSize(Integer.parseInt(pageSize));}String pageNo = (String) request.getAttribute("pageNo");if (StringUtil.isNotNullAndBlank(pageNo)) {pageModel.setPageNo(Integer.parseInt(pageNo));}if(eventSheetVO.getStaffId()!=null||eventSheetVO.getEventId()!=null||eventSheetVO.getCallNo()!=null||eventSheetVO.getBizClass()!=null||eventSheetVO.getBeginCreateTime()!=null||eventSheetVO.getStatus()!=null||eventSheetVO.getCompensateResult()!=null||eventSheetVO.getServiceChannel()!=null||eventSheetVO.getEventProduct()!=null){if(eventSheetVO.getEventId()!=null){eventSheetVO.setEndCreateTime(null);eventSheetVO.setBeginCreateTime(null);}pageModel = eventSheetService.findEvents(pageModel, eventSheetVO);}model.addAttribute("pageModel", pageModel);return "/event/event_sheet_search";}
阅读全文
0 0
- [SpringMVC] SpringMVC拦截器
- SpringMVC-----9、SpringMVC拦截器
- springMVC—springMVC拦截器
- springMVC 拦截器
- SpringMVC—拦截器
- springmvc 拦截器配置
- SpringMvc拦截器
- SpringMvc 拦截器
- springMVC 拦截器
- springmvc登录拦截器
- springMVC之拦截器
- SpringMVC使用拦截器
- springMVC 自定义拦截器
- springmvc拦截器实现
- springMVC 拦截器
- springmvc的拦截器
- SpringMVC拦截器
- springMVC拦截器
- Java线程:概念与原理
- postman不写key传到后台为null,有key没值传到后台是空串
- 基于HttpClient4.5.2实现的HttpClient工具类
- SpringMVC接收参数
- 使用Java、hibernate validator注解校验入参,格式化出参(出参)
- springmvc拦截器
- redis的一些总结
- PHP递归
- 决策树
- tensorflow实际应用了解(1)
- Easyui中DataGrid组件重复请求问题
- 第13届湖南省大学生程序竞赛总结
- 马上要入坑的小白前来报道
- es2015学习笔记<经典入门>