`
tianhandigeng
  • 浏览: 374492 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Jsp传递中文参数详解

    博客分类:
  • java
阅读更多

目前在jsp页面中传递中文参数,主要有两种方式:

     URL方式,例如:http://website/test1.jsp?act=add&type =桔子&param=%20D%20B
     FORM方式,例如:
        <form name=test   mehtod="post">
        <input type=hidden name=text2 value="中文">
        <input type=text name=text1>
        <input type=submit value=submit>
       </form>
     下面针对这两种情况,分别提供中文正确传递的解决方法

     方式1:URL方式
例如:http://website/test1.jsp?act=add&type =桔子&param=%20D%20B
一般来说我们很少直接在URL里面把参数写成中文,如例子中的"type=桔子"这样传递。如果出现这种情况,在我们的接收参数的页面我们只需要做个简单的转换就可以了。

  代码test1.jsp:(主要部分)
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%
 String type = request.getParameter("type");
 String result = new String(type.getBytes("iso-8859-1"), "gb2312");      
 out.println(result);   
%>

  还有更普遍的做法是对url中的中文字符进行编码,变成类似type=%20D%20B这样的字符。

代码MyJsp1.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ page import="java.net.*" %>
<a href=’./MyJsp2.jsp?act=<%=URLEncoder.encode("北京人 非常好 =-")%>’>test</a>

代码MyJsp2.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ page import="java.net.*" %>
String tempVal = URLDecoder.decode(request.getParameter("act"));
out.println(new String(tempVal.getBytes("ISO-8859-1"), "gb2312"));

方式2:FORM方式
     注意,我们只是讨论在<form enctype="application/x-www-form-urlencoded" >这种形式的中文情况,因为在enctype="multipart/form-data"的时候通过解析出来中文也可以运用这种方法进行字符转 化,所以不再重复讨论。

<form method=post>这种情况最简单。
代码MyJsp1.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<form action="./MyJsp2.jsp" method="post" enctype="application/x-www-form-urlencoded" >
<input type=hidden name=act value=动作 />
<input type=submit value=ok>
</form>

代码MyJsp2.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
request.setCharacterEncoding("gb2312");
out.println(request.getParameter("act"));
或者
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
String tempVal = request.getParameter("act");
out.println(new String(tempVal.getBytes("ISO-8859-1"), "gb2312"));
<form method=get>情况。 代码MyJsp1.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<form action="./MyJsp2.jsp" method="get" enctype="application/x-www-form-urlencoded" >
<input type=hidden name=act value=动作 />
<input type=submit value=ok>
</form>

代码MyJsp2.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
String tempVal = request.getParameter("act");
out.println(new String(tempVal.getBytes("ISO-8859-1"), "gb2312"));

另:
      本文不讨论针对URL进行加密的操作,只是针对URL中文的基本编码处理。另外,在Javascript中可以运用 escape(),encodeURI(),encodeURICompoent()进行相关的URL编码,可以作为Javascript中文编码的参考 解决方案。

 

 

分享到:
评论

相关推荐

    JSP中js传递和解析URL参数以及中文转码和解码问题

    1.传递参数: 代码如下: var pmt = ‘sensor=’+ encodeURI(encodeURI(sensor))+’&device=’+encodeURI(encodeURI(device))+’&instrument=’; pmt += encodeURI(encodeURI(instrument))+’&n=’+n+’&addDate=’+...

    转:Birt接收JSP传递的参数值

    当需要在BIRT报表中展示数据时,有时需要从JSP页面传递参数给BIRT,以便根据用户的选择或操作动态生成报告。本篇文章将深入探讨如何实现Birt接收JSP传递的参数值。 首先,理解参数传递的基础原理是关键。在JSP中,...

    知识共享-jsp页面中文参数传递get和post方法分析(雷惊风).

    ### 知识点详解:JSP页面中文参数传递GET与POST方法分析 #### 一、引言 在Java Web开发中,特别是在处理JSP页面时,中文参数的正确传递是常见的需求之一。不当的处理可能导致乱码问题,严重影响用户体验和数据的...

    JSP 传递中文参数的例子

    ### JSP传递中文参数的知识点 #### 一、前言 在Web开发中,处理中文等非ASCII字符是一项常见的需求。对于Java Server Pages (JSP) 技术来说,正确处理中文参数尤其重要,因为不正确的编码转换可能会导致乱码问题。...

    JSP中js传递和解析URL参数以及中文转码和解码问题.docx

    ### JSP中JS传递与解析URL参数及中文转码解码问题详解 #### 一、引言 在Web开发中,尤其是使用Java Server Pages (JSP)进行开发时,经常需要处理URL中的参数,包括参数的传递、解析以及对中文等特殊字符的处理。...

    jsp参数传递

    `&lt;jsp:param&gt;` 标签可以用来在使用 `&lt;jsp:include&gt;` 或 `&lt;jsp:forward&gt;` 动作指令时传递参数。这为开发者提供了一种更加灵活的方式来管理页面之间的数据交互。 **1. 使用 `&lt;jsp:include&gt;` 包含页面时传递参数** ``...

    JSP页面中文参数的传递(get和post方法分析)

    如果提交时未编码,服务器端在接收数据时,需要使用`request.setCharacterEncoding("编码")`方法设置请求体的字符编码,来确保正确解析中文字符。 2. **服务器端处理**:在服务器端接收到中文参数后,可能需要进行...

    JSP页面中超链接传递中文参数出现乱码问题解决方法

    在解决方法中,首先应该明确超链接在传递参数时,是在URL的查询字符串中进行的。超链接格式如下: ``` 目标页面.jsp?参数名=参数值"&gt;链接文本 ``` 如上述示例中的页面一,超链接被设计为传递两个参数:name和...

    纯jsp上传下载 支持其他参数传递

    本示例项目"纯jsp上传下载 支持其他参数传递"提供了一种基于Java和JSP实现文件上传和下载的方法,同时也允许传递其他参数。下面我们将详细探讨这个项目的组成部分和相关知识点。 1. JSP(JavaServer Pages)与...

    jsp页面中获取servlet请求中的参数的办法详解

    本文将深入探讨如何在JSP页面中获取Servlet请求中的参数,并将其传递到另一个JSP页面。 首先,我们需要配置`web.xml`文件,这是部署描述符,它定义了Servlet的映射和配置。以下是一个示例配置: ```xml ...

    上传文件fileupload+解决enctype= multipart/form-data无法传递其他参数

    `multipart/form-data`是用于处理包含二进制数据(如文件)的表单提交的编码类型,但它默认情况下不支持传递额外的文本参数。 在描述中提到了使用Apache Commons IO和Commons Fileupload这两个Java库来解决这个问题...

    jsp应用开发详解(中文高清pdf版)

    例如,`&lt;jsp:include&gt;`用于在页面间共享内容,`&lt;jsp:forward&gt;`用于转发请求,`&lt;jsp:param&gt;`用于传递参数。 3. **EL(Expression Language)**:EL是JSP 2.0引入的表达式语言,简化了从页面中获取和设置Java对象的值...

    JSP跨iframe如何传递参数实现代码

    在JSP开发中,有时候需要在两个分离的页面之间传递参数。特别是当一个页面中包含一个iframe,而另一个页面被嵌入到这个iframe中时,跨iframe传递参数的需求就会出现。本文主要介绍如何在JSP页面间通过iframe跨页面...

    flex获得html容器传递的url参数值

    在Flex编程中,有时我们需要从外部HTML容器向SWF文件传递参数,这在构建富互联网应用程序(RIA)时尤其常见。这些参数通常是以URL查询字符串的形式出现,例如`test.html?name=jex&address=chengdu`。在本文中,我们...

    JSP分页组件,JSP存储过程,URL参数传递

    在这个特定的项目中,我们关注的是三个关键知识点:JSP分页组件、JSP中的存储过程调用以及URL参数传递。 首先,让我们详细了解一下**JSP分页组件**。在处理大量数据时,分页是常见的优化手段,可以提高用户体验并...

    Jsp页面在URL中传递参数会出现乱码问题解决

    在Web开发中,尤其是使用Java JSP技术时,我们可能会遇到URL中传递参数出现乱码的问题。这是因为不同的字符集编码方式可能导致字符在传输过程中无法正确解析。本文将详细介绍两种解决JSP页面URL参数乱码的方法,虽然...

    java五种jsp页面跳转方法详解

    java五种jsp页面跳转方法详解 2009-08-21 09:06 1. RequestDispatcher.forward()  是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到 另外一个Servlet,JSP 或普通HTML...

    怎么解决JSP页面中文问题20100901

    - **GET方法**:在URL中以查询字符串的形式传递参数,适用于参数较少、安全性要求不高的场景。但GET请求对参数大小有限制,且只能使用ASCII字符集,容易导致中文乱码。 - **POST方法**:将参数置于请求主体中传递...

    javascript通过url向jsp页面传递中文参数导致乱码解决方案

    在Web开发中,使用URL传递参数是一种常见的方式,但在处理中文字符时经常会出现乱码问题。由于HTTP协议本身是基于ASCII字符集,而中文字符不是ASCII字符,所以在URL中的中文字符如果不经过特殊处理就会造成乱码。...

    JSP-GET-POST传递的乱码问题

    然而,在处理中文参数时,尤其是通过GET和POST方法传递时,经常会出现乱码问题。这通常是由于字符编码不一致或者处理不当导致的。以下是对这一问题的详细解析: 首先,我们需要理解字符编码的基本概念。在Web中,...

Global site tag (gtag.js) - Google Analytics