1.HTTP協議包含請求和響應部分:
HttpServletRequest就代表着請求部分:
代表客戶端的請求,客戶端通過HTTP訪問服務器,HTTP請求頭中的所有信息封裝在裏面,開發人員通過這個對象的方法獲得客戶信息。
HttpServletResponse就代表着響應部分:
代表服務器響應,HttpServletResponse對象可以向客戶端發送三種類型的數據:a.響應頭b.狀態碼c.數據
2.response字符流輸出中文數據:(string)
運用:response.getWriter();
response.setContentType("text/html;charset=utf-8");//更改Servlet默認的字符編碼,通知瀏覽器使用utf-8字符編碼(用這個就夠了)
PrintWriter out = response.getWriter();
out.write("你好!");
3.response字節流輸出中文數據:(int)
運用: response.getOutputStream();
ServletOutputStream out1 = response.getOutputStream();
out1.write(s.getBytes());
out1.write(98);
4.response定時刷新:
response.setHeader("Refresh", "2;URL=/04dssxDemo/index.jsp");//2秒刷新到index.jsp
5.response控制緩存:
response.setDateHeader("Expires",System.currrntTimeMillis()+60*60*1000);
response.getWriter().writer("hello");
6.response請求重定向:
//請求重定向
response.setStatus(302);
response.setHeader("Location", "/05kzhcDemo/index.jsp");
<!------------------------------------------------------->
response.sendRedirect("/05kzhcDemo/index.jsp");//作用同上,一般用這個
7.HttpServletResponse細節:
a.字節流和字符流不能同時使用,互斥的。
b.通過字符流或字節流輸出的數據並不是直接打給瀏覽器的。而是把數據寫到response對象的緩存中的。服務器從緩存中取出數據,按照HTTP協議的響應格式輸出給瀏覽器。
c.如果你調用的response的輸出流沒有主動關閉,服務器會替你關的。