(重點)JavaWeb(入門篇10)Response重定向實現登錄項目

在這裏插入圖片描述
備註:定向路徑參考request模塊代碼,

1.實現功能

模擬一個登陸頁面,實現登錄成功跳轉(重定向),
登錄失敗返回頁面並提示錯誤信息的功能

2.核心代碼

1.表單form 的action到/Login映射

<form action="<%=request.getContextPath()%>/Login" method="post">

Login
(1)重定向

resp.sendRedirect("loginSuccess.jsp?username="+username);

(2)返回原頁面

req.setAttribute("message","賬號或者密碼錯誤請重新登錄");
req.getRequestDispatcher("index.jsp").forward(req,resp);

3. 實現代碼框架

  • index.jsp初始的默認jsp登錄頁面
  • loginSuccess.jsp登錄成功後的頁面
  • Login.java 登錄是否成功的邏輯代碼和重定向實現
    在這裏插入圖片描述

4.實現代碼

  1. 登錄界面index.jsp
<!-- 解決中文亂碼問題 -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <h1>登錄界面</h1>
    <!-- war裏面就是打包的項目所有文件,所以先找打war包的地址然後再訪問映射 -->
    <form action="<%=request.getContextPath()%>/Login" method="post">
        賬號<input type="text" name="username"><br>
        密碼<input type="password" name="password"><br>
        <input type="submit" value="提交">
    </form>
    <h2>
        <%
            //爲什麼使用request.getAttribute()?應爲Login.java 設置的是Attribute
            if (request.getAttribute("message")!=null){
                out.print(request.getAttribute("message"));
            }
        %>
    </h2>
</html>
  1. Login.java
package com.bmft;

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

public class Login extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("成功收到請求");
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        //等於和equals的區別
        if (username.equals("root") && password.equals("123456")){
            resp.sendRedirect(req.getContextPath()+"/loginSuccess.jsp?username="+username);
            System.out.println("登錄成功:"+username);
        }
        else {
            req.setAttribute("message","賬號或者密碼錯誤,請重新輸入");
            //這個代碼什麼鬼(作用是返回到index.jsp頁面.)
            req.getRequestDispatcher("/index.jsp").forward(req,resp);
            System.out.println("失敗:"+username);
        }
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }

}

2.登錄成功的loginSuccess.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>loginSuccess</title>
</head>
<body>
    <h1>Login Success!登錄成功!</h1>
    <h2>
        <%
            out.print("用戶:"+request.getParameter("username"));
        %>
    </h2>

</body>
</html>

5.頁面展示

1.登錄頁面index.jsp
在這裏插入圖片描述
2.登錄失敗後
在這裏插入圖片描述
3.登錄成功後的loginSuccess.jsp
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章