jspjava。lang.NullPointerException:永远不会执行servlet?
我正在学习如何使用Eclipse和Tomcat实现maven动态web应用程序。application在没有servlet的情况下工作,但当我尝试在代码中引入servlet时,会出现这个错误。我调试以找到问题。我认为,以下是相关的几点:
为了能够部署war文件,我向maven添加了依赖项“servlet api”,并提供了作用域,如下所示: How to compile a servlet for Tomcat in command line? error: package javax.servlet does not exist
错误在莫斯特拉利布罗斯。jsp。如果我在不使用servlet的情况下使用下一个代码,则一切正常:
listaDeLibros = Libro.buscarTodos();
但如果我将该行更改为下面提供的行,则会出现异常。实际上,变量“listaDeCategorias”在运行后是空的(我调试了它):
listaDeCategorias = (List<String>) request.getAttribute("listaDeCategorias");
我在Servlet中添加了一个断点ControladorLibros。java,但调试器从未停止过。代码:
package com.arquitecturajava; import java.io.IOException; import java.util.List; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ControladorLibros extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RequestDispatcher despachador = null; if (request.getServletPath().equals("/MostrarLibros.do")) { List<Libro> listaDeLibros = Libro.buscarTodos(); List<String> listaDeCategorias = Libro.buscarTodasLasCategorias(); request.setAttribute("listaDeLibros", listaDeLibros); request.setAttribute("listaDeCategorias", listaDeCategorias); despachador = request.getRequestDispatcher("MostrarLibros.jsp"); } else if ... (...) request.setAttribute("listaDeLibros", listaDeLibros); request.setAttribute("listaDeCategorias", listaDeCategorias); despachador = request. getRequestDispatcher("MostrarLibros.jsp"); } despachador.forward(request, response); } }
4-网络。xml:
<servlet>
<description></description>
<display-name>ControladorLibros</display-name>
<servlet-name>ControladorLibros</servlet-name>
<servlet-class>com.arquitecturajava.ControladorLibros</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ControladorLibros</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
5-项目结构:
是因为应用程序找不到servlet吗?在这种情况下,为什么找不到
共 (0) 个答案