javaWeb的Response和Request基礎
1 Response
a 發送錯誤響應
.sentError() //有一個參數的和2個參數的
b 設置響應頭
.setHeader(String name,String value) //還有好幾個,這裏只介紹一個
響應重定向:302過程?
// 302 The first one // response.setStatus(302); // response.setHeader("Location",request.getContextPath()+"/index.jsp"); // 302 The Second response.sendRedirect("/pra/index.jsp");
響應定時刷新指定頁面(相當於定時重定向):
// Regularly updated response.setHeader("Refresh", "5;url="+request.getContextPath()+"/index.jsp");
c 響應體的字節流/字符流
d request的域屬性 其與session和application並稱為三大域,每一個域都有自己的setAttribute() getAttribute() removeAttribute()的方法
e 響應編碼
服務器在發送時要設置 setCharacterEncording("utf-8") 和 setContentType("text/html;characster=utf-8")
這樣瀏覽器(客戶端)在獲取後才能正常編碼
2 Request
a 獲取IP/request Method/瀏覽器的種類(識別用戶)/Refer 防盜鏈
// 獲取主機名等東西 // System.out.println(request.getRemoteAddr()); // System.out.println(request.getMethod()); // System.out.println(request.getLocalAddr()); // System.out.println(request.getHeader("User-Agent"));// System.out.println(request.getHeader("Refer"));
b 獲取URL的相關方法
c 請求參數 不論get還是post都可以獲取請求參數的
GET中:參數在url之後
http://localhost:8080/pra/Aservlet?one=123&two=3213 //參數和url之間用 ? 連接,參數之間用 & 連接,參數名與值之間用 = 連接
POST中:參數在請求體中
d forward/include 請求轉發過程?
forward:只保留前一個Servlet的頭信息,不保留其體,第一個的請求體不能太大
includ中:既保留前一個servlet的header,有保留其 體
forwark/include 和 重定向的關系?
重定向:在不同請求中,可能會改變servlet(request和response)
forward/include:在同一請求中,request和response對象不會改變
f 請求編碼
? 在頁面提交表單時,如果你的頁面是utf-8類型的,那麽你傳遞的參數就是utf-8類型的
? POST請求:setCharacterEncording("utf-8") 和 setContentType("text/html;characster=utf-8")
? GET請求:我們運用java的字符串自己搞吧
javaWeb的Response和Request基礎