在 Java Servlet 中,“响应”通常指通过 HttpServletResponse 对象向客户端(浏览器、前端、其他系统)返回数据。下面从常见场景给你一个清晰说明。
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.setContentType("text/html;charset=UTF-8");
resp.getWriter().write("<h1>Hello Servlet</h1>");
}
}
✅ 关键点:
resp.getWriter():字符输出流setContentType:告诉浏览器返回什么类型resp.setContentType("application/json;charset=UTF-8");
resp.getWriter().write("{\"code\":200,\"msg\":\"success\"}");
实际开发中常用:
Map<String, Object> map = new HashMap<>();
map.put("code", 200);
map.put("msg", "ok");
new ObjectMapper().writeValue(resp.getWriter(), map);
resp.setStatus(HttpServletResponse.SC_OK); // 200
resp.sendError(404, "Not Found");
常见状态码:
resp.sendRedirect("index.jsp");
特点:
req.getRequestDispatcher("success.jsp").forward(req, resp);
特点:
resp.setHeader("Cache-Control", "no-cache");
resp.setHeader("Token", "abc123");
resp.setContentType("application/octet-stream");
resp.setHeader("Content-Disposition", "attachment;filename=test.txt");
OutputStream os = resp.getOutputStream();
os.write("Hello".getBytes());
os.flush();
| 方法 | 作用 |
|---|---|
getWriter() |
输出字符(HTML / JSON) |
getOutputStream() |
输出二进制(文件) |
setContentType() |
设置响应类型 |
setStatus() |
设置状态码 |
sendRedirect() |
重定向 |
setHeader() |
设置响应头 |
❌ 同时调用 getWriter() 和 getOutputStream()
❌ 忘记设置 charset=UTF-8(中文乱码)
❌ 在 forward 之后继续写响应
如果你愿意,我可以:
你可以直接说你用的是什么(原生 Servlet / Tomcat / Spring Boot)。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。