|
|
struts中用过滤器(Filter)解决数据库中文的问题 |
|
|
作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站 |
在web.xml中加上 <filter> <filter-name>Set Character Encoding</filter-name> <filter-class>com.huahang.tj.struts.filters.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>GB2312</param-value> </init-param> <init-param> <param-name>ignore</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>Set Character Encoding</filter-name> <servlet-name>action</servlet-name> </filter-mapping> 这里会涉及一个Filter,源码如下: import javax.servlet.*; import java.io.IOException;
.public class SetCharacterEncodingFilter implements Filter {
protected String encoding = null; protected FilterConfig filterConfig = null; protected boolean ignore = true;
public void destroy() {
this.encoding = null; this.filterConfig = null;
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
if (ignore || (request.getCharacterEncoding() == null)) { String encoding = selectEncoding(request); if (encoding != null) request.setCharacterEncoding(encoding); }
chain.doFilter(request, response);
}
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")) this.ignore = true; else if (value.equalsIgnoreCase("yes")) this.ignore = true; else this.ignore = false;
} protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}
加上这个后,在action中就可以直接从form中接收gb2312编码的数据了,返回时自然也是gb2312了
|
|
相关文章:相关软件: |
|