解决JSP开发中Web程序显示中文三种方法

唯欣绝对

唯欣绝对

2016-02-19 11:08

清醒时做事,糊涂时读书,大怒时睡觉,无聊时关注图老师为大家准备的精彩内容。下面为大家推荐解决JSP开发中Web程序显示中文三种方法,无聊中的都看过来。
方法一:最简单也是用的最多的方法
  <%@ 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 = selectEncoding(request);
    if (encoding != null)
     request.setCharacterEncoding(encoding);
   }
   chain.doFilter(request, response);
  }
  public void destroy() {
   // TODO 自动生成方法存根
   this.encoding = null;
   this.filterConfig = null;
  }
  protected String selectEncoding(ServletRequest request) {
   return (this.encoding);
  }
  }
然后再web.xml加上
  <!-- Set Character Encoding-->
  <filter>
   <filter-name>Set Character Encoding</filter-name>
   <filter-class>com.struts.common.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>
    <url-pattern>/*</url-pattern>
   </filter-mapping>
  <!-- Set Character Encoding-->
  使用过滤器的好处很多,特别是项目之中。
  而且在使用国际化时就更有用了,只要在页面指定 <%@ page language="java" pageEncoding="UTF-8" %>,服务器就会根据本地Locale来显示正确的字符集。
  所以我特别推荐使用过滤器。
  方法三:修改tomcat的server.xml文件中URIEncoding
  <Connector debug="0" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true"
  port="80" redirectPort="8443" enableLookups="false" minSpareThreads="25" maxSpareThreads="75"
  maxThreads="150" maxPostSize="0" URIEncoding="GBK" >
  </Connector>
  这个方法主要针对从url中获取字符串的问题。
  在tomcat5.0及以上版本,post和get方法在处理编码时有所不同。如果你在url中获取中文就会出现?号。但在tomcat4.1版本没有问题,因为tomcat4.1的post和get方法在处理编码时是一样的。
展开更多 50%)
分享

猜你喜欢

解决JSP开发中Web程序显示中文三种方法

Web开发
解决JSP开发中Web程序显示中文三种方法

解决JSP开发Web程序中的中文问题

Web开发
解决JSP开发Web程序中的中文问题

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

利用JSP 2.0开发Web应用程序

Java JAVA基础
利用JSP 2.0开发Web应用程序

治疗便秘三种方法

电脑网络
治疗便秘三种方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

三种方法疗效好

电脑网络
三种方法疗效好

Android开发笔记 改变字体颜色的三种方法

编程语言 网络编程
Android开发笔记 改变字体颜色的三种方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Java中CyclicBarrier的用法分析

Java中CyclicBarrier的用法分析

实现树状结构的两种方法

实现树状结构的两种方法
下拉加载更多内容 ↓