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

标签 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。我该如何解决这个问题?

我的代码是这样的:

索引.jsp

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

servlet1.java

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
        
                              ..................
                              ..................
                              ..................
        servlet2 ob=new servlet2();
        ob.doPost(request, response);
                              ..................
                              ..................
                              ..................
       }

然后它抛出 NullPointerException

最佳答案

使用RequestDispatcher

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

请求调度器

Defines an object that receives requests from the client and sends them to any resource (such as a servlet, HTML file, or JSP file) on the server.


更新

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

来自 Oracle JavaEE 文档 Servlet Lifecycle

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

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

  2. 调用服务方法,传递请求和响应对象。 Writing Service Methods 中讨论了服务方法.

关于java - 如何从一个 servlet 文件调用另一个 servlet 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20947806/

相关文章:

java - ImageIO.write 不起作用?

java - 使用 class.forname 但想要 Autowiring 目标类的成员

java - 在测试上下文中传递 HTTP 调用

java - 从数据库或属性中获取 Spring Security 拦截 url

Java:如何在不使用除法或模运算符的情况下查找整数是否为 2 的倍数

java - 将常见的 taglibs、js、css 文件移动到一个文件中

java - 从 Servlet 发送 ArrayList<Product> 并在 JSP 中接收

java - 我可以将变量从 JSP scriptlet 传递给 JSTL,但不能从 JSTL 传递给 JSP scriptlet 而不会出错

servlets - 如何在 netbeans ide 6.8 中查看控制台输出

java - servlet 的 doGet 内的数据库查询