服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

struts+hibernate中解决汉字编码问题


  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;
}

}

扫描关注微信公众号