同一页面js向jsp传值乱码和页面跳转?

我这是同一页面传值js向jsp传值functionMapvalue(v){newURL="?dotfile="+v;window.open(newURL);}这是jsp接... 我这是同一页面传值js向jsp传值
function Mapvalue(v){
newURL="?dotfile="+v;
window.open(newURL);
}
这是jsp接收的
String fileMaptxt = request.getParameter("dotfile");
现在又两个问题,传中文到jsp得到的值是乱码,还有我是同一页面传值怎样让页面不跳转的情况下把值还能传过去就是每次执行传值的时候不要新开一个页面??
展开
 我来答
懒洋洋Fly
2011-08-05 · TA获得超过111个赞
知道答主
回答量:69
采纳率:0%
帮助的人:52.4万
展开全部
1、escape对ansi码0-255以外的字符进行编码输出%u****格式即unicode值,escape 方法返回一个包含了 charstring 内容的字符串值( Unicode 格式)。所有空格、标点、重音符号以及其他非 ASCII 字符都用 %xx 编码代替,其中 xx 等于表示该字符的十六进制数。例如,空格返回的是 "%20"

  escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

  2、encodeURI类似escape,用于地址栏编码

  encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z

  3、encodeURIComponent用于地址栏编码。将文本字符串编码为一个统一资源标识符 (URI) 的一个有效组件。它是将中文、韩文等特殊字符转换成utf-8格式的url编码,如果你的页面编码是gb2312的话,服务器端接收的将是乱码.

  encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

  所以js使用数据时可以使用escape,对于地址栏数据,最好用encodeURIComponent进行编码
例如:
前台jsp中js:
var str="method=submit2&type="+type+"&typep="+typep;
str=encodeURI(str);
var tempAction='ImageServlet.do?+str;
document.myform.action=tempAction;
后台java代码:
String typep=HttpServletRequest.getSession().getAttribute("typep");//不同的框架不同得到参数方式。
typep= java.net.URLDecoder.decode(typep,"UTF-8");//Decoder.decode();解码
笑壹個
2011-08-05 · TA获得超过403个赞
知道小有建树答主
回答量:311
采纳率:0%
帮助的人:228万
展开全部
传中文到jsp得到的值是乱码 用escape()编码
同一页面传值让页面不跳转的情况下把值还能传过去就是每次执行传值的时候不要新开一个页面
用一个隐藏的iframe 打你newURL。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ea1c09c
2011-08-05 · TA获得超过1004个赞
知道小有建树答主
回答量:856
采纳率:0%
帮助的人:1298万
展开全部
传中文需要先编码的,例如newURL="?dotfile="+escape(v); 这是用escape就行的编码,
此外也可以用encodeURI() 或encodeURIComponent()
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
topbox163
2011-08-05 · TA获得超过310个赞
知道答主
回答量:43
采纳率:0%
帮助的人:19.4万
展开全部
在原来页面打开新界面,不弹出新窗口:window.location = newURL;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式