当前位置: 首页 > 知识库问答 >
问题:

从我的服务器调用另一台服务器的JSP

宇文迪
2023-03-14

我有两个服务器,我可以从我的服务器的jsp调用另一个服务器的jsp。

就像下面的代码一样。首先是服务器JSP。

    <%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>Hello World!</h1>
        <form method="post" action="http://localhost:8080/Second_App/index.jsp">
            Name : <input type="text" name="name"/>
            Surname : <input type="text" name="surname"/>
            <input type="submit" value="Submit"/>
        </form>
    </body>
</html>

当我点击提交时,控件将进入第二个服务器,它将以name作为参数,并将其放入我的第二个服务器的jsp中。

第二服务器JSP.

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>Hello World!</h1>
        <% 
            String name = (String) request.getParameter("name");
            String surName = (String) request.getParameter("surname");
        %>
        Name    : <%= name %>
        Surname : <%= surName %>
    </body>
</html>

我想使用Servlet做完全相同的事情。

我试图与Servlet的重定向我的控制将去第二服务器,但因为重定向它不会采取"名称"peramater。

我尝试使用Forward,但它也不起作用,因为它正在第一个服务器中查找jsp。

RequestDispatcher dispatcher = request.getRequestDispatcher("http://server2/app1/index.jsp");
        dispatcher.forward(request, response);

我关心的是JSP是Servlet。如果这是用jsp完成的,这意味着应该有一些方法可以用servlet完成。

谢谢

共有3个答案

伍光济
2023-03-14

您可以使用response.send重定向(url_where_to_redirect);

在这里,当前请求将结束,并重定向到另一个上下文。

但在这里,您可以调用一个外部服务器url,仅此而已。我认为您需要显示页面从第二个服务器根据您的请求与url从您的当前页面。如果需要,那么应该使用一些代码在第二个服务器应用程序中处理请求。

韩佐
2023-03-14

您可以尝试使用sendReDirect()

此方法用于将客户端请求重定向到其他位置进行进一步处理,新位置在不同的服务器或不同的上下文中可用。web容器处理此请求并使用浏览器传输请求,并且此请求在浏览器中作为新请求可见。有时这也称为客户端重定向。

response.sendRedirect("http://server2/app1/index.jsp"); 
太叔小云
2023-03-14

以这种方式从Servlet向您发送表单参数。下一个JSP将从请求中获取name参数

RequestDispatcher dispatcher = request.getRequestDispatcher("http://server2/app1/index.jsp?name=setUserNameHereFromRequest");
        dispatcher.forward(request, response);

使用sendRedirect

response.sendRedirect("http://server2/app1/index.jsp?name=setUserNameHereFromRequest");
 类似资料:
  • 问题内容: 我需要将Jenkins 2.32版从服务器A移至Jenkins 2.72.1服务器B。两台服务器均具有ubuntu 16.04.3,由于内存问题,我无法安装任何插件,也无法在服务器A中使用该插件。有什么办法可以实现这一目标? 问题答案: 将目录中的所有文件复制到新服务器。 将新服务器指向新目录。 将Jenkins war文件(或servlet容器设置,如果有的话)复制到新机器上并启动它

  • 问题内容: 恐怕我已经知道问题的答案了,但是我还是会问: 当有两个MySQL DB服务器时,我可以访问存储在另一个服务器上的数据吗? 换句话说:我能以某种方式做到这一点: 答案真的和“否”一样短吗? 问题答案: 您可以在MySQL中设置联合表来完成您要执行的操作。有一些限制。 http://dev.mysql.com/doc/refman/en/federated-storage-engine.h

  • 问题内容: 我目前有一个在云实例上运行的实时Redis服务器,我想将此Redis服务器迁移到新的云实例并将该实例用作我的新Redis服务器。如果是MySQL,我将从旧服务器中导出数据库并将其导入新服务器中。我应该如何使用redis? PS:我不想设置复制。我想将Redis服务器完全迁移到新实例。 问题答案: 通过运行或从命令行将数据库快照保存到dump.rdb中。这将在与Redis服务器相同的文件

  • 我有姜戈问题。我想将来自浏览器或django服务器上的业务逻辑的数据发送到另一个django服务器或只是同一服务器但不同端口来处理请求。我该怎么办?我试着用套接字来实现,但似乎不起作用。

  • 将单个TeamCity构建配置从一个服务器移动到另一个服务器的最佳方法是什么? 我有一个测试基于的TeamCity的本地实例。然后当构建足够成熟时,我在我们的主TeamCity服务器上手动创建它(眼球复制)。

  • 我想从我的后端调用另一个web-api对用户的特定请求。例如,我想调用Google FCM发送消息api,就事件向特定用户发送消息。 改型有什么方法可以做到这一点吗?如果没有,我怎么能做到?