JSP页面中文参数传递get和post方法分析
原文 http://developer.51cto.com/art/200907/133499.htm
在项目中,我们经常遇到需要在JSP页面切换中传递中文字符。这主要有两种方式。
◆URL方式
例如:
- http://website/test1.jsp?act=add&type=苹果¶m=%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﹥
我们将针对这两种情况,分别提供中文正确传递的解决方法。
JSP页面中文参数传递之情况1:URL方式
例如:
- http://website/test1.jsp?act=add&type=苹果¶m=%20D%20B
一般来说我们很少直接在URL里面把参数写成中文,如例子中的"type=苹果"这样传递。如果出现这种情况,在我们的接收参数的页面我们只需要做个简单的转换就可以了。
JSP页面中文参数传递实现之代码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这样的字符。
JSP页面中文参数传递实现之代码MyJsp1.jsp:
- ﹤%@ page language="java" import="java.util.*" pageEncoding="gb2312"%﹥
- ﹤%@ page import="java.net.*" %﹥
- ﹤a href='./MyJsp2.jsp?act=﹤%=URLEncoder.encode("中国人 非常好 =-")%﹥'﹥test﹤/a﹥
JSP页面中文参数传递实现之代码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"));
JSP页面中文参数传递之情况2:FORM方式
请注意,我们只是讨论在﹤form enctype="application/x-www-form-urlencoded" ﹥这种形式的中文情况,因为在enctype="multipart/form-data"的时候通过解析出来中文也可以运用这种方法进行字符转化,所以 不再重复讨论。
◆﹤form method=post﹥这种情况最简单。
JSP页面中文参数传递实现之代码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﹥
JSP页面中文参数传递实现之代码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﹥情况。
JSP页面中文参数传递实现之代码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﹥
JSP页面中文参数传递实现之代码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"));
以上就是关于JSP页面中文参数传递get和post方法分析,但是本文不讨论针对URL进行加密的操作,只是针对URL中文的基本编码处理。另 外,在Javascript中可以运用escape(),encodeURI(),encodeURICompoent()进行相关的URL编码;可以作 为JavaScript中文编码的参考解决方案。希望通过这样简单的对JSP页面中文参数传递get和post方法的分析对你的编程设计有帮助。
JSP页面中文参数传递get和post方法分析的更多相关文章
- 如何彻底解决jsp页面中文乱码及数据库乱码
最近自己闲做一个小项目,搭建环境框架SSH+MySQL数据库,遇到一个问题:jsp页面中文显示乱码,数据库插入数据和更新数据时中文也显示乱码,后来在网上找了许多解决方法,还是折腾了两天才把问题解决,下 ...
- jsp页面中文乱码解决方案
一.JSP页面中文乱码 在JSP页面中,中文显示乱码有两种情况:一种是HTML中的中文乱码,另一种是在JSP中动态输出的中文乱码. 先看一个JSP程序: <%@ page language=&q ...
- JSP页面的五种跳转方法
①RequestDispatcher.forward() 是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个Se ...
- JSP页面中文乱码问题
$.get()方法到服务器端中文乱码 在jsp页面使用encodeURI(“中文”),在服务器端进行解码 String name = req.getParameter("name" ...
- 解决JSP页面中文乱码插入到数据库的问题
在JSP页面使用表单注册一个用户名的时候,查看到数据库里面的表中文显示乱码的情况有两种: 1.JSP页面传进来的参数中文就是乱码,则是前台的问题,这个时候写一个过滤器就好了,可以写如下的一个过滤器 p ...
- MyEclipse JSP页面中文字符不能保存
问题: 就是写HTML+JSP代码时有些中文,保存时提示sava could not be completed. Reason: some characters cannot be mapped ...
- 分享url带中文参数,打开html操作完毕跳转jsp页面中文乱码解决
1.在app端分享参数组合时不对传递的url进行任何编码. 2.打开html页面时使用 escape函数对有中文的参数进行编码 escape(GetQueryString("paramete ...
- 1、spring mvc jsp页面中文乱码
jsp 页面头部 的page标签中加个 contentType="text/html;charset=utf-8"
- eclipse中jsp页面Invalid location of tag 解决办法分析小结
在jsp页面使用标签过程中有时候不注意规则的话,eclipse会提示一些错误,下面针对这些错误提出相应的解决办法: <form></form>标签 1. Invalid loc ...
随机推荐
- VS2015 C#6.0 中的那些新特性(转载)
自动属性初始化 (Initializers for auto-properties) 以前我们是这么写的 为一个默认值加一个后台字段是不是很不爽,现在我们可以这样写 只读属性的初始化(Getter-o ...
- Linux cat和EOF的使用
在某些场合,可能我们需要在脚本中生成一个临时文件,然后把该文件作为最终文件放入目录中.(可参考ntop.spec文件)这样有几个好处,其中之一就是临时文件不是唯一的,可以通过变量赋值,也可根据不同的判 ...
- VC++如何在程序中用代码注册和卸载ocx控件(代码)
方法一:在dos或Windows命令行下运行:regsvr32 ocxname.ocx 注册 示例:regsvr32 netshare.ocx //注册netshare.ocx控件regsvr ...
- JAVA并发实现五(生产者和消费者模式Condition方式实现)
package com.subject01; import java.util.PriorityQueue; import java.util.concurrent.locks.Condition; ...
- hdu 5167 Fibonacci(预处理)
Problem Description Following is the recursive definition of Fibonacci sequence: Fi=⎧⎩⎨01Fi−1+Fi−2i ...
- EL表达式使用之类switch语句
http://blacksonny.iteye.com/admin/blogs/1879878
- jQuery限制文本框只能输入正整数
//限制键盘只能按数字键.小键盘数字键.退格键 $("#txtQty").keydown(function (e) { var code = parseInt(e.keyCode) ...
- Direct2D 简介
Direct2D是什么? Direct2D是一套高性能的硬件加速API(代码运行在GPU),用于渲染几何图形,图片和文本,并且可以与Direct3D,GDI,GDI+交互. 什么程序员应该使用Dire ...
- Servlet实现文件的下载
(1)项目的主文件夹例如以下:(演示出image和servlet的位置所在) watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGxnZW4xNTczODc= ...
- 为iPhone6设计自适应布局(一)
译者的话:本文是自适应布局的巩固篇,所以对布局约束的添加操作步骤等没有详细的说明.如果看着吃力的话请先移步Swift自适应布局(Adaptive Layout)教程. Apple从iOS6加入了Aut ...