`
风花雪月饼
  • 浏览: 76007 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

用javaScript向Servlet/JSP(GBK)进行传值的问题解决

    博客分类:
  • Java
阅读更多
随着AJAX的流行。Java世界也开始改变。

出现了大量的AJAX框架。

但是总有一部分人。总有那么一些人。就是TM的喜欢自己实现。

比如,我。

当然。我也用了框架,但是呢,有的时候用自己做的会好一点。

SOSO。但是却有中文乱码问题。因为我服务器端用的是GBK编码。

直接使用JS传参数,服务器取就是null。

于是在JS定义如下:

/**
  * 防止乱码的转码
  * */
EncodeUtil.encoding = function(str){
str = encodeURI(str);
str = encodeURI(str);
return str;
}

这个是用来对传递的参数值进行转码

如:"myHello.jsp?userName="+userName;

这段代码是在JS中出现的。我需要传递userName到服务器去。

那么在这句之前,我需要做这么一步:

userName = EncodeUtil.encoding(userName);

好了。你可以尝试alert输出一下。

可以看见的是一串你看不懂的东西。

那就对了。



那么在对应的服务器端对应的进行转码。

你可以用java.net.URLDecoder.decode(str,encode);

DEMO:userName = URLDecoder.decode(getUserName,"UTF-8");

getUserName是用request取到的。

因为JS中默认是用的UTF-8编码。所以我们要将这个转换为当前系统的默认编码。

以上是JDK1.4或更高版本可用。

如果是JDK1.3。那么需要自己写一个转换。

如下:
 /**
  * 将指定字符s转码为enc指定的编码数据
  * @param String 要进行转码的字符
  * @param String 指定的编码
  * @return String 经过转码的字符
  * */
 public static String decode(String s, String enc) throws UnsupportedEncodingException {
  boolean needToChange = false;
  StringBuffer sb = new StringBuffer();
  int numChars = s.length();
  int i = 0;
  if (enc.length() == 0) {
   throw new UnsupportedEncodingException("URLDecoder: empty string enc parameter");
  }//end if
  while (i < numChars) {
   char c = s.charAt(i);
   switch (c) {
    case '+':
     sb.append(' ');
     i++;
     needToChange = true;
     break;
    case '%':
     try {
      byte[] bytes = new byte[ (numChars - i) / 3];
      int pos = 0;

      while (( (i + 2) < numChars) && (c == '%')) {
       bytes[pos++] = (byte) Integer.parseInt(s.substring(i + 1, i + 3),16);
       i += 3;
       if (i < numChars) {
        c = s.charAt(i);
       }
      }//end while
      if ( (i < numChars) && (c == '%')) {
       throw new IllegalArgumentException("URLDecoder: Incomplete trailing escape (%) pattern");
      }//end if

      sb.append(new String(bytes, 0, pos, enc));
     }catch (NumberFormatException e) {
      throw new IllegalArgumentException("URLDecoder: Illegal hex characters in escape (%) pattern - " + e.getMessage());
     }//end catch
     needToChange = true;
     break;
    default:
     sb.append(c);
     i++;
     break;
   }//end switch
  }//end while
  return (needToChange ? sb.toString() : s);
 }//end method[decode]




以上所有方式均为本人从网络中收集整理而成。非原创。
分享到:
评论

相关推荐

    JSP乱码 N种解决方案

    - 如果JSP中引用了静态资源(如CSS、JavaScript),这些文件也需要使用正确的编码保存。 13. **图片和二进制文件** - 如果涉及到图片或二进制文件上传,乱码问题通常不涉及字符编码,但要确保文件名的编码与...

    JspRun!_6.0.0_GBK_War.zip安装压缩包

    3. **Servlet支持**:作为JSP的基础,Servlet在后台处理用户的请求,实现了动态网站的核心功能,如数据处理和业务逻辑。 4. **GBK编码**:GBK是中国大陆常用的汉字编码标准,包含了大量汉字,能有效支持中文字符...

    jspRun开源论坛JspRun!_6.0.0_GBK.zip

    _6.0.0_GBK这个版本中,“GBK”表示该版本支持GBK编码,这是一种广泛使用的中文字符集,能够处理大部分中文字符,确保论坛在中文环境下正常运行。这表明该论坛系统对于中文社区的支持是全面且深入的。 JspRun!开源...

    java+jsp+servlet 文件下载

    Java作为一种广泛使用的编程语言,在结合JSP(JavaServer Pages)和Servlet技术后,能够有效地处理这类需求。本文将详细介绍如何利用Java、JSP和Servlet来实现文件的下载功能。 #### 前台界面设计 在Web前端,通常...

    解决jsp页面中文乱码问题

    本文将深入探讨如何解决这个问题,确保在JSP页面中正确显示中文字符。 首先,我们需要理解字符编码的基本概念。在计算机系统中,字符编码是用来表示文本的规则,如常见的ASCII、GBK和UTF-8等。在Web环境中,HTTP...

    JSP中 ajax的get请求的中文乱码问题的解决方法.pdf

    综上所述,解决JSP中Ajax GET请求的中文乱码问题需要从服务器配置、Servlet处理、JSP页面编码和Ajax请求等多个角度综合考虑,并进行相应的调整。通过这些步骤,可以有效地避免并解决中文乱码问题,保证数据传输的...

    j2ee中文乱码问题终极解决之道

    3. JSP与Java代码的传值:在Servlet或Bean中处理JSP提交的数据时,如果未正确处理编码,可能出现乱码。 4. 数据库读取数据:数据库的编码与Java应用的编码不匹配,读取数据时会出现乱码。 针对这些场景,有以下几种...

    jsp 基础思想 入门

    它是由Sun Microsystems公司推出的,旨在解决Servlet在开发动态网页时遇到的问题,如代码和静态内容混合、程序员与美工协同困难等。 ### JSP的核心概念 1. **JSP页面构成**: JSP页面主要由三部分组成:静态内容...

    jsp关于解决中文乱码的问题

    ### jsp关于解决中文乱码的问题 在JSP(JavaServer Pages)开发过程中,中文乱码是一个常见的问题,尤其在处理来自用户输入的数据时更为突出。本文将详细探讨如何在JSP环境中解决中文乱码问题,并提供具体的实现...

    jsp+servlet+JS结合应用案例

    charset gbk&quot;&gt;&lt;title&gt;&lt; title&gt;&lt;script type &quot;text javascript&quot;&gt; function submit { var pageSize document getElementById &quot;pageSize&quot; value; var href document ...

    基于jsp+servlet+mysql人事工资人力资源管理系统

    用了技术框架: HTML+CSS+JavaScript+java+jsp+servlet+dao+mysql 管理员账号/密码[allusers表]:admin/admin 用户账号/密码[yuangongxinxi表]: user/123456 如果运行后添加信息乱码,请设置项目GBK编码,配置...

    [论坛社区]JspRun!社区论坛系统 v6.0 GBK 源码版 _source_gbk.rar

    v6.0中使用GBK编码,意味着它能够良好地支持中文显示和处理,避免了字符乱码的问题,提升了用户体验。 JspRun!的源码结构通常包括前端展示层、业务逻辑层和数据访问层。前端主要由HTML、CSS和JavaScript组成,负责...

    基于jsp+servlet+mysql人事工资人力资源管理系统设计

    用了技术框架: HTML+CSS+JavaScript+java+jsp+servlet+dao+mysql 管理员账号/密码[allusers表]:admin/admin 用户账号/密码[yuangongxinxi表]: user/123456 如果运行后添加信息乱码,请设置项目GBK编码,配置...

    JSP中文编码理论及乱码产生原因及问题解决

    2. 文件编码设置错误:JSP源文件本身的编码如果不正确,编译后生成的Servlet源代码可能会出现乱码。 3. HTTP头信息设置不当:HTTP响应头中的`Content-Type`字段未指定或指定的编码与实际不符,可能导致浏览器解析时...

    基于jsp+servlet+mysql人事工资人力资源管理系统+源代码+文档说明+数据库.zip

    可以对应的系统:人事管理系统,工资管理系统,考勤管理系统,部门管理系统,员工管理系统 用了技术框架: HTML+CSS+JavaScript+java+jsp+servlet+dao+mysql 管理员账号密码[allusers表]:adminadmin 用户账号密码...

    jspsmartupload.rar

    【标题】"jspsmartupload.rar" 是一个包含解决JavaScript页面(JSP)上传文件时中文乱码问题的工具包。这个压缩文件的核心是 "jspsmartupload.jar",它是一个Java类库,专为处理在JSP环境中进行文件上传时可能出现的...

    jspurl中中文参数的乱码解决.docx

    本文主要讨论的是JSP中URL中中文参数导致的乱码问题及其解决方案。 首先,让我们深入理解HTTP请求的基本原理。HTTP请求有两种主要的数据提交方式:GET和POST。在GET请求中,表单数据会被附加到URL后面作为查询参数...

    基于jsp+servlet+mysql人的事工资人力资源管理系统+sql数据库(毕设源码).zip

    用了技术框架: HTML+CSS+JavaScript+java+jsp+servlet+dao+mysql 管理员账号/密码[allusers表]:admin/admin 用户账号/密码[yuangongxinxi表]: user/123456 如果运行后添加信息乱码,请设置项目GBK编码,配置...

    jsp对象.ppt

    - JSP脚本注释:在Java代码块中使用`//`进行单行注释,`/* ... */`进行多行注释。 5. **静态内容**: - 包括HTML、CSS、JavaScript等静态资源,它们直接输出到生成的HTML页面中。例如,`&lt;html&gt;&lt;head&gt;&lt;title&gt;JSP ...

    jsp.复习d.docx

    `&lt;jsp:setProperty&gt;`动作用于向JavaBean的属性赋值,而`&lt;jsp:useBean&gt;`动作则用于在JSP中动态使用JavaBeans组件。`&lt;jsp:getProperty&gt;`动作用于从JavaBean中获取属性值,并将其转化为字符串类型。 在Java中,对象...

Global site tag (gtag.js) - Google Analytics