Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国产刚刚发育被强j在线播放,亚洲欧美日韩中文字幕在线一区 ,天天干天天操天天射

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          JSP 服務器響應

          Response響應對象主要將JSP容器處理后的結果傳回到客戶端。可以通過response變量設置HTTP的狀態和向客戶端發送數據,如Cookie、HTTP文件頭信息等。

          一個典型的響應看起來就像下面這樣:

          HTTP/1.1 200 OK

          Content-Type: text/html

          Header2: ...

          ...

          HeaderN: ...

          (空行)

          <!doctype ...>

          <html>

          <head>...</head>

          <body>

          ...

          </body>

          </html>

          狀態行包含HTTP版本信息,比如HTTP/1.1,一個狀態碼,比如200,還有一個非常短的信息對應著狀態碼,比如OK。

          下表摘要出了HTTP1.1響應頭中最有用的部分,在網絡編程中您將會經常見到它們:

          響應頭描述
          Allow指定服務器支持的request方法(GET,POST等等)
          Cache-Control指定響應文檔能夠被安全緩存的情況。通常取值為 public,privateno-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類型
          Expires指明啥時候過期并從緩存中移除
          Last-Modified指明文檔最后修改時間??蛻舳丝梢?緩存文檔并且在后續的請求中提供一個 If-Modified-Since請求頭
          Location在300秒內,包含所有的有一個狀態碼的響應地址,瀏覽器會自動重連然后檢索新文檔
          Refresh指明瀏覽器每隔多久請求更新一次頁面。
          Retry-After與503 (Service Unavailable)一起使用來告訴用戶多久后請求將會得到響應
          Set-Cookie指明當前頁面對應的cookie

          HttpServletResponse類

          response 對象是 javax.servlet.http.HttpServletResponse 類的一個實例。就像服務器會創建request對象一樣,它也會創建一個客戶端響應。

          response對象定義了處理創建HTTP信息頭的接口。通過使用這個對象,開發者們可以添加新的cookie或時間戳,還有HTTP狀態碼等等。

          下表列出了用來設置HTTP響應頭的方法,這些方法由HttpServletResponse 類提供:

          S.N.方法 & 描述
          1String encodeRedirectURL(String url)對sendRedirect()方法使用的URL進行編碼
          2String encodeURL(String url)將URL編碼,回傳包含Session ID的URL
          3boolean containsHeader(String name)返回指定的響應頭是否存在
          4boolean isCommitted()返回響應是否已經提交到客戶端
          5void addCookie(Cookie cookie)添加指定的cookie至響應中
          6void addDateHeader(String name, long date)添加指定名稱的響應頭和日期值
          7void addHeader(String name, String value)添加指定名稱的響應頭和值
          8void addIntHeader(String name, int value)添加指定名稱的響應頭和int值
          9void flushBuffer()將任何緩存中的內容寫入客戶端
          10void reset()清除任何緩存中的任何數據,包括狀態碼和各種響應頭
          11void resetBuffer()清除基本的緩存數據,不包括響應頭和狀態碼
          12void sendError(int sc)使用指定的狀態碼向客戶端發送一個出錯響應,然后清除緩存
          13void sendError(int sc, String msg)使用指定的狀態碼和消息向客戶端發送一個出錯響應
          14void sendRedirect(String location)使用指定的URL向客戶端發送一個臨時的間接響應
          15void setBufferSize(int size)設置響應體的緩存區大小
          16void setCharacterEncoding(String charset)指定響應的編碼集(MIME字符集),例如UTF-8
          17void setContentLength(int len)指定HTTP servlets中響應的內容的長度,此方法用來設置 HTTP Content-Length 信息頭
          18void setContentType(String type)設置響應的內容的類型,如果響應還未被提交的話
          19void setDateHeader(String name, long date)使用指定名稱和值設置響應頭的名稱和內容
          20void setHeader(String name, String value)使用指定名稱和值設置響應頭的名稱和內容
          21void setIntHeader(String name, int value)使用指定名稱和值設置響應頭的名稱和內容
          22void setLocale(Locale loc)設置響應的語言環境,如果響應尚未被提交的話
          23void setStatus(int sc)設置響應的狀態碼

          HTTP響應頭程序示例

          接下來的例子使用setIntHeader()方法和setRefreshHeader()方法來模擬一個數字時鐘:

          <%@ page language="java" contentType="text/html; charset=UTF-8"

          pageEncoding="UTF-8"%>

          <%@ page import="java.io.*,java.util.*" %>

          <!DOCTYPE html>

          <html>

          <head>

          <meta charset="utf-8">

          <title>菜鳥教程(runoob.com)</title>

          </head>

          <body>

          <h2>自動刷新實例</h2>

          <%

          // 設置每隔5秒自動刷新

          response.setIntHeader("Refresh", 5);

          // 獲取當前時間

          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;

          out.println("當前時間: " + CT + "\n");

          %>

          </body>

          </html>

          將以上代碼保存為main.jsp,然后通過瀏覽器訪問它。它將會每隔5秒顯示一下系統當前時間。

          我們可以看下以下 Gif 演示圖:

          您也可以自己動手修改以上代碼,試試使用其他的方法,將能得到更深的體會。

          如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!

          SP的工作模式是請求/響應模式,客戶端首先發出HTTP請求,JSP程序收到請求后將進行處理并返回處理結果。在一個JSP文件第一次被請求的時候,JSP引擎(容器)把該JSP文件轉換成一個Servlet,而這個引擎本身也是一個Servlet。JSP的運行原理如圖11-4所示。

          圖11-4 JSP的運行原理

            JSP的運行過程具體如下。

            (1)客戶端發出請求,請求訪問JSP文件。

            (2)JSP容器先將JSP文件轉換成一個Java源文件(Java Servlet源程序),在轉換過程中,如果發現JSP文件中存在任何語法錯誤,則中斷轉換過程,并向服務端和客戶端返回出錯信息。

            (3)如果轉換成功,則JSP容器會將生成的Java源文件編譯成相應的字節碼文件*.class。該class文件就是一個Servlet,Servlet容器會像處理其他Servlet一樣處理它。

            (4)由Servlet容器加載轉換后的Servlet類(class文件)創建一個該Servlet(JSP頁面的轉換結果)的實例,并執行Servlet的jspInit()方法。jsInit()方法在Servlet的整個生命周期中只會執行一次。

            (5)執行jspService()方法處理客戶端的請求。對于每一個請求,JSP容器都會創建一個新的線程處理它。如果多個客戶端同時請求該JSP文件,則JSP容器會創建多個線程,使每一個客戶端請求都對應一個線程。

            (6)如果JSP文件被修改了,則服務器將根據設置決定是否對該文件重新進行編譯,如果需要重新編譯,則使用重新編譯后的結果取代內存中的Servlet,并繼續上述處理過程。需要注意的是,雖然JSP效率很高,但在第一次調用時往往由于需要轉換和編譯,所以會產生一些輕微的延遲。

            (7)如果系統出現資源不足等問題,JSP容器可能會以某種不確定的方式將Servlet從內存中移除,發生這種情況的時候,首先會調用jspDestroy()方法,然后Servlet實例會被作為“垃圾”進行處理。

            (8)當請求處理完成后,響應對象由JSP容器接收,并將HTML格式的響應信息發送回客戶端。

          Controller和@RestController有啥區別呢,

          面試題看到有這么一題

          以前沒注意今天特意查了下

          @RestController注解,相當于@Controller+@ResponseBody兩個注解的結合,返回json數據不需要在方法前面加@ResponseBody注解了,但使用@RestController這個注解,就不能返回jsp,html頁面,視圖解析器無法解析jsp,html頁面

          相當于以前的寫法


          主站蜘蛛池模板: 78成人精品电影在线播放日韩精品电影一区亚洲| 国产在线视频一区| 成人影片一区免费观看| 亚洲av无码一区二区三区天堂| 亚洲中文字幕乱码一区| 视频一区二区中文字幕| 久久久无码精品国产一区| 波多野结衣中文一区| 无码少妇一区二区三区浪潮AV| 一区二区三区视频| 国产高清不卡一区二区| 国产精品一区二区四区| 日本道免费精品一区二区| 无码喷水一区二区浪潮AV| 精品一区二区三区东京热| 色精品一区二区三区| 97人妻无码一区二区精品免费| 免费国产在线精品一区| 日韩精品人妻一区二区三区四区| 丰满人妻一区二区三区视频| 2018高清国产一区二区三区| 中文无码AV一区二区三区| 亚无码乱人伦一区二区| 日本免费一区二区三区| 久99精品视频在线观看婷亚洲片国产一区一级在线 | 国产午夜精品一区二区三区极品| 激情一区二区三区| 久久久久久免费一区二区三区| 精品久久一区二区三区| 岛国精品一区免费视频在线观看| 国产成人av一区二区三区在线观看 | 精品视频午夜一区二区| 亚洲av不卡一区二区三区| 一区五十路在线中出| 波多野结衣一区二区三区 | 欧美日韩精品一区二区在线观看 | 久久er99热精品一区二区| 成人区人妻精品一区二区三区 | 中文字幕日本精品一区二区三区| 国产精品久久久久一区二区| 无码日韩人妻AV一区免费l |