在 Java Servlet 中,接收并处理请求主要通过 HttpServletRequest 对象完成。Servlet 本身是一个运行在服务器中的 Java 类,由容器(如 Tomcat)调用。
下面从 基本流程 → 接收参数 → 常见请求方式 → 示例 来说明。
url-pattern 找到对应的 ServletHttpServletRequest 和 HttpServletResponsedoGet() / doPost() 等方法request 对象获取数据public class DemoServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 处理 GET 请求
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 处理 POST 请求
}
}
前端请求
http://localhost:8080/demo?name=Tom&age=18
Servlet 接收
String name = request.getParameter("name");
String age = request.getParameter("age");
⚠️ 注意:
getParameter() 返回的是 Stringnull<input type="checkbox" name="hobby" value="篮球">
<input type="checkbox" name="hobby" value="足球">
String[] hobbies = request.getParameterValues("hobby");
<form method="post" action="/demo">
用户名:<input name="username">
密码:<input name="password">
</form>
String username = request.getParameter("username");
String password = request.getParameter("password");
request.getMethod(); // GET / POST
request.getRequestURI(); // /demo
request.getQueryString(); // name=Tom&age=18
request.getHeader("User-Agent");
request.setCharacterEncoding("UTF-8");
✅ 一般在 doPost() 第一行写
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
req.setCharacterEncoding("UTF-8");
String username = req.getParameter("username");
String password = req.getParameter("password");
resp.setContentType("text/html;charset=UTF-8");
resp.getWriter().write("用户名:" + username);
}
}
❌ 在 doGet 里处理 POST 表单
❌ 忘记设置编码导致乱码
❌ 把 request 当成全局变量保存数据
如果你愿意,我也可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。