首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

Tomcat6服务器编码及Ajax中文乱码有关问题

2012-07-16 
Tomcat6服务器编码及Ajax中文乱码问题? ???????? URIEncodingUTF-8 /   Connector port8009 proto

Tomcat6服务器编码及Ajax中文乱码问题

? ???????? URIEncoding="UTF-8" />

  <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"?

????????? URIEncoding="UTF-8"/>

?

如果还是不行,可以在上面修改的基础上? 从? tomcat 的自带项目? Examples是里的---\webapps\examples\WEB-INF\classes\filters

下找到?? RequestDumperFilter.java?? 和?? SetCharacterEncodingFilter.java,

?加入到工程文件中去。

并把这个tomcat带的编码过滤器配置到web.xml里

?? <filter>
    <filter-name>Set Character Encoding</filter-name>
      <filter-class>xxx.xxx.xxx.SetCharacterEncodingFilter</filter-class>

?????????????????? <!--类路径-->
      <init-param>
        <param-name>encoding</param-name>
        <param-value>GBK</param-value>
      </init-param>
    </filter>
    <filter-mapping>
      <filter-name>Set Character Encoding</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>

?

?

Ajax中文乱码问题

在页面中用如下方式解决:

??? var reportTmpId = $("#reportTmpId").val();
????var attrKey = encodeURI(encodeURI($("#attrKey").val()));
????$.post("${ctp}/ms/report/validateKeyRepTmpAttr.action?reportTmpId="+reportTmpId+"&attrKey="+attrKey,null,function(flag){???
????? ????if(flag=="false"){
???????? ? ???document.all("keyMsg").style.color="green";
??? ?? ????document.all("keyMsg").innerHTML="可以使用";
??????? ???}else{
????????? ????document.all("keyMsg").style.color="red";
??? ?? ????document.all("keyMsg").innerHTML="名字重复!";
???????? ???}
????? ???});

在Action类中:

?public String validateName(){
??? ?logger.debug("进入ReportTemplateAction的validateName方法!");
??? ?String reportName = null;
???? try{
??????? reportName = URLDecoder.decode(request.getParameter("reportName"),"utf-8");
??????? if(reportName != null && !"".equals(reportName)){
??????????? TReportTemplate tmp = this.reportTemplateMngImpl.validateName(reportName);
??????????? if(tmp == null){
??????????????? response.getWriter().print("false");
??????????? }else{
??????????????? response.getWriter().print("true");
??????????? }
??????? }
??}catch(Exception e){
??????? e.printStackTrace();
??????? logger.error("执行ReportTemplateAction的validateName方法出现异常!"+e.getMessage());
??}
??return null;
?}

热点排行