降魔篇之springmvc项目开发

来源:互联网 发布:易语言登录器源码 编辑:程序博客网 时间:2024/06/15 01:12

先说下项目里面的过滤类


HiddenHttpMethodFilter


因为默认的tomcat不支持delete,put 等

所以需要在请求的方法包装下支持下这些方法。



package com.oasystem.filter;import java.io.IOException;import java.util.Locale;import javax.servlet.FilterChain;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRequestWrapper;import javax.servlet.http.HttpServletResponse;import org.springframework.util.Assert;import org.springframework.util.StringUtils;import org.springframework.web.filter.HiddenHttpMethodFilter;public class MyHiddenHttpMethodFilter extends HiddenHttpMethodFilter{        private String methodParam = DEFAULT_METHOD_PARAM;            public void setMethodParam(String methodParam){          Assert.hasText(methodParam, "'methodParam' must not be empty");          this.methodParam = methodParam;      }            @Override      protected void doFilterInternal(HttpServletRequest request,              HttpServletResponse response, FilterChain filterChain)              throws ServletException, IOException {          String paramValue = request.getParameter(methodParam);          if (StringUtils.hasLength(paramValue)) {              String method = paramValue.toUpperCase(Locale.ENGLISH);                  HttpServletRequest wrapper = new HttpMethodRequestWrapper(request, method);                  filterChain.doFilter(wrapper, response);          }  else {              filterChain.doFilter(request, response);          }      }            private static class HttpMethodRequestWrapper extends HttpServletRequestWrapper {            private final String method;            public HttpMethodRequestWrapper(HttpServletRequest request, String method) {              super(request);              this.method = method;          }            @Override          public String getMethod() {              return this.method;          }      }        }  



Assert
编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式。


0 0