Eclipse中Maven项目部署Tomcat10.1后提交表单遇HTTP 404错误
问题:登录表单提交后出现HTTP 404错误
我使用Eclipse EE开发一个简单Maven项目,项目包含带用户名、密码输入框和提交按钮的登录表单。输入默认用户名admin和密码admin提交后,本该跳转至显示“Pass”的Success.jsp页面或显示“Fail”的Error.jsp页面,但提交后出现HTTP 404错误。
项目环境:
- Tomcat 10.1版本
- 依赖javax servlet 4.0.1
我已在pom.xml中配置所需依赖,web.xml中也配置了Servlet,项目文件目录结构如下:
- src/main/java
- com/examSolution
- LoginServlet.java
- com/examSolution
- src/main/webapp
- index.jsp
- Success.jsp
- Error.jsp
- pom.xml
- web.xml
web.xml配置内容:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>com.examSolution.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/loginServlet</url-pattern> </servlet-mapping> </web-app>
尝试过Stack Overflow及谷歌上的类似解决方案,但均未解决问题。相关代码如下:
index.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>Insert title here</title> </head> <body> <form action="loginServlet" method="POST"> <h1>JSP Page</h1> <input type="text" name="username"> <input type="password" name="password"> <input type="submit" value="Login" id="login"> </form> </body> </html>
Success.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>Test Page</title> </head> <body> <% out.println("Pass"); %> </body> </html>
Error.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>Test Page</title> </head> <body> <% out.println("Fail"); %> </body> </html>
LoginServlet.java
package com.examSolution; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class LoginServlet */ @WebServlet("/loginServlet") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); String username = request.getParameter("username"); String password = request.getParameter("password"); if(username.equals("admin") && password.equals("admin")) { response.sendRedirect("Success.jsp"); }else { response.sendRedirect("Error.jsp"); } } }
内容的提问来源于stack exchange,提问作者Aniket Kajal
相关产品推荐
相关产品推荐

