标题:j2ee 下servlet与jsp之间参数传递时的乱码问题,一直解决不了,烦啊!大哥帮 ...
只看楼主
h781458175
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2011-2-7
结帖率:55.56%
已结贴  问题点数:50 回复次数:5 
j2ee 下servlet与jsp之间参数传递时的乱码问题,一直解决不了,烦啊!大哥帮忙!
写了一个很简单的例子,从index.jsp页面打开,点击链接到一个servlet类,在该类中分别进行转发与重定向;只是在url上带有中文的参数;在重定向与转发的目标jsp页面上怎么才能得到正确中文,注:servlet不能改,现在只能在转发与重定向的目标jsp页面中想办法,但是我怎么也不能行啊

下面是我的源码,我用myeclipse写的,用tomcat6,希望高手多多关注啊


testJSP.rar (7.44 KB)
搜索更多相关主题的帖子: 中文 大哥 定向 
2013-06-28 23:27
hhwz
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:87
帖 子:687
专家分:4502
注 册:2011-5-22
得分:25 
用javascript 的encodeURI编译下链接
2013-06-29 18:47
h781458175
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2011-2-7
得分:0 
回复 2楼 hhwz
javascript ? js只学了一些啊,还不是杂揉啊,这个java中怎么写js啊?能否简单示例一下啊,谢谢大哥了~
2013-06-30 21:30
_tencent
Rank: 2
来 自:陕西咸阳
等 级:论坛游民
帖 子:10
专家分:42
注 册:2013-6-30
得分:25 
在提交时后台获取时是乱码吗?
2013-06-30 22:54
hhwz
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:87
帖 子:687
专家分:4502
注 册:2011-5-22
得分:0 
程序代码:
----------------index.jsp------
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www. http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<script type="text/javascript">

function getCheck(text){
location.href="/test/Check?flag="+text;
}
</script>
<body>
<a href="javascript:getCheck('dispatcher转向')">通过   '/testJSP/Check?flag=dispatcher转向 ' 转至  Check.java</a>
<br/>
<a href="javascript:getCheck('redirect重定向')">通过   '/testJSP/Check?flag=dispatcher重定向'  重定向  Check.java</a>
<br/>
<a href="javascript:getCheck('redirect外网')">通过   '/testJSP/Check?flag=redirect外网'  连接  Check.java</a>
</body>
</html>
--------------check-----
public void  doGet(HttpServletRequest come,HttpServletResponse go)
    throws ServletException,IOException{
        String flag=come.getParameter("flag");
        come.setAttribute("names","野马abc");
        flag=URLDecoder.decode(flag, "utf-8");
        if("dispatcher转向".equals(flag)) {  //转发

                 RequestDispatcher rd=come.getRequestDispatcher("/0628/forward1.jsp?redirect="+URLEncoder.encode(flag,"utf-8"));//此处用带中文参数的url地址
                 System.out.println(flag);
                 rd.forward(come,go);
        }else if("redirect重定向".equals(flag)){

            go.sendRedirect("/test/0628/forward2.jsp?redirect="+flag);//此处用带中文参数的url地址

        }else if("redirect外网".equals(flag)){

            go.sendRedirect("http://www.baidu.com");
        }
        else {
            System.out.println("都不匹配");
        }
    }

----- forward1----
<%@page import=" page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%!
    public String transferCharacter(String s){//这个方法用来转变,对于表单get提交的中文这个方法是管用的,但在这里就不行
    try{
        return new String(s.getBytes("ISO-8859-1"),"utf-8");
    }catch(UnsupportedEncodingException e){
        throw new RuntimeException("不支持的字符集");
    }
    }
%>
<%
    out.println("这是一个转发的例子==");
%>
    <br/>
<%
    String names=(String)request.getAttribute("names");
    String para=transferCharacter(request.getParameter("redirect"));
    out.println("属性name的值:"+names);
%>

    <br/>
<%
    out.println("参数para的值:"+para);//此处para的值一直取不到,一直是乱码
%>
2013-07-02 16:15
Saiyaer
Rank: 1
来 自:CN
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-8-29
得分:0 
http://fengzhiyin.,看下这个就行了!
2013-07-15 15:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-416326-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023229 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved