小样儿,顶呱呱!!![http://www.showyounger.com]
- package com.test.web.filter;
-
- import java.io.IOException;
- import javax.servlet.Filter;
- import javax.servlet.FilterChain;
- import javax.servlet.FilterConfig;
- import javax.servlet.ServletException;
- import javax.servlet.ServletRequest;
- import javax.servlet.ServletResponse;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
-
-
-
-
-
- public class CommonFilter implements Filter {
- private FilterConfig config = null;
- private String defaultEncode = "UTF-8";
- private static final String CHARSET_ENCODE_PARAM_NAME="Charset";
-
- private static ThreadLocal<HttpServletRequest> requests = new ThreadLocal<HttpServletRequest>();
- private static ThreadLocal<HttpServletResponse> responses = new ThreadLocal<HttpServletResponse>();
-
- public static HttpServletRequest getRequest() {
- return (HttpServletRequest) requests.get();
- }
-
- public static HttpServletResponse getResponse() {
- return (HttpServletResponse) responses.get();
- }
-
- public static HttpSession getSession() {
- return (HttpSession) getRequest().getSession();
- }
-
- public static HttpSession getSession(boolean create) {
- return (HttpSession) getRequest().getSession(create);
- }
-
- public void init(FilterConfig config) throws ServletException {
- this.config = config;
- if (this.config.getInitParameter(CHARSET_ENCODE_PARAM_NAME) != null) {
- defaultEncode = config.getInitParameter(CHARSET_ENCODE_PARAM_NAME);
- }
- }
-
- public void doFilter(ServletRequest request, ServletResponse response,
- FilterChain chain) throws IOException, ServletException {
- ServletRequest srequest = request;
- srequest.setCharacterEncoding(defaultEncode);
- requests.set((HttpServletRequest) request);
- responses.set((HttpServletResponse) response);
- chain.doFilter(srequest, response);
- }
-
- public void destroy() {
- this.config = null;
-
- }
-
- }
-
- <filter>
- <filter-name>Common Filter</filter-name>
- <filter-class>com.test.web.filter.CommonFilter</filter-class>
- <init-param>
- <param-name>Charset</param-name>
- <param-value>UTF-8</param-value>
- </init-param>
- </filter>
-
- <filter-mapping>
- <filter-name>Common Filter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
-
-
- logger.debug(CommonFilter.getRequest().getRemoteHost());