HttpServletResponse

咱們建立servlet的時會覆蓋service()方法,或doGet/doPost(),這些方法都有兩個參數,一個表明請求request一個表明響應reponse;設置響應狀態碼:response.setStatus(304);302:重定向;304:訪問緩存;404:地址錯誤;500:找不到服務器資源html

 

Servlet是服務器端程序,主要用來交互式地瀏覽和修改數據,生成動態web內容。web服務器接收到客戶端的Servlet請求後,若是檢查到已經裝載並建立了該Servlet的實例對象,則會建立一個用於封裝HTTP請求消息的HttpServletRequest對象和一個表明Http響應消息的HttpServletResponse對象,而後調用Servlet的service()方法,將請求和響應對象做爲參數傳遞進去,這樣客戶端經過HttpServletRequest對象將請求發送給服務器,服務器經過HttpServletResponse對象將響應傳遞給客戶端,達到通訊的目的。web

HttpServletResponse瀏覽器

 request是請求對象,而response是響應對象。緩存

 

1 HttpServletResponse功能介紹tomcat

response對象的功能分爲如下四種:服務器

 

設置響應頭信息;addHeader(「reFresh」, 「5;URL=xxxx」);ide

發送狀態碼;sendError(404);編碼

設置響應正文;getWriter().print(「fdsfdsa」);spa

重定向:sendRedirect(「path」);3d

 

 

2 設置狀態碼及其餘方法

response.setContentType("text/html;charset=utf-8"):設置響應類型爲html,編碼爲utf-8,處理相應頁面文本顯示的亂碼;

response.setCharacterEncoding(「utf-8」):若是響應類型爲文本,那麼就須要設置文本的編碼類型,而後瀏覽器使用這個編碼來解讀文本。注意,若是沒有設置contentType,那麼瀏覽器會認爲contentType爲text/html,若是沒設置編碼,那麼默認爲ISO-8859-1編碼。因此以上兩點在使用response返回結果以前必須設置。

response.setStatus(200):設置狀態碼;

response.sendError(404, 「您要查找的資源不存在」):當發送錯誤狀態碼時,Tomcat會跳轉到固定的錯誤頁面去,但能夠顯示錯誤信息。

 

 

3 設置響應頭信息

response.setHeader(「contentType」, 「text/html;charset=utf-8」):與setContentType()方法的功能相同。setContentType()方法屬於便捷方法;

刷新(定時重定向):

 

response.setHeader("Refresh","5; URL=http://www.baidu.com"):5秒後自動跳轉到百度主頁。

 

 

代碼

public class HelloServlet extends HttpServlet {

       protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

              //response不是服務器跳轉,須要使用絕對路徑         

              //給response設置編碼,若是響應類型爲文本,咱們須要設置響應編碼和文本編碼

              //設置響應類型和編碼response.setContentType("text/html;charset=UTF-8")

              //設置文本編碼response.setCharacterEncoding("UTF-8")

              response.setContentType("text/html;charset=UTF-8");

              response.setCharacterEncoding("UTF-8");           

              //設置響應正文

              response.getWriter().print("3秒後跳轉到註冊頁面");

              //3秒後跳轉到1.html頁面

              //response.setHeader("reFresh", "3;URL=/request_demo5/1.html");             

              //設置狀態碼,通常不須要咱們本身設置,這是由tomcat來分析的

              //response.setStatus(404);

              //response.setStatus(404, "頁面找不到");

              //response.sendError(500, "後臺錯誤");

              //重定向,又叫客服端跳轉,訪問百度,顯著特徵地址欄發生變化

              //注意request.getRequestDispatcher().forward(request,response)是服務端跳轉

              response.sendRedirect("http://www.baidu.com");       

              /**

               * forward和redirect的區別

               * forward:是服務器端的跳轉,地址欄不發生變化

               * redirect:是客服端的跳轉,地址欄發送變化

               */     

       @Override

       public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

              doGet(request, response);

       }    

}

 

 

 

 

 
 
相關文章
相關標籤/搜索