在 Web 应用程序中重定向或转发
大家好
我有一个要求,例如,从某些事件的某些网页,用户将使用某些参数重定向到 MyApp 的登录页面。我想测试 MyApp 是否能够获取该参数。为了测试我制作了另一个我正在使用的应用程序(代码如下)。但这在网址中显示了我不想要的参数。我还想知道还有哪些其他方法可以使用参数重定向/转发到另一个网址(参数应该隐藏 hiddn )。
<% response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); response.setHeader("位置","http://localhost:8080/MyApp/login/login.jsf?user_id=inc&reference_id=123456789"); %>
THANKSHi All
I have a requirement like, from some web page on some event user will redirect to MyApp's login page with some parameter. I want to test MyApp is able to get that parameter or not. To test that i made another app in which i am using (code is below ). But this is showing parameter in url which i don't want. I also want to know what other ways are there to redirect/forward to some another url with parameter ( parameter should be hidden hiddn ).
<%
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
response.setHeader("Location","http://localhost:8080/MyApp/login/login.jsf?user_id=inc&reference_id=123456789");
%>
THANKS
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
无法执行 POST 重定向,因此您不能仅使用 scriptlet 中的 POST 进行重定向。
您可以做的是:
使用您想要传递的参数在 POST 中构建 HTML 表单,但请记住,POST 感知的安全性很脆弱,因为使用像 firebug 这样的工具,任何人都可以看到这些变量(或者他们只能查看 html 源代码)。
解决该问题的一种方法是使用加密或一次性密码(持续一个会话)。我使用这种方式将 Java 应用程序与 PHP 无缝连接。如果您有兴趣,我可以查找并分享该解决方案的详细信息。
It's not possible to do POST redirects, so you can't just redirect with a POST from your scriptlet.
What you can do is:
Build an HTML form in POST with the parameters that you want to pass, but remember, the POST perceived security is brittle, since with a tool like firebug anyone can see those variables (or they can just look at the html source).
A way around the problem is use encryption or one time passwords (that last for a session). I used this way, to connect seamlessly a Java application with PHP. If you're interested I could look it up and share the details of that solution.
首先,不要使用 scriptlet。如果您不想看到 URL 中的参数,请不要将其与 URL 一起发送。您可以执行 POST 提交或将其作为隐藏变量从页面传递。
First of all, do not use scriptlets. If you dont want to see the parameter in the URL, don't send it with the URL. You can do a POST submit or pass it as a hidden variable from your page.