如何从一个servlet文件调用到另一个servlet文件



我使用的是netbeans 7.1,我用两个servlet文件创建了一个JSP文件。类似:

index.jsp  --->servlet1.java  --->servlet2.java

我从index.jsp文件中给出一些值,并发送到servlet1.java

在这个servlet1.java文件中,我称之为servlet2.java文件。

然后抛出CCD_ 5。我该如何解决这个问题?

我的代码是这样的:

index.jsp

<form  action="servlet1" method="post">  

servlet 1.java

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

..................
..................
..................
servlet2 ob=new servlet2();
ob.doPost(request, response);
..................
..................
..................
}

然后抛出CCD_ 6。

使用RequestDispatcher

RequestDispatcher rd = request.getRequestDispatcher("servlet2");
rd.forward(request,response);

RequestDispatcher

定义一个对象,该对象接收来自客户端的请求,并将它们发送到服务器上的任何资源(如servlet、HTML文件或JSP文件)。


更新

无需手动创建servlet的对象,只需使用RequestDispatcher调用servlet即可,因为web容器控制servlet的生命周期

来自Oracle JavaEE文档Servlet生命周期

servlet的生命周期由部署servlet的容器控制
当请求映射到servlet时,容器将执行以下步骤。

  1. 如果servlet的实例不存在,则web容器

    • 加载servlet类。

    • 创建servlet类的实例。

    • 通过调用init方法初始化servlet实例。初始化包含在创建和初始化Servlet中。

  2. 调用服务方法,传递请求和响应对象。在编写服务方法中讨论了服务方法。

,你在这里尝试什么

servlet2 ob=new servlet2();
ob.doPost(request, response);

不需要为servlet显式创建对象,Web容器会为servlet创建一个实例,并在应用程序的生存期内共享它。尽管您在这里创建了一个对象,但它将只返回现有对象。

您可以选择请求调度程序或页面重定向

相关内容

最新更新