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

在项目中,我们经常遇到需要在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﹥

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

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

例如:

http://website/test1.jsp?act=add&type=苹果&param=%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方法的分析对你的编程设计有帮助。

时间: 2024-09-15 14:01:22

JSP页面中文参数的传递(get和post方法分析)_JSP编程的相关文章

Flex和Jsp之间中文参数的传递

js|中文 关于flex的中文问题,可算是老生常谈了,但是大家还有不少人总是在这方面犯错误,包括kenshin在内,也走了一些弯路,所以现在就把关于flex的中文参数问题在好好谢谢,如果有写的不对的地方,还请大家原谅 其实中文问题的解决,无外乎就是编码的一致性问题,举个例子,比如两个人进行交流,那他们的语言必须是一致的,这样双方才能听懂对方所说的话,这在现实的生活中是一个常识,在编程的时候,道理是一样的,要想使flex和jsp都"说同样的话",首先要把他们的编码,也就是"语言

JSP页面的动态包含和静态包含示例及介绍_JSP编程

一.静态包含 本文介绍JSP静态包含语句,即使用JSP的include指令来完成的包含操作. JSP中,有两种包含其它文件的方式,一种是静态包含,一种是动态包含.本文介绍其中的静态包含. 所谓静态包含,跟ASP中的包含是一样的效果,即将所有包含的文件,先静态的包含进来,组成一个大的JSP文件,然后再经过编译器统一编译,生成HTML代码. JSP静态包含的语句为: 复制代码 代码如下: <%@ include file="file.jsp" %> 这里的file.jsp就是要

jsp页面常用的查询及显示方法分析_JSP编程

本文实例讲述了jsp页面常用的查询及显示方法.分享给大家供大家参考,具体如下: 背景: 1. 需要将数据库查询结果在JSP中以列表方式显示 2. 在一个良好的J2EE模式中数据库查询一般用DAO实现(Data Access Object), JSP仅用于显示数据 方法一: 建一个类,将查询出的结果封装到该类中,然后将该类对象添加到List中.(这个也是我最开始时用的方法,不通用且太麻烦了). 方法二: 在介绍方法二的时候,我们先来看看如何把ResultSet转化为List吧,代码如下: priv

jsp页面中如何将时间戳字符串格式化为时间标签_JSP编程

datetag.tld文件: <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"> <tagli

基于JSP的RSS阅读器的设计与实现方法(推荐)_JSP编程

阅读器访问地址:http://easyrss.tk/,欢迎体验! 阅读导览 一. 概述 二. 设计的基本概念和原理 三. 设计方案 四. 主要源代码 五. 阅读器使用说明 概述 获得信息是在人类的生活中是必不可少的环节.如果现在的社会对获得信息不快捷,那么这个社会将不会像如今这般的发达和进步.在当今网络技术相当发达的今天,大量的信息充斥在网上.现在网络越来越发达,用户在网上既能工作也能娱乐.当用户在网上需浏览很多个网站才能获取自己多需的信息时,那就感觉很累.因为现在每个网站都有很多信息,找到自己

jsp、css中引入外部资源相对路径问题分析_JSP编程

在jsp页面中添加base,可用相对路径: 复制代码 代码如下: <%     String path = request.getContextPath();     String basePath = request.getScheme() + "://"             + request.getServerName() + ":" + request.getServerPort()             + path + "/&quo

多种方法实现当jsp页面完全加载完成后执行一个js函数_JSP编程

方法1:如下程序,当页面完全加载后执行openTheIndexPage()方法 复制代码 代码如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>Telecommunications Data Collection System</title> <script t

jsp获取url路径的方法分析_JSP编程

本文实例讲述了jsp获取url路径的方法.分享给大家供大家参考,具体如下: 如果你请求的URL是  http://localhost:8080/demo/Index.jsp request.getScheme() //输出:http request.getServerName() //输出: localhost request.getServerPort() //输出: 8080 request.getContextPath() //输出: /demo request.getRequestPat

Jsp页面在URL中传递参数会出现乱码

  Jsp页面在URL中传递参数会出现乱码 解决方法如下: 一.使用更改Tomcat的方法.这个方法简单,但是需要改动的地方是服务器软件级别的,如果稍微变动系统将无法正确转码,移植性不高. 1.来到tomcat目录,找到conf目录下的server.xml问价,打开,找到<Connector>标签,在最后添加URIEncoding='GBK',效果如下: <Connector port="8080" maxThreads="150" minSpar