文章目錄
- 一、概念學習
- 1. GET vs POST 請求方式的區別
- 2. HttpServletRequest 獲取表單數據
- 二、代碼講解與練習
- 第 1 步:在 webapp 下創建 login.html
- 第 2 步:在 com.example 包下創建 LoginServlet
- 第 3 步:修改 web.xml 注冊 LoginServlet
- 第 4 步:部署與測試
一、概念學習
1. GET vs POST 請求方式的區別
比較項 | GET | POST |
---|---|---|
數據位置 | URL 中(如:?username=abc ) | 請求體中,瀏覽器不可見 |
安全性 | 較差(數據暴露在地址欄) | 較好(數據藏在請求體中) |
數據長度限制 | 有限制(通常 < 2KB) | 理論無限制 |
使用場景 | 查詢操作(如搜索) | 提交表單(如登錄、注冊) |
2. HttpServletRequest 獲取表單數據
方法 | 說明 |
---|---|
request.getParameter(name) | 獲取單個參數值,如用戶名 |
request.getParameterValues(name) | 獲取同名參數值數組,如 checkbox 多選 |
request.getParameterMap() | 獲取所有參數的 Map<參數名, String[]> |
request.getMethod() | 獲取請求方法,如 GET 或 POST |
二、代碼講解與練習
第 1 步:在 webapp 下創建 login.html
右鍵 webapp 文件夾 → New → HTML File → 命名為 login.html
輸入以下內容:
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>登錄頁面</title>
</head>
<body><h2>用戶登錄</h2><form action="login" method="post">用戶名:<input type="text" name="username"><br><br>密 碼:<input type="password" name="password"><br><br><input type="submit" value="登錄"></form>
</body>
</html>
示例:
第 2 步:在 com.example 包下創建 LoginServlet
右鍵 com.example → New → Java Class → 命名為 LoginServlet
替換內容為:
package com.example;import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;import java.io.IOException;
import java.io.PrintWriter;public class LoginServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=UTF-8");String username = request.getParameter("username");String password = request.getParameter("password");PrintWriter out = response.getWriter();if ("admin".equals(username) && "123456".equals(password)) {out.println("<h3>登錄成功,歡迎 " + username + "!</h3>");} else {out.println("<h3>用戶名或密碼錯誤!</h3>");}}
}
示例:
第 3 步:修改 web.xml 注冊 LoginServlet
打開 web.xml 文件,在 標簽中添加:
<servlet><servlet-name>LoginServlet</servlet-name><servlet-class>com.example.LoginServlet</servlet-class>
</servlet><servlet-mapping><servlet-name>LoginServlet</servlet-name><url-pattern>/login</url-pattern>
</servlet-mapping>
示例:
第 4 步:部署與測試
編譯項目(mvn package 或點擊IDEA右側 Maven 工具中的 package);
啟動 Tomcat
瀏覽器訪問:
http://localhost:8080/javaweb/login.html
(假設你的項目名是 javaweb,請根據實際路徑調整)
輸入用戶名:admin,密碼:123456
? 顯示 “登錄成功,歡迎 admin!”
? 否則顯示 “用戶名或密碼錯誤!”
運行成功示例: