Java WEB 应用字符编码解决方案

    技术2022-05-11  71

    过滤器类: --------------------------------------------------------------- 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; /**  * 此过滤器用于设置字符编码   *   */ public class SetCharacterEncodingFilter implements Filter {     protected String encoding = null;     protected FilterConfig filterConfig = null;     public SetCharacterEncodingFilter() {         super();     }     /*      *       *       * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)      */     public void init(FilterConfig filterConfig) throws ServletException {         this.filterConfig = filterConfig;         this.encoding = filterConfig.getInitParameter("encoding");     }     /*      *       *       * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest,      *      javax.servlet.ServletResponse, javax.servlet.FilterChain)      */     public void doFilter(ServletRequest request, ServletResponse response,             FilterChain chain) throws IOException, ServletException {         // Select and set (if needed) the character encoding to be used         String encoding = selectEncoding(request);         if (encoding != null) {             // 设置请求的字符编码             request.setCharacterEncoding(encoding);             // 设置响应的字符编码             response.setCharacterEncoding(encoding);         }         // Pass control on to the next filter         chain.doFilter(request, response);     }     /*      *       *       * @see javax.servlet.Filter#destroy()      */     public void destroy() {         this.encoding = null;         this.filterConfig = null;     }     protected String selectEncoding(ServletRequest request) {         return (this.encoding);     } }  web.xml映射 ------------------------------------------------------------------------ <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">     <filter>         <filter-name>Set Character Encoding</filter-name>         <filter-class>com.dadaonline.commons.filter.SetCharacterEncodingFilter</filter-class>         <init-param>             <param-name>encoding</param-name>             <param-value>UTF-8</param-value>         </init-param>     </filter>     <filter-mapping>         <filter-name>Set Character Encoding</filter-name>         <servlet-name>strutsAction</servlet-name>     </filter-mapping>     <servlet>         <servlet-name>strutsAction</servlet-name>         <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>         <init-param>             <param-name>config</param-name>             <param-value>/WEB-INF/struts-config.xml</param-value>         </init-param>         <init-param>             <param-name>debug</param-name>             <param-value>3</param-value>         </init-param>         <init-param>             <param-name>detail</param-name>             <param-value>3</param-value>         </init-param>         <load-on-startup>0</load-on-startup>     </servlet>     <servlet-mapping>         <servlet-name>strutsAction</servlet-name>         <url-pattern>*.do</url-pattern>     </servlet-mapping> </web-app>  

    最新回复(0)