12-碼蟻JavaWeb之Response

一、response響應過程

牢記響應的流程圖

在去發送一個請求時,
會找到tomcat引擎
引擎會找到對應的web應用
並且會創建request對象
和response對象

找到應用後, 
會執行應用的web.xml
再去根據url-patten的內容
創建Servlet對象

並且會調用Servlet對象的service方法,
並且把創建的request對象和response對象
傳入到方法當中

拿到response對象後,
自己可以往響應當中
寫入一些自己給客戶端的內容

通過response.getwrite().wirte("寫的內容")
方法進行寫入
寫的內容,
是存到一個response緩衝區當中
當方法執行結束之後,
 tomcat就會從response緩衝區
當中取出數據
取出你的數據同時,

它自己還會自動的往裏面
添加一些服務器相關的信息進去
所以響應給瀏覽器時, 
可以看到除了自己寫的內容, 
還會有一些服務器相關的信息
image.png

二、學習響應

通過response設置響應行,響應頭 ,響應體

設置響應行

response.setState(Int code)

設置響應頭

add代表添加新的內容
addHeader(String name,String value)
addIntHeader(String name,int value)
addDateHeader(String name,date)

set代表設置,已經存在的內容
setHeader(String name,String value)
setIntHeader(String name,int value)
setDateHeader(String name,Date value)

重定向

1.什麼是重定向?
2.重定向的狀態碼?
3.重定向特點?
4.定時刷新重定向

什麼是重定向
    到服務器當中去找servlet1
    servlet1當中沒有這個資源,告訴你去找servlet2
    再去發送一個請求到servlet2
狀態碼
    302
特點
    要訪問兩次服務器
    第一次訪問是人爲的去訪問
    第二次是自動的訪問
    瀏覽器地址欄已經發生變化
設置重定向
    設置響應碼
    設置響應頭
        
封裝的重寫向
    每次都要寫狀態碼,和location比較麻煩
    就給封裝了一個方法
    response.sendRedirect("/bei/servlet2")
            
定時刷新重定向
    response.setHeader("refresh","5;url=http://www.baidu.com")
    5代表5秒
    url的值爲5秒後要去跳轉的地址

設置響應體

1.通過write方法來寫
2.通過OutPutStream來寫

1.通過write方法來寫
response.getwrite().wirte(“要寫的內容”)
默認情況下寫的中文內容會亂碼
    把寫的內容存到緩存區中使用的是ISO8859
    ISO8859不支持中文,所以會亂碼
在存之前設置可以設置存放的編碼
    response.setCharacterEncoding("UTF-8")
告知瀏覽器使用的是utf-8編碼
    response.setHeader("Content-Type", "text/html;charset=UTF-8");
        
上面代碼只需要寫第二句就行, 
tomcat看到設置了爲utf-8的編碼,
它在存在的時候也會使用utf-8的編碼
使用封裝寫法
    response.setContentType("text/html;charset=UTF-8");

2.通過OutPutStream來寫
    FileInputSteam
    read方法讀取一個字節
    read(byte[] b)
    一次讀取多個字節,並存放到數組b中
    上面是一次一滴一滴給你,這種是一次裝一水桶再給你
    讀取全部的數據

    FileOutputSteam
    write()
    一次性寫一個字符
    write(buffer)
    一個性寫多個字符
    write(buffer,0,len)
    一次性寫指定個數的字符
response注意點
    getWrite()和getOutputSteam不能同時調用

image.png

博文全套 視頻講解 點擊以下鏈接查看
https://study.163.com/course/courseMain.htm?courseId=1005981003&share=2&shareId=1028240359

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章