日期:2014-05-19  浏览次数:20741 次

地址栏的URL用户名称和密码的参数值都显示出来啦!!!
虚心请教各位:
  我是用struts搭的框架,做了一个登录页面,发现点击【登录】按钮时,
地址栏的URL用户名称和密码的参数值都显示出来了:
  http://127.0.0.1:8080/ept/loginAction.do?&user_id=admin&password=1
  这不是要出大问题吗

我在网上搜索了相关资料,发现解决的办法大概分为以下几种

(1)、写在ssesion里面:这种方法我认为要向服务端提交小部分数据还可行,但如果数据量大的话,会影响性能

(2)、用POST提交参数:我尝试过用post提交参数,代码如下:
   
  var username;
  var password;
  username=document.login.u_id.value;
  password=document.login.u_password.value;

  var objXMLReq = new ActiveXObject("Microsoft.XMLHTTP");
  var strURL = "http://127.0.0.1:8080/ept/loginAction.do?u_id="+username+"&u_password="+password
  objXMLReq.open("POST",strURL, false);
  objXMLReq.send("");

  数据是提交成功了,但是 return actionMapping.findForward("success");不管怎样就是不跳转了,我用
  document.login.submit()是可以跳转的
   
  然后在后面加了段代码

  var result = objXMLReq.responseText;
  if(result=="ok"){
  document.login.action="http://127.0.0.1:8080/ept/indexmanage.jsp";
  document.login.submit();
  }

  跳是可以跳了,但struts最大的优势不就是可以在action里面跳转,隐藏跳转路径吗?这样写不就没有
  用到struts的优势了?

(3)用隐藏域:struts的隐藏域是不是就是
  <input type="hidden" value="" name="u_id" size="20" maxLength="64">吗?
  我试过了,没用,参数值照样显示出来。

  我是新手,对javascript、struts都是看了些文档来做的,有很多不清楚的地方
   
  请问高手?有没有可以传递大量数据?又可以使struts actionMapping.findForward()可用的办法?
   
   





------解决方案--------------------
post 不是那样用的

objXMLReq.open("POST","xx.do", true);
objXMLReq.send("par=xxx");
------解决方案--------------------
和你url一样写
参数你最好编码一下,可以网上找找
------解决方案--------------------
不让它显示,表单post提交或ajax,另外 "但struts最大的优势不就是可以在action里面跳转,隐藏跳转路径吗?"并不是struts最大优势.
你直接提交后,在result 里面写下success转到哪,error转到哪不就好了,何必这么麻烦.
------解决方案--------------------
mark