大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Servlet教程

Servlet服務器HTTP響應

正如前面的章節中討論的那樣,當一個 Web 服務器響應一個 HTTP 請求時,響應通常包括一個狀態行、一些響應報頭、一個空行和文檔。一個典型的響應如下所示:

HTTP/1.1 200 OK
Content-Type: text/html
Header2: ...
...
HeaderN: ...
  (Blank Line)
<!doctype ...>
<html>
<head>...</head>
<body>
...
</body>
</html>

狀態行包括 HTTP 版本(在本例中為 HTTP/1.1)、一個狀態碼(在本例中為 200)和一個對應于狀態碼的短消息(在本例中為 OK)。

下表總結了從 Web 服務器端返回到瀏覽器的最有用的 HTTP 1.1 響應報頭,您會在 Web 編程中頻繁地使用它們:

頭信息

描述

Allow

這個頭信息指定服務器支持的請求方法(GET、POST 等)。

Cache-Control

這個頭信息指定響應文檔在何種情況下可以安全地緩存。可能的值有:public、private 或 no-cache 等。Public 意味著文檔是可緩存,Private 意味著文檔是單個用戶私用文檔,且只能存儲在私有(非共享)緩存中,no-cache 意味著文檔不應被緩存。

Connection

這個頭信息指示瀏覽器是否使用持久 HTTP 連接。值 close 指示瀏覽器不使用持久 HTTP 連接,值 keep-alive 意味著使用持久連接。

Content-Disposition

這個頭信息可以讓您請求瀏覽器要求用戶以給定名稱的文件把響應保存到磁盤。

Content-Encoding

在傳輸過程中,這個頭信息指定頁面的編碼方式。

Content-Language

這個頭信息表示文檔編寫所使用的語言。例如,en、en-us、ru 等。

Content-Length

這個頭信息指示響應中的字節數。只有當瀏覽器使用持久(keep-alive)HTTP 連接時才需要這些信息。

Content-Type

這個頭信息提供了響應文檔的 MIME(Multipurpose Internet Mail Extension)類型。

Expires

這個頭信息指定內容過期的時間,在這之后內容不再被緩存。

Last-Modified

這個頭信息指示文檔的最后修改時間。然后,客戶端可以緩存文件,并在以后的請求中通過 If-Modified-Since 請求頭信息提供一個日期。

Location

這個頭信息應被包含在所有的帶有狀態碼的響應中。在 300s 內,這會通知瀏覽器文檔的地址。瀏覽器會自動重新連接到這個位置,并獲取新的文檔。

Refresh

這個頭信息指定瀏覽器應該如何盡快請求更新的頁面。您可以指定頁面刷新的秒數。

Retry-After

這個頭信息可以與 503(Service Unavailable 服務不可用)響應配合使用,這會告訴客戶端多久就可以重復它的請求。

Set-Cookie

這個頭信息指定一個與頁面關聯的 cookie。

設置 HTTP 響應報頭的方法

下面的方法可用于在 Servlet 程序中設置 HTTP 響應報頭。這些方法通過 HttpServletResponse 對象可用。

序5

方法 & 描述

1

String encodeRedirectURL(String url)

為 sendRedirect 方法中使用的指定的 URL 進行編碼,或者如果編碼不是必需的,則返回 URL 未改變。

2

String encodeURL(String url)

對包含 session 會話 ID 的指定 URL 進行編碼,或者如果編碼不是必需的,則返回 URL 未改變。

3

boolean containsHeader(String name)

返回一個布爾值,指示是否已經設置已命名的響應報頭。

4

boolean isCommitted()

返回一個布爾值,指示響應是否已經提交。

5

void addCookie(Cookie cookie)

把指定的 cookie 添加到響應。

6

void addDateHeader(String name, long date)

添加一個帶有給定的名稱和日期值的響應報頭。

7

void addHeader(String name, String value)

添加一個帶有給定的名稱和值的響應報頭。

8

void addIntHeader(String name, int value)

添加一個帶有給定的名稱和整數值的響應報頭。

9

void flushBuffer()

強制任何在緩沖區中的內容被寫入到客戶端。

10

void reset()

清除緩沖區中存在的任何數據,包括狀態碼和頭。

11

void resetBuffer()

清除響應中基礎緩沖區的內容,不清除狀態碼和頭。

12

void sendError(int sc)

使用指定的狀態碼發送錯誤響應到客戶端,并清除緩沖區。

13

void sendError(int sc, String msg)

使用指定的狀態發送錯誤響應到客戶端。

14

void sendRedirect(String location)

使用指定的重定向位置 URL 發送臨時重定向響應到客戶端。

15

void setBufferSize(int size)

為響應主體設置首選的緩沖區大小。

16

void setCharacterEncoding(String charset)

設置被發送到客戶端的響應的字符編碼(MIME 字符集)例如,UTF-8。

17

void setContentLength(int len)

設置在 HTTP Servlet 響應中的內容主體的長度,該方法設置 HTTP Content-Length 頭。

18

void setContentType(String type)

如果響應還未被提交,設置被發送到客戶端的響應的內容類型。

19

void setDateHeader(String name, long date)

設置一個帶有給定的名稱和日期值的響應報頭。

20

void setHeader(String name, String value)

設置一個帶有給定的名稱和值的響應報頭。

21

void setIntHeader(String name, int value)

設置一個帶有給定的名稱和整數值的響應報頭。

22

void setLocale(Locale loc)

如果響應還未被提交,設置響應的區域。

23

void setStatus(int sc)

為該響應設置狀態碼。

HTTP Header 響應實例

您已經在前面的實例中看到 setContentType() 方法,下面的實例也使用了同樣的方法,此外,我們會用 setIntHeader() 方法來設置 Refresh 頭。

// 導入必需的 java 庫
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
 
// 擴展 HttpServlet 類
public class Refresh extends HttpServlet {
 
  // 處理 GET 方法請求的方法
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // 設置刷新自動加載時間為 5 秒
      response.setIntHeader("Refresh", 5);
 
      // 設置響應內容類型
      response.setContentType("text/html");
 
      // Get current time
      Calendar calendar = new GregorianCalendar();
      String am_pm;
      int hour = calendar.get(Calendar.HOUR);
      int minute = calendar.get(Calendar.MINUTE);
      int second = calendar.get(Calendar.SECOND);
      if(calendar.get(Calendar.AM_PM) == 0)
        am_pm = "AM";
      else
        am_pm = "PM";
 
      String CT = hour+":"+ minute +":"+ second +" "+ am_pm;
    
      PrintWriter out = response.getWriter();
      String title = "自動刷新 Header 設置";
      String docType =
      "<!doctype html public \"-//bjpowernode//dtd html 4.0 " +       "transitional//en\">\n";
      out.println(docType +
        "<html>\n" +
        "<head><title>" + title + "</title></head>\n"+
        "<body bgcolor=\"#f0f0f0\">\n" +
        "<h1 align=\"center\">" + title + "</h1>\n" +
        "<p>當前時間是:" + CT + "</p>\n");
  }
  // 處理 POST 方法請求的方法
  public void doPost(HttpServletRequest request,
                     HttpServletResponse response)
      throws ServletException, IOException {
     doGet(request, response);
  }
}

現在,調用上面的 Servlet,每隔 5 秒會顯示當前系統時間。只要運行 Servlet 并稍等片刻,即可看到如下的結果:

自動刷新 Header 設置
當前時間是:9:44:50 PM

 

全部教程
主站蜘蛛池模板: 久久久久久国产精品免费免 | 午夜主播国产福利视频在线 | 九九re | 国产2021久久精品 | 国产精品柳州莫菁身材四 | 亚洲精品网址 | 免费看日韩欧美一级毛片 | 国产精品久久亚洲不卡4k岛国 | 2021最新国产成人精品视频 | 日韩一区二区不卡 | 亚洲人成网站色7799在线观看 | 国产一区三区二区中文在线 | 国产精品国产三级国产a | 国产在线精品福利大全 | 好吊色青青青国产欧美日韩 | 成人人观看的免费毛片 | www久久只有这里有精品 | 在线 v亚洲 v欧美v 专区 | 色噜噜狠狠一区二区三区 | 日本操比| 99免费| 毛片一区 | 黄视频福利 | 久久国产精品夜色 | 国产成人精品三级91在线影院 | 97在线视频免费观看 | 伊人成年综合网 | 免费久福利视频在线观看 | 日日噜噜夜夜狠狠视频buoke | 国产久草视频 | 九九精品99久久久香蕉 | 四虎网站最新地址 | 国产一级特黄aaa大片 | 久久香蕉国产线看观看8青草 | 欧美日韩中文字幕在线手机版本 | 国产精品久久久久a影院 | 国产精品国色综合久久 | 国产色视频一区 | 人做人爱视频欧美在线观看 | 国产二区三区毛片 | 一级毛片不收费 |