清风你来 发表于 2023-5-9 09:22:44

为什么提交的请求路径存在登入后还是404

login.jsp

<%--
Created by IntelliJ IDEA.
User: Chen
Date: 2023/5/9
Time: 8:44
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h2>用户登入</h2>
<form action="/day05-filter-listener/LoginServlet" method="post">
    用户名:<input type="text" name="username"> <br>
    密码: <input type="password" name="password"> <br>
    <input type="submit" value="登入">
</form>
</body>
</html>


loginServlet

<%--
Created by IntelliJ IDEA.
User: Chen
Date: 2023/5/9
Time: 8:44
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h2>用户登入</h2>
<form action="/day05-filter-listener/LoginServlet" method="post">
    用户名:<input type="text" name="username"> <br>
    密码: <input type="password" name="password"> <br>
    <input type="submit" value="登入">
</form>
</body>
</html>


welcome.jsp

<%--
Created by IntelliJ IDEA.
User: Chen
Date: 2023/5/9
Time: 8:57
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h2>登入成功欢迎你${username}</h2>
</body>
</html>

清风你来 发表于 2023-5-9 09:23:07

https://i.postimg.cc/fLVzmMKG/IMG-20230509-085916.jpg

清风你来 发表于 2023-5-9 09:24:24

https://i.postimg.cc/4N69m1nz/IMG-20230509-090614.jpg

isdkz 发表于 2023-5-9 10:16:16

从你提供的代码来看,你提供的 login.jsp 和 loginServlet 代码是完全一样的,这可能是问题的原因。实际上,你应该为 LoginServlet 创建一个Java类,而不是使用JSP页面。下面是一个简单的 LoginServlet 示例:

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

@WebServlet("/day05-filter-listener/LoginServlet")
public class LoginServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      // 获取用户名和密码
      String username = request.getParameter("username");
      String password = request.getParameter("password");

      // 验证用户名和密码(这里仅作演示,实际应用中应该连接数据库进行验证)
      if ("yourUsername".equals(username) && "yourPassword".equals(password)) {
            request.getSession().setAttribute("username", username);
            response.sendRedirect("welcome.jsp");
      } else {
            response.sendRedirect("login.jsp");
      }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      doPost(request, response);
    }
}


这个 LoginServlet 示例将处理用户登录请求,并根据用户名和密码是否匹配来重定向到 welcome.jsp 或 login.jsp 页面。注意,这里的用户名和密码验证仅作演示,实际应用中应该连接数据库进行验证。

要解决你遇到的404问题,请确保:

1. 删除错误的 loginServletJSP页面,创建一个正确的 LoginServletJava类。
2. 检查web.xml文件中的servlet和servlet-mapping配置是否正确。
3. 确保应用程序已经部署到Web服务器上,并且路径设置正确。

希望这能帮助你解决问题。
页: [1]
查看完整版本: 为什么提交的请求路径存在登入后还是404