a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > JSP > 正文

解決JSP開發(fā)Web程序中文顯示三種方法

2024-09-05 00:20:37
字體:
供稿:網(wǎng)友
,歡迎訪問網(wǎng)頁設(shè)計(jì)愛好者web開發(fā)。

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

 ?。?@ page language="java" pageencoding="gbk" %>

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

  這個(gè)方法用于jsp頁面中的中文顯示。

  方法二:使用過濾器

  過濾器使用主要針對表單提交,插入數(shù)據(jù)庫的數(shù)據(jù)都是?號。這也是應(yīng)為tomcat不按request所指定的編碼進(jìn)行編碼,還是自作主張的采用默認(rèn)編碼方式iso-8859-1編碼。

  編寫一個(gè)setcharacterencodingfilter類。

  importjava.io.ioexception; 
  importjavax.servlet.filter; 
  importjavax.servlet.filterchain; 
  importjavax.servlet.filterconfig; 
  importjavax.servlet.servletexception; 
  importjavax.servlet.servletrequest; 
  importjavax.servlet.servletresponse; 
  publicclasssetcharacterencodingfilterimplementsfilter{ 
   protectedstringencoding=null; 
   protectedfilterconfigfilterconfig=null; 
   protectedbooleanignore=true; 
   publicvoidinit(filterconfigfilterconfig)throwsservletexception{ 
    this.filterconfig=filterconfig; 
    this.encoding=filterconfig.getinitparameter("encoding"); 
    stringvalue=filterconfig.getinitparameter("ignore"); 
    if(value==null) 
     this.ignore=true; 
    elseif(value.equalsignorecase("true")) 
     this.ignore=true; 
    else 
     this.ignore=false; 
   } 
   publicvoiddofilter( 
  servletrequestrequest,servletresponseresponse,filterchainchain) 
  throwsioexception,servletexception{ 
   //todo自動生成方法存根 
   if(ignore  (request.getcharacterencoding()==null)){ 
    stringencoding=selectencoding(request); 
    if(encoding!=null) 
     request.setcharacterencoding(encoding); 
   } 
   chain.dofilter(request,response); 
  } 
  publicvoiddestroy(){ 
   //todo自動生成方法存根 
   this.encoding=null; 
   this.filterconfig=null; 
  } 
  protectedstringselectencoding(servletrequestrequest){ 
   return(this.encoding); 
  } 
  }

  然后再web.xml加上

  <!--setcharacterencoding--> 
 ?。糵ilter> 
  ?。糵ilter-name>setcharacterencoding</filter-name> 
   <filter-class>com.struts.common.setcharacterencodingfilter</filter-class> 
  ?。糹nit-param> 
   ?。紁aram-name>encoding</param-name> 
   ?。紁aram-value>utf-8</param-value> 
  ?。?init-param> 
  </filter> 
 ?。糵ilter-mapping> 
  ?。糵ilter-name>setcharacterencoding</filter-name> 
    <url-pattern>/*</url-pattern> 
  ?。?filter-mapping> 
  <!--setcharacterencoding-->

  使用過濾器的好處很多,特別是項(xiàng)目之中。

  而且在使用國際化時(shí)就更有用了,只要在頁面指定 <%@ page language="java" pageencoding="utf-8" %>,服務(wù)器就會根據(jù)本地locale來顯示正確的字符集。

  所以我特別推薦使用過濾器。

  方法三:修改tomcat的server.xml文件中uriencoding

  <connectordebug="0"acceptcount="100"connectiontimeout="20000"disableuploadtimeout="true" 
  port="80"redirectport="8443"enablelookups="false"minsparethreads="25"maxsparethreads="75" 
  maxthreads="150"maxpostsize="0"uriencoding="gbk"> 
  </connector>

  這個(gè)方法主要針對從url中獲取字符串的問題。

  在tomcat5.0及以上版本,post和get方法在處理編碼時(shí)有所不同。如果你在url中獲取中文就會出現(xiàn)?號。但在tomcat4.1版本沒有問題,因?yàn)閠omcat4.1的post和get方法在處理編碼時(shí)是一樣的。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产精品一区亚洲二区日本三区 | 国产成人精品999在线观看 | 国产一区二区三区四区五区加勒比 | 欧美黑人xxx | 狠狠色噜噜狠狠狠狠 | 青青草一区 | 久久精品91久久久久久再现 | 国产午夜久久久久 | 欧美国产亚洲一区二区 | 中文天堂av | 亚洲三级网站 | 成人黄色免费网址 | 国产精品99 | 狠狠操操操 | 中文字幕日韩欧美一区二区三区 | 可以在线观看的黄色 | 日韩国产一区二区 | 日本一级在线观看 | 欧美视频网站 | 亚洲成人免费视频在线观看 | 国产精品一区二区三区四区 | 拍真实国产伦偷精品 | 中文一区 | 成人久久久久爱 | 91在线精品秘密一区二区 | 亚洲狠狠爱一区二区三区 | 99精品亚洲 | 国产一区二区精品 | 97人人爽 | av不卡在线看 | 国产视频第一页 | 亚洲精品久久久久久久久久久久久 | 五月天黄色网 | 国外成人在线视频网站 | 日韩欧美一区二区三区视频 | 成人在线免费电影 | 日韩不卡一区二区三区 | 欧美精品久久久久久久久老牛影院 | 国产高清精品一区 | 美女日批视频在线观看 | 三级视频在线 |