1.修改web.xml文件,在<web-app>标签后增加如下内容.
| <filter> <filter-name>set character encoding</filter-name> <filter-class>com.company.demo.util.setencodingfilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>gb2312</param-value> </init-param> </filter> <filter-mapping> <filter-name>set character encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> |
2.创建类文件(setencodingfilter.java)
| package com.company.demo.util; 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.unavailableexception; /** * set all httprequest encoding */ public class setencodingfilter implements filter { /** * the default character encoding to set for requests that pass through * this filter. */ protected string encoding = null; /** * the filter configuration object we are associated with. if this value * is null, this filter instance is not currently configured. */ protected filterconfig filterconfig = null; /** * should a character encoding specified by the client be ignored? */ protected boolean ignore = true; /** * take this filter out of service. */ public void destroy() { this.encoding = null; this.filterconfig = null; } /** * select and set (if specified) the character encoding to be used to * interpret request parameters for this request. * * @param request the servlet request we are processing * @param result the servlet response we are creating * @param chain the filter chain we are processing * * @exception ioexception if an input/output error occurs * @exception servletexception if a servlet error occurs */ public void dofilter( servletrequest request, servletresponse response, filterchain chain) throws ioexception, servletexception { if (ignore || (request.getcharacterencoding() == null)) { request.setcharacterencoding(selectencoding(request)); } chain.dofilter(request, response); } /** * place this filter into service. * @param filterconfig the filter configuration object */ public void init(filterconfig filterconfig) throws servletexception { this.filterconfig = filterconfig; this.encoding = filterconfig.getinitparameter("encoding"); string value = filterconfig.getinitparameter("ignore"); if (value == null) this.ignore = true; else if (value.equalsignorecase("true") || value.equalsignorecase("yes")) this.ignore = true; else this.ignore = false; } /** * select an appropriate character encoding to be used, based on the * characteristics of the current request and/or filter initialization * parameters. if no character encoding should be set, return * <code>null</code>. * <p> * the default implementation unconditionally returns the value configured * by the <strong>encoding</strong> initialization parameter for this * filter. * * @param request the servlet request we are processing */ protected string selectencoding(servletrequest request) { return (this.encoding); } /** * returns the filterconfig. * @return filterconfig */ public filterconfig getfilterconfig() { return filterconfig; } /** * sets the filterconfig. * @param filterconfig the filterconfig to set */ public void setfilterconfig(filterconfig filterconfig) { this.filterconfig = filterconfig; } } |
闽公网安备 35060202000074号