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 ...
随机推荐
- Linux企业级项目实践之网络爬虫(5)——处理配置文件
配置文件在Linux下使用得非常普遍,但是Linux下没有统一个配置文件标准. 我们把配置文件的规则制定如下: 1.把"#"视作注释开始 2.所有的配置项都都是以键值对的形式出现 ...
- Eclipse无法打开“Failed to load the JNI shared library”
解决方案一 这是因为JDK配置错误所导致的现象. 一般说来,新购笔记本会预装64位的windows系统,而在网上下载软件时,32位会优先出现在页面中(现在来说是这个情况,但我认为未来64位会越来越普及 ...
- bzoj 1192
http://www.lydsy.com/JudgeOnline/problem.php?id=1192 好像学过一个东西: [0..2^(N+1)-1]内的数都的都可以由2^0,2^1,...,2^ ...
- Asp.Net 构架(Http Handler 介绍) - Part.2
原文地址:http://www.cnblogs.com/JimmyZhang/archive/2007/09/15/894124.html 引言 在 Part.1 Http请求处理流程 一文中,我们了 ...
- [每日一题] 11gOCP 1z0-052 :2013-09-27 bitmap index.................................................C37
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/12106027 正确答案C 这道题目是需要我们掌握位图索引知识点. 一.首先我们来看位图索引 ...
- hdu 5402 Travelling Salesman Problem(大模拟)
Problem Description Teacher Mai ,) to the bottom right corner (n,m). He can choose one direction and ...
- iphone UIScrollView缩放
allImageScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 768, 1024)]; allImageScrol ...
- Wince修改系统时间问题
当我们需要修改到系统时间的时候,需要用到下面四个函数:SetLoaclTime,GetLocalTime,SetSystemTime,GetSystemTime.这四个函数是用来修改或者 ...
- Bloom Filter 算法具体解释
Bloom Filter 算法 Bloom filter是由Burton Bloom 在1970年提出的,其后在P2P上得到了广泛的应用.Bloom filter 算法可用来查询某一数据是否在某一数据 ...
- openssl 非对称加密算法RSA命令详解
1.非对称加密算法概述 非对称加密算法也称公开密钥算法,其解决了对称加密算法密钥分配的问题,非对称加密算法基本特点如下: 1.加密密钥和解密密钥不同 2.密钥对中的一个密钥可以公开 3.根据公开密钥很 ...