将POST参数传递给另一个JSP文件

时间:2015-06-11 04:08:58

标签: java javascript jsp

我有两个单独的Web应用程序。让我们说 app1 app2 。两者都托管在具有不同域的不同服务器中。

现在在app1中有一个链接。点击该链接后,我必须使用用户名和密码调用app2的登录页面并显示响应。但是在URL中不应显示用户名和密码。

当前方法:

现在我通过创建iframe并在查询字符串中传递用户名和密码参数来完成我的任务。

赞:www.app2.com/login.jsp?username = abc& password = xxx

通过点击以上网址,用户可以登录并显示主页。

必修方法

我想用用户名和密码作为帖子参数调用另一个应用程序的登录页面。我想在服务器端做所有我的工作而不透露登录凭据。

注意:我可以控制 app1 ,但我无法调整 app2 的代码。我正在使用JSP开发app1,struts 1.3。

这两款应用的用户名和密码都不同。 App1是我的应用程序,app2是第三方报告服务。

希望你明白我的观点!!

3 个答案:

答案 0 :(得分:0)

您要求的是单点登录。

最好的方法是编写一个cookie,应用程序(而不是域)可以读取。在app1.domain.com中为domain.com编写cookie并在app2.domain.com中阅读相同内容

更新#1 - 示例.NET代码 - 虽然问题是针对Java,但下面应该有助于实现逻辑

FormsAuthentication.SetAuthCookie(Session["userName"].ToString(), false);

//Below code modifies the cookie's domain
System.Web.HttpCookie MyCookie = System.Web.Security.FormsAuthentication.GetAuthCookie(User.Identity.Name.ToString(), true);
MyCookie.Domain = "abc.com";
Response.AppendCookie(MyCookie);
Response.Redirect("http://subdomain.abc.com/");

答案 1 :(得分:0)

您可以使用post方法在其他页面中发送参数。为此,您可以将AJAX POST请求用于其他页面并获取该页面的响应。

答案 2 :(得分:0)

请参阅here...

给出的答案

老实说,我会为此而努力......

ServletContext context = this.getServletContext();
RequestDispatcher dispatcher = context.getRequestDispatcher("/otherurltoservlet");

// change your request and response accordingly like setting the parametrs, body etc

dispatcher.forward(request, response);