为了给用户一个返回数据,我们需要使用HttpServletResponse
从相应对象获取一个输入流
通过输入流将返回结果写入到响应体中
关闭输入流
public class ResponseServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String result = "Hello Java"; PrintWriter out = resp.getWriter(); out.println(result); out.close(); } }
中文会乱码
还是因为默认的响应体编码是 ISO的
需要指定编码
resp.setCharacterEncoding("utf-8");
还可以指定ContentType。
resp.setContentType("text/html;charset=utf-8");
Cookie
Cookie ck = new Cookie("key", "value"); resp.addCookie(ck);
读取cookie
Cookie[] cookies = req.getCookies();
不好的是要获取key就只能循环出来,不能单独读取。后续学到了再来做补充。
Session
通过在cookie中存一个session_id来确认用户身份。
session创建方法
HttpSession hs = req.getSession(); HttpSession hs = req.getSession(false); HttpSession hs = req.getSession(true);
getSession() 已有session则返回现有session,否则创建返回
getSession(true) 同上
getSession(false) 已有session则返回现有session,否则返回空
session保存数据
hs.setAttribute("key","value");
hs.getAttribute("key");
设置session的空闲时间
1)Tomcat中配置
<session-config> <session-timeout>1</session-timeout> </session-config><!-- 单位分钟 --!>
2)Servlet中配置
hs.setMaxInactiveInterval(120); #单位秒
//todo