<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] # HttpServletResponse概述 doGet()/doPost(),這些方法都有兩個參數,一個為代表請求的request和代表響應response。 service方法中的response的類型是ServletResponse,而doGet/doPost方法的response的類型是HttpServletResponse,HttpServletResponse是ServletResponse的子接口,功能和方法更加強大,今天我們學習HttpServletResponse。 # 設置響應行 設置響應行的狀態碼 ~~~ setStatus(int sc) ~~~ # 設置響應頭 ~~~ addHeader(String name, String value) addIntHeader(String name, int value) addDateHeader(String name, long date) setHeader(String name, String value) setDateHeader(String name, long date) setIntHeader(String name, int value) ~~~ 其中,add表示添加,而set表示設置 # 設置響應體 (1)**響應體設置文本** ~~~ PrintWriter getWriter() ~~~ 獲得字符流,通過字符流的write(String s)方法可以將字符串設置到response 緩沖區中,隨后Tomcat會將response緩沖區中的內容組裝成Http響應返回給瀏覽器端。 關于設置中文的亂碼問題 原因:response緩沖區的默認編碼是iso8859-1,此碼表中沒有中文,可以通過 response的 設置response的編碼 ~~~ setCharacterEncoding(String charset) ~~~ 但我們發現客戶端還是不能正常顯示文字 原因:我們將response緩沖區的編碼設置成UTF-8,但瀏覽器的默認編碼是本地系 統的編碼,因為我們都是中文系統,所以客戶端瀏覽器的默認編碼是GBK,我們可以 手動修改瀏覽器的編碼是UTF-8。 我們還可以在代碼中指定瀏覽器解析頁面的編碼方式, 通過response的setContentType(String type)方法指定頁面解析時的編碼是UTF-8 ~~~ response.setContentType("text/html;charset=UTF-8"); ~~~ 上面的代碼不僅可以指定瀏覽器解析頁面時的編碼,同時也內含 setCharacterEncoding的功能,所以在實際開發中只要編寫 response.setContentType("text/html;charset=UTF-8");就可以解決頁面輸出中文亂碼問題。 (2)**響應頭設置字節** ~~~ ServletOutputStream getOutputStream() ~~~ 獲得字節流,通過該字節流的write(byte[] bytes)可以向response緩沖區中寫入字節,在由Tomcat服務器將字節內容組成Http響應返回給瀏覽器。 # 文件下載 文件下載的實質就是文件拷貝,將文件從服務器端拷貝到瀏覽器端。所以文件下載需 要IO技術將服務器端的文件使用InputStream讀取到,在使用 ServletOutputStream寫到response緩沖區中 ![](https://box.kancloud.cn/46669cfab55fb5229147b4bff975b8e6_431x205.png) 上述代碼可以將圖片從服務器端傳輸到瀏覽器,但瀏覽器直接解析圖片顯示在頁面上, 而不是提供下載,我們需要設置兩個響應頭,告知瀏覽器文件的類型和文件的打開方 式。 1)告知瀏覽器文件的類型:response.setContentType(文件的MIME類型); 2)告示瀏覽器文件的打開方式是下載: response.setHeader("Content-Disposition","attachment;filename=文件名稱"); ![](https://box.kancloud.cn/cd0fc6747e5bdcd1df50ad8ea3c4947b_453x255.png) 但是,如果下載中文文件,頁面在下載時會出現中文亂碼或不能顯示文件名的情況, 原因是不同的瀏覽器默認對下載文件的編碼方式不同,ie是UTF-8編碼方式,而火狐 瀏覽器是Base64編碼方式。所里這里需要解決瀏覽器兼容性問題,解決瀏覽器兼容 性問題的首要任務是要辨別訪問者是ie還是火狐(其他),通過Http請求體中的一 個屬性可以辨別 ![](https://box.kancloud.cn/b9b2d0b01d427d491217e632f09cf246_439x30.png) 解決亂碼方法如下: ~~~ if (agent.contains("MSIE")) { // IE瀏覽器 filename = URLEncoder.encode(filename, "utf-8"); filename = filename.replace("+", " "); } else if (agent.contains("Firefox")) { // 火狐瀏覽器 BASE64Encoder base64Encoder = new BASE64Encoder(); filename = "=?utf-8?B?" + base64Encoder.encode(filename.getBytes("utf-8")) + "?="; } else { // 其它瀏覽器 filename = URLEncoder.encode(filename, "utf-8"); } ~~~ 其中agent就是請求頭User-Agent的值 ![](https://box.kancloud.cn/d2eee56ec5aed2514af4bf16992ed47a_484x298.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看