张图南 发表于 2021-9-2 08:51:56

Servlet无法重定向至想要的页面

这是CookieLoginServlet,想要重定向至welcome.jsp;出来的结果却是404;报错消息说{文.件 未找到}

package com.example.demo1;

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

@WebServlet("/demo1/cookielogin.jsp")
public class CookieLoginServlet extends HelloServlet{

    private String myusername = "admin";
    private String mypassword = "123456";

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      String username = req.getParameter("username");
      String password = req.getParameter("password");

      if (username.equals(myusername) && password.equals(mypassword)){
            System.out.println("equal");
            Cookie cookie = new Cookie("name",username);
            System.out.println(username + " " + password);
            resp.addCookie(cookie);
            resp.sendRedirect("/demo1/cookiewelcome.jsp");
      }else {
            resp.sendRedirect("/demo1/cookielogin.jsp");
      }
    }
}

下面是cookielogin.jsp代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <form action="/demo1/cookie_login.jsp" method="post">
      用户名:<input type="text" name="username"/><br/>
      密码:<input type="text" name="password"/><br/>
      <input type="submit" value="登录"/>
      <input type="reset" value="重置"/>
    </form>
</body>
</html>

还有cookiewelcome.jsp的代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Cookie_welcome</title>
</head>
<body>
    <%
      Cookie[] cookies = request.getCookies();
      for (Cookie cookie:cookies){
            out.write(cookie.getName() + " : " + cookie.getValue());
      }
    %>
</body>
</html>

巴巴鲁 发表于 2021-9-2 11:14:38

<form action="/demo1/cookie_login.jsp" method="post">
提交表单的路径改为为demo1/cookielogin.jsp
0.前面没有/,
1.你确实没有cookie_login这个文件

张图南 发表于 2021-9-2 19:51:31

巴巴鲁 发表于 2021-9-2 11:14
提交表单的路径改为为demo1/cookielogin.jsp
0.前面没有/,
1.你确实没有cookie_login这个文件

那改了之后为什么按登录没有跳转至 cookiewelcome.jsp ?

张图南 发表于 2021-9-2 20:01:53

张图南 发表于 2021-9-2 19:51
那改了之后为什么按登录没有跳转至 cookiewelcome.jsp ?

重新尝试了一下,页面跳转了,但是Cookie 没有新增的内容
Cookie cookie = new Cookie("name",username);
            resp.addCookie(cookie);
这段代码没有执行,请问为什么会出现这种情况;

巴巴鲁 发表于 2021-9-2 20:43:13

张图南 发表于 2021-9-2 20:01
重新尝试了一下,页面跳转了,但是Cookie 没有新增的内容

这段代码没有执行,请问为什么会出现这种情 ...

按说不应该啊,请求头参数username和passowrd传给服务器了吗

张图南 发表于 2021-9-2 20:51:55

巴巴鲁 发表于 2021-9-2 20:43
按说不应该啊,请求头参数username和passowrd传给服务器了吗

username 和 password 都没有传给服务器,按F12看不到这两个参数

张图南 发表于 2021-9-2 20:56:00

巴巴鲁 发表于 2021-9-2 20:43
按说不应该啊,请求头参数username和passowrd传给服务器了吗

在末尾行打了断点后发现 username 和 password 都是有值的;但是Cookie还是没有新增内容;
String username = req.getParameter("username");
      String password = req.getParameter("password");
      int a = 1;

巴巴鲁 发表于 2021-9-2 21:31:57

张图南 发表于 2021-9-2 20:56
在末尾行打了断点后发现 username 和 password 都是有值的;但是Cookie还是没有新增内容;

方便把工程给我看看吗,真神奇
qq:3194244910
页: [1]
查看完整版本: Servlet无法重定向至想要的页面