URL中文参数乱码处理办法

作者在 2007-07-11 18:45:00 发布以下内容

URL中文参数乱码处理办法

在用Url 传参数时,如果参数包含中文会出现乱码现象,下面是处理方法:

首先做个index.jsp,代码如下:

<%@page contentType="text/html;charset=gb2312" %>
<%

//以下这行是测试客户端转发时,乱码情况
 //response.sendRedirect("testurl2.jsp?param="  +  java.net.URLEncoder.encode("中文参数"));   
 %>

<!--做个简单的超级连接,包含中文参数-->
 <a href="testurl2.jsp?param=<%=java.net.URLEncoder.encode("中文参数")%>">中文参数</a>

完成后,做一个取出参数的页面testurl2.jsp.代码如下:

<%@page contentType="text/html;charset=gb2312" %>
<%

//取出参数时要进行转换

 String  s=new  String(request.getParameter("param").getBytes("ISO8859_1"),"gb2312"); 
 out.println("中文参数:"+s);

 
 %>

保存后,启动Tomcat测试,输出结果为:

中文参数:中文参数

以上是J2EE中处理URL中文参数乱码.

如在ASP.Net中出现则容易的多,处理方法如下:

在传参数端 string=Server.UrlEncode("中文")
在接受参数端 Server.UrlDecode(Request.Params("string"))

技术文章 | 阅读 4865 次
文章评论,共2条
zl芊芊zl(作者)
2007-10-03 21:53
1

(1)直接在URL请求后添加
   如:<a href="thexuan.jsp?action=transparams&detail=directe")直接传递参数/a> 
   特别的在使用response.sendRedirect做页面转向的时候,也可以用如下代码:
   response.sendRedirect("thexuan.jsp?action=transparams&detail=directe") ,可用request.getParameter(name)取得参数
   
   (2)jsp:param
   它可以实现主页面向包含页面传递参数,如下:
   <jsp:include page="Relative URL">
   <jsp:param name="param name" value="paramvalue" />
   </jsp:include>
   还可以实现在使用jsp:forward动作做页面跳转时传递参数,如下:
   <jsp:forward page="Relative URL">
   <jsp:param name="paramname" value="paramvalue" />
   </jsp:forward> 通过这种方式和一般的表单参数一样的,也可以通过request.getParameter(name)取得参数
  (3)设置session和request
   通过显示的把参数放置到session和request中,以达到传递参数的目的
   session.setAttribute(name,value);
   request.setAttribute(name,value)
  取参数:value=(value className)session.getAttribute(name);
   value=(value className)request.getAttribute(name);
  大家肯定已经注意到了,在取参数的时候,做了类型转换,这是因为放置在session和request中的对象的属性被看作 java.lang.Object类型的了,如果不转换,在将直付给value时会报classcastexception异常。
zl芊芊zl(作者)
2007-10-03 21:55
2
1.       怎么在多个JSP页面之间进行参数传递?需要使用JSP的内置作用域对象session。利用它的两个方法setAttribute(),getAttribute()

2.       下面的这个实例实现了把第一个JSP页面的参数传递给第三个页面的功能

3.       代码如下:1.jsp

<html>

       <form method=get action=2.jsp>

       what's your name<input type=text name=username>

       <input type=submit value=submit>

       </form>

</html>

 

4.       2.jsp

<html>

       

       <form method=post action="3.jsp?pass=11">

       <%

              String name=request.getParameter("username");

              session.setAttribute("username",name);

       %>

       Your name is:<%=request.getParameter("username")%>

       <br>what's your hobby<input type=text name=hobby>

       <input type=submit value=submit>

       </form>

</html>

 

5.       3.jsp

<html>

       your name is:<%=session.getAttribute("username")%>

       <br>

       your hobby is:<%=request.getParameter("hobby")%>

       <br>

       your password is:<%=request.getParameter("pass")%>

       <br>

       </form>

</html>

游客请输入验证码