很无语的一个问题

tjzero_sapce 2009-04-03 02:02:45
再改别人写的一个程序 , 他jsp页面中的提交事件 不是通过 action 的 而是js
window.location.href = "loginchecksrv?employeeName="+inputField+"&employeePWD="+userInputPwd;


为什么我在servlet 中 使用System.out.println(用户名); System.out.println(密码);的时候

在下面的 console 中看到的全是 ??????employeePWD=. null

这到底是怎么回事?

...全文
185 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
king4323210 2009-04-07
  • 打赏
  • 举报
回复
request.setCharacterEncoding("GBK");
kenshinlou 2009-04-06
  • 打赏
  • 举报
回复
唉,别误人子弟了,。。。。。。。。。

传之前先用js把参数转一下码, 关于js的转码去google吧,一两句说不清

lin_eric 2009-04-05
  • 打赏
  • 举报
回复
统一一下编码就行了,在SERVLET中接收参数之前先设置一下编码 request.setCharacterEncoding("gb2312");应该就能解决问题了~
tq_qiang 2009-04-05
  • 打赏
  • 举报
回复
编码问题
铭镛 2009-04-03
  • 打赏
  • 举报
回复
编程时,应使用统一编码.如发送用什么编码接收就用什么编码接收.如果使用的是tomcat服务器,可以在../conf/server.xml中设置端口的地方设置一下URI编码格式,避免出现乱码.
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="URF-8"/>
西部流云 2009-04-03
  • 打赏
  • 举报
回复
又是编码的问题,这类问题在网上多得是
hz890 2009-04-03
  • 打赏
  • 举报
回复
[Quote=引用楼主 tjzero_sapce 的帖子:]
再改别人写的一个程序 , 他jsp页面中的提交事件 不是通过 action 的 而是js

JScript codewindow.location.href = "loginchecksrv?employeeName="+inputField+"&employeePWD="+userInputPwd;



为什么我在servlet 中 使用System.out.println(用户名); System.out.println(密码);的时候

在下面的 console 中看到的全是 ??????employeePWD=. null

这到底是怎么回事?
[/Quote]
试一下下面的修改:
window.location.href = "loginchecksrv?employeeName="+escape(inputField)+"&employeePWD="+escape(userInputPwd);
tjzero_sapce 2009-04-03
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 sherry521 的回复:]
那这样试试:
window.location.href = "loginchecksrv?employeeName= <%=URLEncoder.encode(inputField,"UTF-8")%>&employeePWD="+userInputPwd;
在头部引用java.net.URLEncoder
[/Quote]

inputField 没有在<%%> 中声明为变量 , 在上面的语句中使用的时候 不被认可
gao512008 2009-04-03
  • 打赏
  • 举报
回复
...又见编码
笑的自然 2009-04-03
  • 打赏
  • 举报
回复
编码问题是很头疼的问题。不过对于一个成熟的程序员来说算不上什么,我们只要知道为什么要编码就行了,关键是很多人把编码看的很微不足重。
sherry521 2009-04-03
  • 打赏
  • 举报
回复
那这样试试:
window.location.href = "loginchecksrv?employeeName=<%=URLEncoder.encode(inputField,"UTF-8")%>&employeePWD="+userInputPwd;
在头部引用java.net.URLEncoder
tjzero_sapce 2009-04-03
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 sherry521 的回复:]
因为你第一个参数inputField中文乱码,导致第二个参数也跟着乱了,无法解析。
这样试下:window.location.href = "loginchecksrv?employeeName="+encodeURIComponent(inputField)+"&employeePWD="+userInputPwd;
[/Quote]

不行 还是 ??????
sherry521 2009-04-03
  • 打赏
  • 举报
回复
因为你第一个参数inputField中文乱码,导致第二个参数也跟着乱了,无法解析。
这样试下:window.location.href = "loginchecksrv?employeeName="+encodeURIComponent(inputField)+"&employeePWD="+userInputPwd;
tjzero_sapce 2009-04-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ouyangxiaokang6 的回复:]
你请求的url里面有中文吧,jsp,servlet里面的编码要一致
[/Quote]

js中确实是输入了中文, 但是jsp 和servlet 中编码是一致的
tjzero_sapce 2009-04-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lxy149434823 的回复:]
编码问题,查一下页面用的什么编码,servlet中就用什么编码接收
[/Quote]

我的jsp中使用的是 UTF-8 因为使用filter(也是UTF-8) 所以没有在servlet 中写request 和response的编码设置
tjzero_sapce 2009-04-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 mumu_java 的回复:]
编码问题,你这个参数的值一定是中文的。js中要用encodeURIComponent()做一下转换。
http://297014031.javaeye.com/blog/273160
[/Quote]

我再js 中
var inputField = encodeURIComponent(document.getElementById("employeeName").value);
var userInputPwd = encodeURIComponent(document.loginFrm.employeePWD.value);

转换了 在console 怎么还是 ?????? 呢?
mike_24 2009-04-03
  • 打赏
  • 举报
回复
编码问题,servlet页面加上:resp.setContentType("text/html;charset=gbk");
ouyangxiaokang6 2009-04-03
  • 打赏
  • 举报
回复
你请求的url里面有中文吧,jsp,servlet里面的编码要一致
lin_eric 2009-04-03
  • 打赏
  • 举报
回复
编码问题~~统一一下编码就行了~都用GB2312 request.setCharacterEncoding("gb2312");
mumu_java 2009-04-03
  • 打赏
  • 举报
回复
编码问题,你这个参数的值一定是中文的。js中要用encodeURIComponent()做一下转换。
http://297014031.javaeye.com/blog/273160
加载更多回复(1)

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧