Intentar abrir un archivo JSP simple produce HTTP Status 500

Siguiendo mi post anterior aquí, eliminé todos mis archivos fuente en un paquete llamado model , y ahora el proyecto se niega a cargar mientras se ejecuta http://localhost:8080/MyFirstServlet.

Sospecho que el culpable es web.xml , aquí está el archivo:

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>MyFirstServlet</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

  <servlet>
   <description></description>
   <display-name>LoginServlet</display-name>
   <servlet-name>LoginServlet</servlet-name>
   <servlet-class>model.LoginServlet</servlet-class>
 </servlet>


  <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/model/LoginServlet</url-pattern>
  </servlet-mapping>
</web-app>

  [1]: https://stackoverflow.com/questions/11282231/jsp-page-wont-move-the-another-page-after-user-enters-the-input/11283006#11283006

esto es index.jsp:

<%@ page language="java" contentType="text/html; charset=windows-1255"
    pageEncoding="windows-1255"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1255">
<title>Insert title here</title>
</head>
<body>
<form action="model/LoginServlet" method="POST">
        First Name: <input type="text" name="firstName" size="20"><br>
        Last Name: <input type="text" name="lastName" size="20">
        <br><br>
        <input type="submit" value="Submit">
</form> 

</body>
</html>

Esta es la jerarquía del proyecto:

jerarquía

Cuando ejecuto http://localhost:8080/MyFirstServlet y llegar aquí:

enter image description here

yo entro first y second en los campos de texto y luego obtenga esto:

enter image description here

Traté de arreglarlo pero nada lo hizo, así que agradecería cualquier consejo, gracias :)

preguntado el 01 de julio de 12 a las 16:07

4 Respuestas

Tu forma de acción debe ser

<form action="model/LoginServlet" />

y su servlet de inicio de sesión debe definir el paquete correctamente.

package model;

Además, su web.xml debe declarar esta clase de servlet a través de un nombre completo

model.LoginServlet

Su servlet debe extender HttpServlet.

Si se asegura de que todo lo anterior esté en su lugar correctamente y todavía no funciona. Luego, es posible que deba verificar la configuración de la ruta de compilación en Eclipse para este proyecto.

Respondido 17 ago 12, 11:08

<servlet>
   <description></description>
   <display-name>LoginServlet</display-name>
   <servlet-name>LoginServlet</servlet-name>
   <servlet-class>model.LoginServlet</servlet-class>
 </servlet>

Te perdiste el paquete para la clase servlet.

Respondido 01 Jul 12, 16:07

Si eso todavía no funciona, debería tener un nuevo stacktrace diferente. De lo contrario, su nuevo web.xml no se implementa correctamente y todavía se refiere al anterior. - Udo celebrado

El stacktrace muestra claramente cuál es el error, ClassNotFoundException significa que el contenedor de servlet no puede encontrar la clase especificada en web.xml.

Respondido 01 Jul 12, 17:07

Puedo verlo, pero ¿cómo lo soluciono? - JAN

Realice una limpieza de su Servlet, elimine las advertencias/paquetes referenciados innecesarios y luego intente volver a implementar todo deteniendo el tomcat e implemente y luego inicie el servidor. Avísame si todavía no funciona. - amitprot

La primera línea de código en LoginServlet.java debería ser

package model;

Respondido 01 Jul 12, 17:07

En lugar de action="model/LoginServlet", intente usar action="/es/model/LoginServlet" - Rickz

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.