写个filter,让你在哪怕是javabean中都可以随便读取http请求信息

  1. package com.test.web.filter;   
  2.   
  3. import java.io.IOException;   
  4. import javax.servlet.Filter;   
  5. import javax.servlet.FilterChain;   
  6. import javax.servlet.FilterConfig;   
  7. import javax.servlet.ServletException;   
  8. import javax.servlet.ServletRequest;   
  9. import javax.servlet.ServletResponse;   
  10. import javax.servlet.http.HttpServletRequest;   
  11. import javax.servlet.http.HttpServletResponse;   
  12. import javax.servlet.http.HttpSession;   
  13.   
  14. /**  
  15.  * 处理字符转码,提供给Spring AOP或其它任何通过web请求加载的实例类中读取http相关信息  
  16.  *  
  17.  */  
  18. public class CommonFilter implements Filter {   
  19.  private FilterConfig config = null;   
  20.  private String defaultEncode = "UTF-8";   
  21.  private static final String CHARSET_ENCODE_PARAM_NAME="Charset";   
  22.   
  23.  private static ThreadLocal<HttpServletRequest> requests = new ThreadLocal<HttpServletRequest>();   
  24.  private static ThreadLocal<HttpServletResponse> responses = new ThreadLocal<HttpServletResponse>();   
  25.   
  26.  public static HttpServletRequest getRequest() {   
  27.   return (HttpServletRequest) requests.get();   
  28.  }   
  29.   
  30.  public static HttpServletResponse getResponse() {   
  31.   return (HttpServletResponse) responses.get();   
  32.  }   
  33.   
  34.  public static HttpSession getSession() {   
  35.   return (HttpSession) getRequest().getSession();   
  36.  }   
  37.   
  38.  public static HttpSession getSession(boolean create) {   
  39.   return (HttpSession) getRequest().getSession(create);   
  40.  }   
  41.   
  42.  public void init(FilterConfig config) throws ServletException {   
  43.   this.config = config;   
  44.   if (this.config.getInitParameter(CHARSET_ENCODE_PARAM_NAME) != null) {   
  45.    defaultEncode = config.getInitParameter(CHARSET_ENCODE_PARAM_NAME);   
  46.   }   
  47.  }   
  48.   
  49.  public void doFilter(ServletRequest request, ServletResponse response,   
  50.    FilterChain chain) throws IOException, ServletException {   
  51.   ServletRequest srequest = request;   
  52.   srequest.setCharacterEncoding(defaultEncode);   
  53.   requests.set((HttpServletRequest) request);   
  54.   responses.set((HttpServletResponse) response);   
  55.   chain.doFilter(srequest, response);   
  56.  }   
  57.   
  58.  public void destroy() {   
  59.   this.config = null;   
  60.   
  61.  }   
  62.   
  63. }   
  64.   
  65.  <filter>   
  66.   <filter-name>Common Filter</filter-name>   
  67.   <filter-class>com.test.web.filter.CommonFilter</filter-class>   
  68.   <init-param>   
  69.    <param-name>Charset</param-name>   
  70.    <param-value>UTF-8</param-value>   
  71.   </init-param>   
  72.  </filter>   
  73.   
  74.  <filter-mapping>   
  75.   <filter-name>Common Filter</filter-name>   
  76.   <url-pattern>/*</url-pattern>   
  77.  </filter-mapping>   
  78.   
  79. //以后在任何程序中,比如就是普通的javabean中要使用时   
  80. logger.debug(CommonFilter.getRequest().getRemoteHost());  
  1. da shang
    donate-alipay
               donate-weixin weixinpay

发表评论↓↓