熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

解決JSP開發Web程序中的中文問題[1]

2013-11-15 12:19:36  來源: JSP教程 

   這段時間經常看到有人問到web開發中怎麼中文總是?號原因其實很簡單因為大家大多用的是tomcat服務器而tomcat服務器的默認編碼為 iso(西歐字符)就是因為iso(西歐字符)編碼造成了我們經常看到?號

 方法一最簡單也是用的最多的方法

 <%@ page language=java pageEncoding=GBK %>

 或者<%@ page contenttype=text/html;charset=gbk;>這裡可以用gb或者gbk只是gbk比gb支持跟多的字符

 這個方法用於jsp頁面中的中文顯示

 方法二使用過濾器

 過濾器使用主要針對表單提交插入數據庫的數據都是?號這也是應為tomcat不按request所指定的編碼進行編碼還是自作主張的采用默認編碼方式iso編碼

 編寫一個SetCharacterEncodingFilter類

  import javaioIOException;
import javaxservletFilter;
import javaxservletFilterChain;
import javaxservletFilterConfig;
import javaxservletServletException;
import javaxservletServletRequest;
import javaxservletServletResponse;
public class SetCharacterEncodingFilter implements Filter {
 protected String encoding = null;
 protected FilterConfig filterConfig = null;
 protected boolean ignore = true;
 public void init(FilterConfig filterConfig) throws ServletException {
  thisfilterConfig=filterConfig;
  thisencoding=filterConfiggetInitParameter(encoding);
  String value=filterConfiggetInitParameter(ignore);
  if(value==null)
   thisignore=true;
  else if(valueequalsIgnoreCase(true))
   thisignore=true;
  else
   thisignore=false;
 }
 public void doFilter(ServletRequest request ServletResponse response FilterChain chain) throws IOException ServletException {
 // TODO 自動生成方法存根
 if (ignore || (requestgetCharacterEncoding() == null)) {
  String encoding = selectEncoding(request);
  if (encoding != null)
   requestsetCharacterEncoding(encoding);
 }
 chaindoFilter(request response);
}
public void destroy() {
 // TODO 自動生成方法存根
 thisencoding = null;
 thisfilterConfig = null;
}
protected String selectEncoding(ServletRequest request) {
 return (thisencoding);
}
}

[]  []  


From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20723.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.