能用response实现跟表单post一样的页面转向吗?

emu 2003-02-11 11:26:34
用jsp或者servlet实现页面转向,我只知道以下两种方法:

<jsp:forward page="login.jsp?username=usr&password=pwd"/>

<%response.sendRedirect("http://www.csdn.com?username=usr&password=pwd");%>

用forward在地址栏中不会显示新页面的地址,但是似乎不能实现跨域,只能在当前服务器的页面之间转向。

用response可以转到其他服务器的页面上,但是地址栏显示的是新的页面地址,这样如果我在页面转向时带了参数就会被用户看到。

我现在需要实现的功能是登录另一个域的服务程序,但是用户名和密码由我的服务程序生成并且不让用户看到,所以当然也不能用form.post,否则就需要把用户名密码生成到页面表单中因而有可能被用户看到。不知用response能否实现象form.post一样的参数发送功能,让参数不显示出来?或者有否其他解决办法?

...全文
118 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
ltz 2003-06-06
  • 打赏
  • 举报
回复
mark
emu 2003-02-15
  • 打赏
  • 举报
回复
呵呵,如果已经生成完了html,servlet的运行也就结束了。
yysinger 2003-02-15
  • 打赏
  • 举报
回复
gz
freelarry 2003-02-14
  • 打赏
  • 举报
回复
有没试过在srevlet里面写一段html代码然后直接跳转(将密码放入html中)
也就是说用servlet做跳转页面 而不用script。
emu_ston 2003-02-14
  • 打赏
  • 举报
回复
wsj(骆驼) :

java.net.URL openConnection().getInputStream()就是warmship(warmship) 说的方法嘛。

139129(百事):我现在也是form.post,实在没有办法了,加密也就不必了,如果防不到我,又怎么能防高手呢?还不如让菜鸟们练习一下crack算了,共同提高嘛呵呵。
139129 2003-02-13
  • 打赏
  • 举报
回复
我现在需要实现的功能是登录另一个域的服务程序,但是用户名和密码由我的服务程序生成并且不让用户看到,所以当然也不能用form.post,否则就需要把用户名密码生成到页面表单中因而有可能被用户看到。不知用response能否实现象form.post一样的参数发送功能,让参数不显示出来?或者有否其他解决办法?

当初我也是考虑了很长时间也没有找到有效的方法,最后因为催着交工,我用了form.post,加密过后再转换成ASCII码传送。
wsj 2003-02-13
  • 打赏
  • 举报
回复
1)要想用户不知道,只有说有的 response 确实是你的server return的

2)先抛开Session不谈,可以用java.net.URL openConnection().getInputStream()
emu 2003-02-13
  • 打赏
  • 举报
回复
早就考虑过了。加密是防君子不防小人,我还没想初有什么样的加密能让我自己解不开的,因为在发送之前始终要先解密啊,只要在客户端做了解密,引用侯捷的一句话:原码面前,了无秘密。
sdiezyw 2003-02-13
  • 打赏
  • 举报
回复
对密码进行加密!
emu 2003-02-13
  • 打赏
  • 举报
回复
我在想,sun没有加入这俩方法应该是有原因的吧?
noonenet 2003-02-13
  • 打赏
  • 举报
回复
我觉得必须要改动应答方的程序或者javax包。
warmship 2003-02-12
  • 打赏
  • 举报
回复
问你是否需要跳转之后url也要变成target的url?
如果不需要的话,可以在jsp/servlet中自己发一个请求
然后将请求返回的内容输出。
emu 2003-02-12
  • 打赏
  • 举报
回复
不需要,但是请求返回的内容不会是简单的文本啊,会引用到css,js,图片等等,我自己出来返回内容的时候无法正确处理这些内容,而且就算处理了这些内容,这种方式也可能带来新的跨域问题。
brightstar 2003-02-11
  • 打赏
  • 举报
回复
呵呵,建议让你们客户的领导把客户都辞掉,换几个白痴上来就没这么多麻烦了。哈哈。。。。。。。。。。。。。。。。。
emu 2003-02-11
  • 打赏
  • 举报
回复
呵呵,要添得添俩,request要一个,response应该也要一个。
emu 2003-02-11
  • 打赏
  • 举报
回复
要这样修改request对象,除非去下了javax包的原码回来改,添一个setParameter方法进去,就算真的想这样也未必能添得进去,不然为什么现在会没有这个方法呢?
emu 2003-02-11
  • 打赏
  • 举报
回复
这个不行。我需要的是setParameter,可是request根本不提供这个方法,setAttribute放进去的东西只能用getAttribute拿出来,而服务器获得参数的时候是getParameter啊
brightstar 2003-02-11
  • 打赏
  • 举报
回复
总之,直接获得request对象,并修改之,再发出去。
brightstar 2003-02-11
  • 打赏
  • 举报
回复
用servlet这个试试
HttpServletRequest myrequest
HttpServletResponse myresponse
RequestDispatcher rd = request.getRequestDispatcher("www.csdn.net");
myrequest.setAttribute("user",user);
myrequest.setAttribute("password",password);
rd.forward(myrequest, myresponse);
emu 2003-02-11
  • 打赏
  • 举报
回复
打个比方说,我要让登录我服务器的用户可以以我的身份登录csdn,但是又不能让他们看见我的密码......
加载更多回复(13)

81,092

社区成员

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

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