同一页面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得到的值是乱码,还有我是同一页面传值怎样让页面不跳转的情况下把值还能传过去就是每次执行传值的时候不要新开一个页面?? 展开
function Mapvalue(v){
newURL="?dotfile="+v;
window.open(newURL);
}
这是jsp接收的
String fileMaptxt = request.getParameter("dotfile");
现在又两个问题,传中文到jsp得到的值是乱码,还有我是同一页面传值怎样让页面不跳转的情况下把值还能传过去就是每次执行传值的时候不要新开一个页面?? 展开
展开全部
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();解码
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();解码
展开全部
传中文到jsp得到的值是乱码 用escape()编码
同一页面传值让页面不跳转的情况下把值还能传过去就是每次执行传值的时候不要新开一个页面
用一个隐藏的iframe 打你newURL。
同一页面传值让页面不跳转的情况下把值还能传过去就是每次执行传值的时候不要新开一个页面
用一个隐藏的iframe 打你newURL。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
传中文需要先编码的,例如newURL="?dotfile="+escape(v); 这是用escape就行的编码,
此外也可以用encodeURI() 或encodeURIComponent()
此外也可以用encodeURI() 或encodeURIComponent()
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在原来页面打开新界面,不弹出新窗口:window.location = newURL;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询