【问题标题】:I didn't success to call a servlet inside another servlet [duplicate]我没有成功在另一个 servlet 中调用 servlet [重复]
【发布时间】:2020-09-02 17:15:41
【问题描述】:

我有 servlet A,其中有这段代码:

protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    RequestDispatcher rd = request.getRequestDispatcher("gestion-avis");
    rd.forward(request, response);

}

然后是另一个引用“gestion-avis”的servlet B:

@WebServlet("/gestion-avis")
public class GestionAvisServlet extends HttpServlet

A servlet 的代码通常会重定向到 servlet B 的 doGet 方法。

但这会将我重定向到一个名为“gestion-avis”的空 html 页面。

感谢您的帮助!

【问题讨论】:

    标签: java jsp servlets dispatcher requestdispatcher


    【解决方案1】:

    这可能是您的问题的原因。

    由于您将请求转发到映射在 url gestion-avis 的另一个 servlet,因此请求将转到您的 GestionAvisServlet 及其 doGet 方法。

    现在如果您的GestionAvisServlet.doGet 方法没有向HttpServletResponse 写入任何数据,您将看到一个空白屏幕。

    所以要查看一些数据,您需要像这样将数据写入HttpServletResponse:

    public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws IOException {
            response.getWriter().println("Hello");
     }
    

    否则您可以转发到另一个页面。

    【讨论】:

    • 但是在运行时这并没有进入 GestionAvisServlet.doGet 方法。
    • 我不想写东西,我想把请求转发到另一个jsp页面
    • 程序只是没有进入GestionAvisServlet.doGet
    • 实际上当我做 request.getRequestDispatcher("gestion-avis") 时,这是进入 GestionAvisServlet.doPost() 方法,而不是 doGet()...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-08
    • 1970-01-01
    • 2020-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多