注册本站  论坛  繁體中文

慧民电脑芯片级维修-电脑技巧
手机 | MP3 | MP4 | 显卡 | 主板 | 显示器 | 光存储 | 笔记本 | 网络设备 | 移动存储 | 数码相机
键鼠 | CPU | 音箱 | GPS | 电视 | 服务器 | 投影机 | 机箱电源 | 品牌电脑 | 办公打印 |
| 网站首页 | Cisco | Windows | Linux | Java | Dotnet | Oracle | 网页设计 | 平面设计 | 安全 | 软件应用 | 电脑维修 | 办公维修 |
您现在的位置: 电脑技巧 >> Java >> J2EE >> Jsp >> Java正文

Jsp页面中文参数传递get和post方法分析

文章来源:中国IT实验室整理 作者:佚名 更新时间:2008-9-21 17:06:17 【 】 【加入收藏
在项目中,我们经常遇到需要在jsp页面切换中传递中文字符。这主要有两种方式。
  1. URL方式,例如:http://website/test1.jsp?act=add&type=苹果&param=%20D%20B
  2. 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"));

PS:

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

  • 上一篇Java:

  • 下一篇Java:
  • 最 新 热 门
     面向Java开发人员的Scala指南: 包和访问修饰…
     J2SE 路径问题综合分析
     深入Java调试体系: 第1部分,JPDA体系概览
     Apusic上用JavaMail发邮件
     Java开源协议小全
     java 实现压缩与解压缩ZIP
     利用Ruby简化你的Java测试
     开源Erlang真的能成为下一代Java语言吗
     Java SE 6 新特性: XML API与Web服务
     Java SE 6 新特性: 对脚本语言的支持
    最 新 推 荐
     JSTL中fn表达式的使用说明
     JSP Web框架研究:Struts
     JSF在GlassFish管理控制台中的应用
     介绍JSP程序动态网站环境搭建的详细步骤
     Jsp页面中文参数传递get和post方法分析
     Java\.net\PHP比较 程序员眼中的.Net世界
     JavaScript最常用的55个经典技巧
     Windows操作系统下JSP程序开发环境配置
     JSF点滴积累--权限验证
     小小分页帮助程序
    相 关 文 章

    spring 核心包介绍
    Spring MVC中的新特性
    Spring AOP 用annotation 来实现
    Spring操作Hibernate更方便
    Spring Security 2资源-角色查找源码研究及…
    Spring3.0新特征-Restful support MVC
    Spring Autowire(自动装载)的一次实践
    Spring Security学习总结二
    Spring Security学习总结一
    Struts2_Spring 整合

    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告

     

    Copyright 2006-2008 pcjx.com All Rights Reserved
    电脑技巧 版权所有 粤ICP备06059145号 地图
    门市地址:广东省佛山市南海区黄岐黄海路133号
    本网站所有内容未经许可不得转载或做其他使用