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

sel*_*vam 8 java jsp servlets nullpointerexception

我正在使用net beans 7.1,我创建了一个带有两个servlet文件的JSP文件.喜欢

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

我从index.jsp文件中提供一些价值并发送给servlet1.java.

在这个servlet1.java文件中我调用servlet2.java文件.

然后它抛出NullPointerException.
我怎么解决这个问题?

我的代码是这样的.

的index.jsp

<form  action="servlet1" method="post">  
Run Code Online (Sandbox Code Playgroud)

servlet1.java

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

                              ..................
                              ..................
                              ..................
        servlet2 ob=new servlet2();
        ob.doPost(request, response);
                              ..................
                              ..................
                              ..................
       }
Run Code Online (Sandbox Code Playgroud)

然后它抛出NullPointerException.

Ani*_*rni 15

使用RequestDispatcher

RequestDispatcher rd = request.getRequestDispatcher("servlet2");
rd.forward(request,response);
Run Code Online (Sandbox Code Playgroud)

RequestDispatcher的

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


更新

无需手动创建servlet对象,只需用于RequestDispatcher调用servlet,因为Web容器控制 servlet 的生命周期.

来自Oracle JavaEE docs Servlet Lifecycle

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

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

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