2016-11-24 6 views
0

Ich führe den Code auf Tomcat 8.0.39 und es zeigt zuerst die login.jsp Wenn ich den Namen und das Passwort eingeben und drücken Sie Submit gibt es den Fehler 404: login.jsp image HTTP Status 404 imageHTTP-Status 404 --- Spring MVC

Mein Code folgt:

web.xml

<!-- webapp/WEB-INF/web.xml --> 
<web-app xmlns="http://java.sun.com/xml/ns/javaee"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
version="3.0"> 

<display-name>To do List</display-name> 

<welcome-file-list> 
    <welcome-file>login.do</welcome-file> 
</welcome-file-list> 

</web-app> 

LoginServlet.java

package com.ezmsip; 

import java.io.IOException; 


import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

@WebServlet(urlPatterns="/login.do") 
public class LoginServlet extends HttpServlet { 

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

     request.getRequestDispatcher("WEB-INF/views/login.jsp").forward(request, response); 
} 
@Override 
protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 

    request.setAttribute("name", request.getParameter("name")); 

    request.getRequestDispatcher("WEB-INF/views/welcome.jsp").forward(request, response); 
} 

}

login.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Hola desde una JSP</title> 
</head> 
<body> 

<form action="/login.do" method="post"> 
Nombre: <input type="text" name="name" /> Password: <input type="password"  name="password" /> <input type="submit" value="Log-in" /> 
</form> 
</body> 
</html> 

welcome.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Bienvenido!</title> 
</head> 
<body> 
Bienvenido! ${name} 
</body> 
</html> 

Dank!

Antwort

0

Es beschwert sich nicht über login.jsp. Es beschwert sich über /login.do. Haben Sie diese App als Root-Web-App in Tomecat bereitgestellt? Andernfalls befindet es sich in einem Kontextpfad und Sie müssen Ihre Aktion so etwas wie /myWebApp/login.do.

Auf jeden Fall das Richtige den Kontextpfad zu tun ist, vorangestellt wird:

action="${pageContext.request.contextPath}/login.do" 

oder unter Verwendung des JSTL:

action="<c:url value='/login.do'/>" 
+0

Dank JB Nizet, fügte ich die Seitenkontext und hat funktioniert. – Alberto

Verwandte Themen