文章目录
- 一、概念学习
-
- [1. GET vs POST 请求方式的区别](#1. GET vs POST 请求方式的区别)
- [2. HttpServletRequest 获取表单数据](#2. HttpServletRequest 获取表单数据)
- 二、代码讲解与练习
-
- [第 1 步:在 webapp 下创建 login.html](#第 1 步:在 webapp 下创建 login.html)
- [第 2 步:在 com.example 包下创建 LoginServlet](#第 2 步:在 com.example 包下创建 LoginServlet)
- [第 3 步:修改 web.xml 注册 LoginServlet](#第 3 步:修改 web.xml 注册 LoginServlet)
- [第 4 步:部署与测试](#第 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
输入以下内容:
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
替换内容为:
java
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 {
@Override
protected 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 文件,在 标签中添加:
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!"
➤ 否则显示 "用户名或密码错误!"
运行成功示例: