方法一:最简单也是用的最多的方法
<%@ page language="java" pageEncoding="GBK" %>
<%@ page language="java" pageEncoding="GBK" %> |
或者<%@ page contenttype="text/html.charset=gbk".>这里可以用gb2312或者gbk,只是gbk比gb2312支持跟多的字符。
这个方法用于jsp页面中的中文显示。
方法二:使用过滤器
过滤器使用主要针对表单提交,插入数据库的数据都是?号。这也是应为tomcat不按request所指定的编码进行编码,还是自作主张的采用默认编码方式iso-8859-1编码。
编写一个SetCharacterEncodingFilter类。
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. protected boolean ignore = true. 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 this.ignore=false. } public void doFilter( ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // TODO 自动生成方法存根 if (ignore (request.getCharacterEncoding() == null)) { String encoding = 0selectEncoding(request). if (encoding != null) request.setCharacterEncoding(encoding). } chain.doFilter(request, response). } public void destroy() { // TODO 自动生成方法存根 this.encoding = null. this.filterConfig = null. } protected String 0selectEncoding(ServletRequest request) { return (this.encoding). } } |
相关文章
专业语言:getVarDate方法
体验流调试的威力
专业语言:JAVA的类和接口
Java技巧:用Java保存位图文件
解决J 开发Web程序中文显示三种方法
Java技术与.NET的集成将打破SOA应用壁垒
Java解析网络数据流的三种特殊方法
JavaBean中使用JDBC方式进行事务处理
争鸣:Java的Web框架让我如何去爱你
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛