我有一个接受用户名和密码的简单表单。如果登录有效,我必须使用sendRedirect()
方法将页面重定向到一个页面,如果登录无效,则重定向到另一个页面。我需要使用sendRedirect()
,而不是forward()
,因为其他页面位于另一个服务器上。我注意到在使用
response.sendRedirect(response.encodeRedirectURL("FileName.jsp?paramName=" +value));
sendRedirect()
使用的是GET
方法,因为name=value显示在URL中。出于安全原因,我不希望这些值显示在URL中,因此我不希望这样。
有没有办法使用sendRedirect()来POST
这些值?我尝试用POST
方法来做一个表单,它隐藏了我需要的值,但仍然没有成功
请问我能做些什么?谢谢:)
6条答案
按热度按时间0vvn1miw1#
不,这是不可能的。我看到的唯一(肮脏的)解决方案是转发到一个内部页面,该页面包含一个隐藏的表单(使用POST方法)和一个提交该表单的JavaScript脚本。
1zmg4dgp2#
这是有点旧,但在这里我已经成功地运行它:
有关http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.8HTTP 307状态代码的说明,请参见www.example.com。
1bqhqjot3#
使用javascript
rdlzhqv94#
不,HTTP重定向将始终使用GET作为目标页面。
然而,POST数据并不比GET数据安全多少,用户仍然可以篡改它们,而是将它们存储在会话中。
guz6ccqo5#
请查看以下内容:
vcudknz36#
使用sendredirect时不提供任何参数,并将这些参数隐藏在会话作用域的servlet中,如果在重定向页面中需要这些参数,则通过此servlet使用它们。