# 基础写法
# 项目结构
请求写法:
package com.xxx.pms.servlet;
import com.fasterxml.jackson.databind.ObjectMapper;
import javax.servlet.RequestDispatcher;
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;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
@WebServlet("/login")
public class ServletTest extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException {
// 假设这是要转换成 JSON 的数据对象
// Map<String, Object> data = new HashMap<>();
// data.put("key1", "value1");
// data.put("key2", "value2");
//
// // 转换成 JSON 格式
// ObjectMapper objectMapper = new ObjectMapper();
// String jsonData = objectMapper.writeValueAsString(data);
//
// // 设置响应内容类型为 JSON
// response.setContentType("application/json");
// response.setCharacterEncoding("UTF-8");
//
// // 将 JSON 数据写入响应
// PrintWriter out = response.getWriter();
// out.print(jsonData);
// out.flush();
req.setAttribute("msg", "hahhaahh");
RequestDispatcher dispatcher = req.getRequestDispatcher("pages/players.jsp");
dispatcher.forward(req,response);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 获取用户名和密码参数
String username = req.getParameter("username");
String password = req.getParameter("password");
// 在控制台打印获取到的用户名和密码
System.out.println("Username: " + username);
System.out.println("Password: " + password);
// 可以在这里进行后续的处理,比如验证用户输入的用户名密码是否正确等
}
}
# 数据传值不回显?
确保el表达式生效
检查依赖:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
在jsp页面的文件头加上:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page isELIgnored="false" %>
servlet传值:
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 要修改的玩家id
String id = req.getParameter("id");
try {
Player player = new Player();
ResultSet set = playerDao.query("select * from player where id=?", new Object[]{id});
if (set.next()) {
player.setId(set.getString(1));
player.setName(set.getString(2));
player.setAge(set.getInt(3));
}
req.setAttribute("player", player);
RequestDispatcher dispatcher = req.getRequestDispatcher("pages/player_update.jsp");
dispatcher.forward(req, resp);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
jsp页面:
<form action="/player_update" method="post">
<label for="name" class="form-label">姓名:</label>
<input required type="text" class="form-control" name="name" id="name"
aria-describedby="helpId" placeholder="请输入姓名..." value="${player.getName()}" />
<label for="age" class="form-label">年龄:</label>
<input required type="text" class="form-control" name="age" id="age"
aria-describedby="helpId" placeholder="请输入年龄..." value="${player.getAge()}" />
<hr>
<a href="/promoter">返回</a>
<button type="reset" class="btn btn-light">重置</button>
<button type="submit" class="btn btn-primary">提交</button>
</form>
接收jsp页面的数据时乱码?
技巧:在获取数据前:req.setCharacterEncoding("UTF-8");
实操案例 →