原文 http://developer.51cto.com/art/200907/133499.htm

在项目中,我们经常遇到需要在JSP页面切换中传递中文字符。这主要有两种方式。

◆URL方式

例如:

  1. http://website/test1.jsp?act=add&type=苹果&param=%20D%20B

◆FORM方式

例如:

  1. ﹤form name=test   mehtod="post"﹥
  2. ﹤input type=hidden name=text2 value="中文"﹥
  3. ﹤input type=text name=text1﹥
  4. ﹤input type=submit value=submit﹥
  5. ﹤/form﹥

我们将针对这两种情况,分别提供中文正确传递的解决方法。

JSP页面中文参数传递之情况1:URL方式

例如:

  1. http://website/test1.jsp?act=add&type=苹果&param=%20D%20B

一般来说我们很少直接在URL里面把参数写成中文,如例子中的"type=苹果"这样传递。如果出现这种情况,在我们的接收参数的页面我们只需要做个简单的转换就可以了。

JSP页面中文参数传递实现之代码test1.jsp:(主要部分)

  1. ﹤%@ page language="java" import="java.util.*" pageEncoding="gb2312"%﹥
  2. ﹤%
  3. String type = request.getParameter("type");
  4. String result = new String(type.getBytes("iso-8859-1"), "gb2312");
  5. out.println(result);
  6. %﹥

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

JSP页面中文参数传递实现之代码MyJsp1.jsp:

  1. ﹤%@ page language="java" import="java.util.*" pageEncoding="gb2312"%﹥
  2. ﹤%@ page import="java.net.*" %﹥
  3. ﹤a href='./MyJsp2.jsp?act=﹤%=URLEncoder.encode("中国人 非常好 =-")%﹥'﹥test﹤/a﹥

JSP页面中文参数传递实现之代码MyJsp2.jsp

  1. ﹤%@ page language="java" import="java.util.*" pageEncoding="gb2312"%﹥
  2. ﹤%@ page import="java.net.*" %﹥
  3. String tempVal = URLDecoder.decode(request.getParameter("act"));
  4. out.println(new String(tempVal.getBytes("ISO-8859-1"), "gb2312"));

JSP页面中文参数传递之情况2:FORM方式

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

◆﹤form method=post﹥这种情况最简单。

JSP页面中文参数传递实现之代码MyJsp1.jsp:

  1. ﹤%@ page language="java" import="java.util.*" pageEncoding="gb2312"%﹥
  2. ﹤form action="./MyJsp2.jsp" method="post" enctype="application/x-www-form-urlencoded" ﹥
  3. ﹤input type=hidden name=act value=动作 /﹥
  4. ﹤input type=submit value=ok﹥
  5. ﹤/form﹥

JSP页面中文参数传递实现之代码MyJsp2.jsp:

  1. ﹤%@ page language="java" import="java.util.*" pageEncoding="gb2312"%﹥
  2. request.setCharacterEncoding("gb2312");
  3. out.println(request.getParameter("act"));

或者

  1. ﹤%@ page language="java" import="java.util.*" pageEncoding="gb2312"%﹥
  2. String tempVal = request.getParameter("act");
  3. out.println(new String(tempVal.getBytes("ISO-8859-1"), "gb2312"));

◆﹤form method=get﹥情况。

JSP页面中文参数传递实现之代码MyJsp1.jsp:

  1. ﹤%@ page language="java" import="java.util.*" pageEncoding="gb2312"%﹥
  2. ﹤form action="./MyJsp2.jsp" method="get" enctype="application/x-www-form-urlencoded" ﹥
  3. ﹤input type=hidden name=act value=动作 /﹥
  4. ﹤input type=submit value=ok﹥
  5. ﹤/form﹥

JSP页面中文参数传递实现之代码MyJsp2.jsp:

  1. ﹤%@ page language="java" import="java.util.*" pageEncoding="gb2312"%﹥
  2. String tempVal = request.getParameter("act");
  3. out.println(new String(tempVal.getBytes("ISO-8859-1"), "gb2312"));

以上就是关于JSP页面中文参数传递get和post方法分析,但是本文不讨论针对URL进行加密的操作,只是针对URL中文的基本编码处理。另 外,在Javascript中可以运用escape(),encodeURI(),encodeURICompoent()进行相关的URL编码;可以作 为JavaScript中文编码的参考解决方案。希望通过这样简单的对JSP页面中文参数传递get和post方法的分析对你的编程设计有帮助。

JSP页面中文参数传递get和post方法分析的更多相关文章

  1. 如何彻底解决jsp页面中文乱码及数据库乱码

    最近自己闲做一个小项目,搭建环境框架SSH+MySQL数据库,遇到一个问题:jsp页面中文显示乱码,数据库插入数据和更新数据时中文也显示乱码,后来在网上找了许多解决方法,还是折腾了两天才把问题解决,下 ...

  2. jsp页面中文乱码解决方案

    一.JSP页面中文乱码 在JSP页面中,中文显示乱码有两种情况:一种是HTML中的中文乱码,另一种是在JSP中动态输出的中文乱码. 先看一个JSP程序: <%@ page language=&q ...

  3. JSP页面的五种跳转方法

    ①RequestDispatcher.forward() 是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个Se ...

  4. JSP页面中文乱码问题

    $.get()方法到服务器端中文乱码 在jsp页面使用encodeURI(“中文”),在服务器端进行解码 String name = req.getParameter("name" ...

  5. 解决JSP页面中文乱码插入到数据库的问题

    在JSP页面使用表单注册一个用户名的时候,查看到数据库里面的表中文显示乱码的情况有两种: 1.JSP页面传进来的参数中文就是乱码,则是前台的问题,这个时候写一个过滤器就好了,可以写如下的一个过滤器 p ...

  6. MyEclipse JSP页面中文字符不能保存

      问题: 就是写HTML+JSP代码时有些中文,保存时提示sava could not be completed. Reason: some characters cannot be mapped ...

  7. 分享url带中文参数,打开html操作完毕跳转jsp页面中文乱码解决

    1.在app端分享参数组合时不对传递的url进行任何编码. 2.打开html页面时使用 escape函数对有中文的参数进行编码 escape(GetQueryString("paramete ...

  8. 1、spring mvc jsp页面中文乱码

    jsp 页面头部 的page标签中加个 contentType="text/html;charset=utf-8"

  9. eclipse中jsp页面Invalid location of tag 解决办法分析小结

    在jsp页面使用标签过程中有时候不注意规则的话,eclipse会提示一些错误,下面针对这些错误提出相应的解决办法: <form></form>标签 1. Invalid loc ...

随机推荐

  1. 黑马程序员_Java面向对象2_继承

    4.面向对象_继承 4.1继承的概述 提高了代码的复用性. 让类与类之间产生了关系,有了这个关系,才有多态的特性. 注意:千万不要为了获取其他类的功能而去继承,简化代码而继承.必须是类与类之间有所属关 ...

  2. 优质办公体验,掌上OA一机hold住全场

    20多年前,人们希望可以脱离文件满天飞的办公办公环境,OA办公自动化出现了:随后.人们希望能在不同部门.不同分支机构间互通有无,打破信息孤岛.应用孤岛.数据孤岛,协同OA出现了:今天,人们梦想随时随地 ...

  3. 第19讲- UI组件之_Button、checkbox、radio

    第19讲 UI组件之_Button.checkbox.radio 四.按钮Button Button继承自TextView,间接继承自View.当用户对按钮进行操作的时候,触发相应事件,如点击,触摸. ...

  4. 关于ionic传值

    今天,也是偶然发现有的初学者对ionic的传值还不太清除,这里我说明一下 例如你想在这个页面传递参数a.b过去,传递到"tab.wait"页面 $state.go("ta ...

  5. 数学之路(3)-机器学习(3)-机器学习算法-PCA

    PCA 主成分分析(Principal components analysis,PCA),维基百科给出一个较容易理解的定义:“PCA是一个正交化线性变换,把数据变换到一个新的坐标系统中,使得这一数据的 ...

  6. Android自定义控件(二)——有弹性的ScrollView

    本文在http://gundumw100.iteye.com/blog/1075286的基础上稍作修改, 实现了当手指滑动到ScrollView的顶部.底部时, 可以继续的向上.向下拉伸.当释放手指的 ...

  7. 把自己的程序打成jar包,让别人调用

     我们写程序的时候往往需要把自己的程序打包成jar包,给第三方调用.Eclipse让我们非常方便的可以导出jar包.但是当程序里需要用到res里的资源时,往往就会出现问题.因为统自动生成的R类如果被打 ...

  8. IOS 原生解析JSON 问题

    服务器----WebService 返回的是JSON数据 IOS解析报错: Error Domain=NSCocoaErrorDomain Code=3840 "Unable to conv ...

  9. ListVeiw新增记录及 滚动条移动到指定位置

    C# 自带的ListView控件的滚动条移动到指定位置. lvwList为ListView控件 lvwList.EnsureVisible(lvwList.Items.Count - 1); 新增记录 ...

  10. 页面全屏显示JS代码

    1.直接在页面加载时就全屏. <body onload="window.open(document.location,'big','fullscreen=yes'):window.cl ...