Java 调用servlet后的不同url

Java 调用servlet后的不同url,java,servlets,forwarding,requestdispatcher,Java,Servlets,Forwarding,Requestdispatcher,我有一个servlet,它做了一些事情,当它做了一些事情,将一些事情放入请求中,然后调用另一个servlet,后者反过来调用jsp页面。 我编写代码: 第一个servlet(InserisciLezione) 第二个servlet(TakeDates) 这可以正常工作,但问题是,在页面的url中,我尚未: http://localhost:8080/Spinning/InserisciLezione?data=20-02-2013 如果我刷新页面,会再次调用第一个servlet,我不希望这样

我有一个servlet,它做了一些事情,当它做了一些事情,将一些事情放入请求中,然后调用另一个servlet,后者反过来调用jsp页面。 我编写代码:

第一个servlet(InserisciLezione)

第二个servlet(TakeDates)

这可以正常工作,但问题是,在页面的url中,我尚未:

 http://localhost:8080/Spinning/InserisciLezione?data=20-02-2013
如果我刷新页面,会再次调用第一个servlet,我不希望这样。 我想要

 http://localhost:8080/Spinning/GestioneCalendario.jsp
为什么?? 提前谢谢

如果我的记忆很好(我很久没有使用原始servlet了),那么应该使用重定向而不是转发

您可以使用response.sendRedirect(url)方法

干杯,

如果我的记忆很好(我很久没有使用原始servlet了),你应该使用重定向而不是转发

您可以使用response.sendRedirect(url)方法


干杯,

您可以使用
发送重定向
而不是
转发

向前地
  • 转发发生在服务器端,服务器将相同的请求转发给另一个资源
  • 在这种情况下,同一请求被转发到另一个资源,因此所有请求参数和请求属性都将可用。没有servlet1的req、ans resp对象。您无法获得ser1和ser2的值
    注意事项:
    在将响应提交给客户端之前,需要调用Forward,否则您将导致异常。
    限制:
    您不能在上下文之外转发请求,因此请求应该在您的站点中进行转发。
    优势:
    性能方面,它会更快一些,因为第二次调用是在不了解容器的情况下进行的,并且不会出现从客户端到服务器的往返
  • 重新使用
  • 这种情况发生在浏览器端,服务器向浏览器发送
    http
    状态代码302,以便浏览器发出新请求。重定向需要从浏览器到服务器的一次往返
  • 这是一个新请求,因此旧参数和属性将不可用。
    优势:
    您还可以访问上下文之外的servlet,因此可以调用其他网站中的servlet。
    限制:
    存在往返性能方面的位慢和

  • 您可以使用
    sendRedirect
    而不是
    forward

    向前地
  • 转发发生在服务器端,服务器将相同的请求转发给另一个资源
  • 在这种情况下,同一请求被转发到另一个资源,因此所有请求参数和请求属性都将可用。没有servlet1的req、ans resp对象。您无法获得ser1和ser2的值
    注意事项:
    在将响应提交给客户端之前,需要调用Forward,否则您将导致异常。
    限制:
    您不能在上下文之外转发请求,因此请求应该在您的站点中进行转发。
    优势:
    性能方面,它会更快一些,因为第二次调用是在不了解容器的情况下进行的,并且不会出现从客户端到服务器的往返
  • 重新使用
  • 这种情况发生在浏览器端,服务器向浏览器发送
    http
    状态代码302,以便浏览器发出新请求。重定向需要从浏览器到服务器的一次往返
  • 这是一个新请求,因此旧参数和属性将不可用。
    优势:
    您还可以访问上下文之外的servlet,因此可以调用其他网站中的servlet。
    限制:
    存在往返性能方面的位慢和

  • RequestDispatcher接口提供了将请求分派到另一个资源的工具,该资源可以是html、servlet或jsp。该接口还可用于包含另一个资源的内容。这是servlet协作的一种方式

    在你的情况下,你得到了这个

    http://localhost:8080/Spinning/GestioneCalendario.jsp 
    
    因为这个servlet

     RequestDispatcher dispatcher = request
                .getRequestDispatcher("GestioneCalendario.jsp");
        dispatcher.forward(request, response);
    
    页面刷新将始终将您重定向到您使用servlet的url。这就像调用ajax事件。

    无论如何,我可以看到你不需要使用前进的方法,尝试使用

    response.sendRedirect(your_url);
    

    RequestDispatcher接口提供了将请求分派到另一个资源的工具,该资源可以是html、servlet或jsp。该接口还可用于包含另一个资源的内容。这是servlet协作的一种方式

    在你的情况下,你得到了这个

    http://localhost:8080/Spinning/GestioneCalendario.jsp 
    
    因为这个servlet

     RequestDispatcher dispatcher = request
                .getRequestDispatcher("GestioneCalendario.jsp");
        dispatcher.forward(request, response);
    
    页面刷新将始终将您重定向到您使用servlet的url。这就像调用ajax事件。

    无论如何,我可以看到你不需要使用前进的方法,尝试使用

    response.sendRedirect(your_url);
    

    也许您想使用
    发送重定向
    。这与转发请求不同(它只是告诉浏览器加载新页面),可能您想使用
    发送重定向
    。这与转发请求不同(它只是告诉浏览器加载新页面)