在 Java Web 开发中,Servlet 请求的处理通常包括:接收请求、解析参数、业务逻辑处理、生成响应。下面从整体流程到常见处理方式系统说明。
url-pattern 找到对应 Servletservice() → doGet() / doPost()response 输出 HTML / JSON / 文件等public class UserServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// 处理 GET 请求
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// 处理 POST 请求
}
}
HttpServletRequest:封装请求
HttpServletResponse:封装响应
String name = req.getParameter("username");
String age = req.getParameter("age");
String[] hobbies = req.getParameterValues("hobby");
String ua = req.getHeader("User-Agent");
doGet(req, resp);
req.setCharacterEncoding("UTF-8");
String data = req.getParameter("data");
req.getRequestDispatcher("/success.jsp")
.forward(req, resp);
✅ 地址栏不变
✅ 可共享 request 数据
resp.sendRedirect("login.jsp");
✅ 地址栏改变
❌ 不共享 request
resp.setContentType("text/html;charset=UTF-8");
resp.getWriter().write("<h1>Hello</h1>");
resp.setContentType("application/json;charset=UTF-8");
resp.getWriter().write("{\"code\":200}");
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");
if ("login".equals(action)) {
// 登录逻辑
}
✅ 不要在 Servlet 中写大量业务逻辑
✅ 使用 Service 层解耦
✅ 注意线程安全(Servlet 是单例)
✅ POST 必须设置编码
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.setContentType("text/html;charset=UTF-8");
resp.getWriter().write("Hello Servlet");
}
}
如果你愿意,我可以:
你更想了解哪一种?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。