首頁技術(shù)文章正文

Java培訓之response如何發(fā)送狀態(tài)碼

更新時間:2017-05-31 來源:黑馬程序員Java培訓學院 瀏覽量:

在上一節(jié)服務器如何處理客戶端請求中,我們了解,request對象中封裝了請求信息,使用response對象可以向客戶端響應消息。在Http協(xié)議詳解之響應中,我們知道響應首行信息中包含了響應狀態(tài)碼,而今天,我們要學習的就是如何使用response向客戶端發(fā)送狀態(tài)碼。
response對象的類型是HttpServletResponse。Servlet的生命周期方法之一service()方法,它的兩個參數(shù)的類型分別是ServletRequest和ServletResponse。其中HttpServletResponse和ServletResponse是子與父的關(guān)系,在HttpServlet類中,生命周期方法service()將它的參數(shù)都強轉(zhuǎn)成HttpServletRequest類型和HttpServletResponse 類型。
ServletRequest和ServletResponse是與協(xié)議無關(guān)的兩個接口,而HttpServletRequest和HttpServletResponse是與http協(xié)議有關(guān)的兩個接口。
下面我們來了解HttpServletResponse,首先查看該接口的API,如圖1-1所示:1554343398308_1496215203763022203.png圖1-1中,有三個方法被紅色標注,它們是發(fā)送狀態(tài)碼的相關(guān)方法,與Http協(xié)議相關(guān),因此該方法是在HttpServletResponse類中定義。
接下來對著三個方法進行分析,如下所示:
(1)void sendError(int sc)
  該方法是向客戶端發(fā)生錯誤的狀態(tài)碼,例如404、500等。
(2)void sendError(int sc,java.lang.String msg)
  該方法是向客戶端發(fā)送錯誤的狀態(tài)碼,并且添加錯誤信息,例如,404,您訪問的資源不存在。
(3)void setStatus(int sc)
  該方法是向客戶端發(fā)送成功的狀態(tài)碼,還可以用來發(fā)送302狀態(tài)碼。
下面我們來看一個案例,使用response向客戶端發(fā)送404狀態(tài)碼,具體如下:
(1)創(chuàng)建web應用,Example01,在該應用中新建一個Servlet類,StatusServlet,主要代碼如例1-1所示:
例1-1 StatusServlet.java
public class StatusServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)
           throws ServletException, IOException {
            response.sendError(404,"您訪問的資源不存在");
    }
}
(2)StatusServlet在web.xml文件中配置的訪問路徑是“/StatusServlet”;
(3)將Example10發(fā)布到Tomcat服務器中,然后啟動服務器,在瀏覽器地址欄上輸入:http://localhost:8080/Example01/StatusServlet,瀏覽器顯示結(jié)果如圖1-2所示:
1554343416997_1496215234343022701.png本文版權(quán)歸黑馬程序員Java培訓學院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!
作者:黑馬程序員Java培訓學院
首發(fā):http://javaee.itheima.com/
分享到:
在線咨詢 我要報名
和我們在線交談!