黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) 史上最全面的javaweb總結(jié),內(nèi)涵視頻教程

史上最全面的javaweb總結(jié),內(nèi)涵視頻教程

更新時(shí)間:2020-01-16 11:18:55 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2295次


史上最全面的javaweb總結(jié),內(nèi)涵視頻教程


  Servlet總結(jié):


  在Java Web程序中,Servlet主要負(fù)責(zé)接收用戶請求HttpServletRequest,在doGet(),doPost()中做相應(yīng)的處理,并將回應(yīng)HttpServletResponse反饋給用戶。Servlet可以設(shè)置初始化參數(shù),供Servlet內(nèi)部使用。一個(gè)Servlet類只會(huì)有一個(gè)實(shí)例,在它初始化時(shí)調(diào)用init()方法,銷毀時(shí)調(diào)用destroy()方法。Servlet需要在web.xml中配置(MyEclipse中創(chuàng)建Servlet會(huì)自動(dòng)配置),一個(gè)Servlet可以設(shè)置多個(gè)URL訪問。Servlet不是線程安全,因此要謹(jǐn)慎使用類變量。


  闡述Servlet和CGI的區(qū)別?


  CGI的不足之處:


  需要為每個(gè)請求啟動(dòng)一個(gè)操作CGI程序的系統(tǒng)進(jìn)程。如果請求頻繁,這將會(huì)帶來很大的開銷。


  需要為每個(gè)請求加載和運(yùn)行一個(gè)CGI程序,這將帶來很大的開銷


  需要重復(fù)編寫處理網(wǎng)絡(luò)協(xié)議的代碼以及編碼,這些工作都是非常耗時(shí)的。


  Servlet的優(yōu)點(diǎn):


  只需要啟動(dòng)一個(gè)操作系統(tǒng)進(jìn)程以及加載一個(gè)JVM,大大降低了系統(tǒng)的開銷


  如果多個(gè)請求需要做同樣處理的時(shí)候,這時(shí)候只需要加載一個(gè)類,這也大大降低了開銷


  所有動(dòng)態(tài)加載的類可以實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)協(xié)議以及請求解碼的共享,大大降低了工作量。


  Servlet能直接和Web服務(wù)器交互,而普通的CGI程序不能。Servlet還能在各個(gè)程序之間共享數(shù)據(jù),使數(shù)據(jù)庫連接池之類的功能很容易實(shí)現(xiàn)。


  補(bǔ)充:Sun Microsystems公司在1996年發(fā)布Servlet技術(shù)就是為了和CGI進(jìn)行競爭,Servlet是一個(gè)特殊的Java程序,一個(gè)基于Java的Web應(yīng)用通常包含一個(gè)或多個(gè)Servlet類。Servlet不能夠自行創(chuàng)建并執(zhí)行,它是在Servlet容器中運(yùn)行的,容器將用戶的請求傳遞給Servlet程序,并將Servlet的響應(yīng)回傳給用戶。通常一個(gè)Servlet會(huì)關(guān)聯(lián)一個(gè)或多個(gè)JSP頁面。以前CGI經(jīng)常因?yàn)樾阅荛_銷上的問題被詬病,然而Fast CGI早就已經(jīng)解決了CGI效率上的問題,所以面試的時(shí)候大可不必信口開河的詬病CGI,事實(shí)上有很多你熟悉的網(wǎng)站都使用了CGI技術(shù)。


  Servlet接口中有哪些方法及Servlet生命周期探秘


  Servlet接口定義了5個(gè)方法,其中前三個(gè)方法與Servlet生命周期相關(guān):


  void init(ServletConfig config) throws ServletException


  void service(ServletRequest req, ServletResponse resp) throws ServletException, java.io.IOException


  void destory()


  java.lang.String getServletInfo()


  ServletConfig getServletConfig()


  生命周期: Web容器加載Servlet并將其實(shí)例化后,Servlet生命周期開始,容器運(yùn)行其init()方法進(jìn)行Servlet的初始化;請求到達(dá)時(shí)調(diào)用Servlet的service()方法,service()方法會(huì)根據(jù)需要調(diào)用與請求對(duì)應(yīng)的doGet或doPost等方法;當(dāng)服務(wù)器關(guān)閉或項(xiàng)目被卸載時(shí)服務(wù)器會(huì)將Servlet實(shí)例銷毀,此時(shí)會(huì)調(diào)用Servlet的destroy()方法。init方法和destory方法只會(huì)執(zhí)行一次,service方法客戶端每次請求Servlet都會(huì)執(zhí)行。Servlet中有時(shí)會(huì)用到一些需要初始化與銷毀的資源,因此可以把初始化資源的代碼放入init方法中,銷毀資源的代碼放入destroy方法中,這樣就不需要每次處理客戶端的請求都要初始化與銷毀資源。


  get和post請求的區(qū)別?


  1、get請求用來從服務(wù)器上獲得資源,而post是用來向服務(wù)器提交數(shù)據(jù);


  2、get將表單中數(shù)據(jù)按照name=value的形式,添加到action 所指向的URL 后面,并且兩者使用"?"連接,而各個(gè)變量之間使用"&"連接;post是將表單中的數(shù)據(jù)放在HTTP協(xié)議的請求頭或消息體中,傳遞到action所指向URL;


  3、get傳輸?shù)臄?shù)據(jù)要受到URL長度限制(1024字節(jié)即256個(gè)字符);而post可以傳輸大量的數(shù)據(jù),上傳文件通常要使用post方式;


  4、使用get時(shí)參數(shù)會(huì)顯示在地址欄上,如果這些數(shù)據(jù)不是敏感數(shù)據(jù),那么可以使用get;對(duì)于敏感數(shù)據(jù)還是應(yīng)用使用post;


  5、get使用MIME類型application/x-www-form-urlencoded的URL編碼(也叫百分號(hào)編碼)文本的格式傳遞參數(shù),保證被傳送的參數(shù)由遵循規(guī)范的文本組成,例如一個(gè)空格的編碼是"%20"。


  補(bǔ)充:GET方式提交表單的典型應(yīng)用是搜索引擎。GET方式就是被設(shè)計(jì)為查詢用的。


  什么情況下調(diào)用doGet()和doPost()?


  Form標(biāo)簽里的method的屬性為get時(shí)調(diào)用doGet(),為post時(shí)調(diào)用doPost()。


  轉(zhuǎn)發(fā)(Forward)和重定向(Redirect)的區(qū)別?


  轉(zhuǎn)發(fā)是服務(wù)器行為,重定向是客戶端行為。


  轉(zhuǎn)發(fā)(Forword)


  通過RequestDispatcher對(duì)象的forward(HttpServletRequest request,HttpServletResponse response)方法實(shí)現(xiàn)的。RequestDispatcher可以通過HttpServletRequest 的getRequestDispatcher()方法獲得。例如下面的代碼就是跳轉(zhuǎn)到login_success.jsp頁面。


  request.getRequestDispatcher("login_success.jsp").forward(request, response);


  重定向(Redirect) 是利用服務(wù)器返回的狀態(tài)嗎來實(shí)現(xiàn)的。客戶端瀏覽器請求服務(wù)器的時(shí)候,服務(wù)器會(huì)返回一個(gè)狀態(tài)碼。服務(wù)器通過HttpServletRequestResponse的setStatus(int status)方法設(shè)置狀態(tài)碼。如果服務(wù)器返回301或者302,則瀏覽器會(huì)到新的網(wǎng)址重新請求該資源。


  從地址欄顯示來說


  forward是服務(wù)器請求資源,服務(wù)器直接訪問目標(biāo)地址的URL,把那個(gè)URL的響應(yīng)內(nèi)容讀取過來,然后把這些內(nèi)容再發(fā)給瀏覽器.瀏覽器根本不知道服務(wù)器發(fā)送的內(nèi)容從哪里來的,所以它的地址欄還是原來的地址.


  redirect是服務(wù)端根據(jù)邏輯,發(fā)送一個(gè)狀態(tài)碼,告訴瀏覽器重新去請求那個(gè)地址.所以地址欄顯示的是新的URL.


  從數(shù)據(jù)共享來說


  forward:轉(zhuǎn)發(fā)頁面和轉(zhuǎn)發(fā)到的頁面可以共享request里面的數(shù)據(jù).


  redirect:不能共享數(shù)據(jù).


  從運(yùn)用地方來說


  forward:一般用于用戶登陸的時(shí)候,根據(jù)角色轉(zhuǎn)發(fā)到相應(yīng)的模塊.


  redirect:一般用于用戶注銷登陸時(shí)返回主頁面和跳轉(zhuǎn)到其它的網(wǎng)站等


  從效率來說


  forward:高.


  redirect:低.


  自動(dòng)刷新(Refresh)


  自動(dòng)刷新不僅可以實(shí)現(xiàn)一段時(shí)間之后自動(dòng)跳轉(zhuǎn)到另一個(gè)頁面,還可以實(shí)現(xiàn)一段時(shí)間之后自動(dòng)刷新本頁面。Servlet中通過HttpServletResponse對(duì)象設(shè)置Header屬性實(shí)現(xiàn)自動(dòng)刷新例如:


  Response.setHeader("Refresh","1000;URL=http://localhost:8080/servlet/example.htm");


  其中1000為時(shí)間,單位為毫秒。URL指定就是要跳轉(zhuǎn)的頁面(如果設(shè)置自己的路徑,就會(huì)實(shí)現(xiàn)沒過一秒自動(dòng)刷新本頁面一次)


  Servlet與線程安全


  Servlet不是線程安全的,多線程并發(fā)的讀寫會(huì)導(dǎo)致數(shù)據(jù)不同步的問題。 解決的辦法是盡量不要定義name屬性,而是要把name變量分別定義在doGet()和doPost()方法內(nèi)。雖然使用synchronized(name){}語句塊可以解決問題,但是會(huì)造成線程的等待,不是很科學(xué)的辦法。


  注意:多線程的并發(fā)的讀寫Servlet類屬性會(huì)導(dǎo)致數(shù)據(jù)不同步。但是如果只是并發(fā)地讀取屬性而不寫入,則不存在數(shù)據(jù)不同步的問題。因此Servlet里的只讀屬性最好定義為final類型的。


史上最全面的javaweb總結(jié),內(nèi)涵視頻教程


  JSP和Servlet是什么關(guān)系?


  其實(shí)這個(gè)問題在上面已經(jīng)闡述過了,Servlet是一個(gè)特殊的Java程序,它運(yùn)行于服務(wù)器的JVM中,能夠依靠服務(wù)器的支持向?yàn)g覽器提供顯示內(nèi)容。JSP本質(zhì)上是Servlet的一種簡易形式,JSP會(huì)被服務(wù)器處理成一個(gè)類似于Servlet的Java程序,可以簡化頁面內(nèi)容的生成。Servlet和JSP最主要的不同點(diǎn)在于,Servlet的應(yīng)用邏輯是在Java文件中,并且完全從表示層中的HTML分離開來。而JSP的情況是Java和HTML可以組合成一個(gè)擴(kuò)展名為.jsp的文件。有人說,Servlet就是在Java中寫HTML,而JSP就是在HTML中寫Java代碼,當(dāng)然這個(gè)說法是很片面且不夠準(zhǔn)確的。JSP側(cè)重于視圖,Servlet更側(cè)重于控制邏輯,在MVC架構(gòu)模式中,JSP適合充當(dāng)視圖(view)而Servlet適合充當(dāng)控制器(controller)。


  JSP工作原理:


  JSP是一種Servlet,但是與HttpServlet的工作方式不太一樣。HttpServlet是先由源代碼編譯為class文件后部署到服務(wù)器下,為先編譯后部署。而JSP則是先部署后編譯。JSP會(huì)在客戶端第一次請求JSP文件時(shí)被編譯為HttpJspPage類(接口Servlet的一個(gè)子類)。該類會(huì)被服務(wù)器臨時(shí)存放在服務(wù)器工作目錄里面。下面通過實(shí)例給大家介紹。


  工程JspLoginDemo下有一個(gè)名為login.jsp的Jsp文件,把工程第一次部署到服務(wù)器上后訪問這個(gè)Jsp文件,我們發(fā)現(xiàn)這個(gè)目錄下多了下圖這兩個(gè)東東。


  .class文件便是JSP對(duì)應(yīng)的Servlet。編譯完畢后再運(yùn)行class文件來響應(yīng)客戶端請求。以后客戶端訪問login.jsp的時(shí)候,Tomcat將不再重新編譯JSP文件,而是直接調(diào)用class文件來響應(yīng)客戶端請求。


  由于JSP只會(huì)在客戶端第一次請求的時(shí)候被編譯 ,因此第一次請求JSP時(shí)會(huì)感覺比較慢,之后就會(huì)感覺快很多。如果把服務(wù)器保存的class文件刪除,服務(wù)器也會(huì)重新編譯JSP。


  開發(fā)Web程序時(shí)經(jīng)常需要修改JSP。Tomcat能夠自動(dòng)檢測到JSP程序的改動(dòng)。如果檢測到JSP源代碼發(fā)生了改動(dòng)。Tomcat會(huì)在下次客戶端請求JSP時(shí)重新編譯JSP,而不需要重啟Tomcat。這種自動(dòng)檢測功能是默認(rèn)開啟的,檢測改動(dòng)會(huì)消耗少量的時(shí)間,在部署Web應(yīng)用的時(shí)候可以在web.xml中將它關(guān)掉。


  JSP有9個(gè)內(nèi)置對(duì)象:


  request:封裝客戶端的請求,其中包含來自GET或POST請求的參數(shù);


  response:封裝服務(wù)器對(duì)客戶端的響應(yīng);


  pageContext:通過該對(duì)象可以獲取其他對(duì)象;


  session:封裝用戶會(huì)話的對(duì)象;


  application:封裝服務(wù)器運(yùn)行環(huán)境的對(duì)象;


  out:輸出服務(wù)器響應(yīng)的輸出流對(duì)象;


  config:Web應(yīng)用的配置對(duì)象;


  page:JSP頁面本身(相當(dāng)于Java程序中的this);


  exception:封裝頁面拋出異常的對(duì)象。


  Request對(duì)象的主要方法有哪些?


  setAttribute(String name,Object):設(shè)置名字為name的request 的參數(shù)值


  getAttribute(String name):返回由name指定的屬性值


  getAttributeNames():返回request 對(duì)象所有屬性的名字集合,結(jié)果是一個(gè)枚舉的實(shí)例


  getCookies():返回客戶端的所有 Cookie 對(duì)象,結(jié)果是一個(gè)Cookie 數(shù)組


  getCharacterEncoding() :返回請求中的字符編碼方式 = getContentLength() :返回請求的 Body的長度


  getHeader(String name) :獲得HTTP協(xié)議定義的文件頭信息


  getHeaders(String name) :返回指定名字的request Header 的所有值,結(jié)果是一個(gè)枚舉的實(shí)例


  getHeaderNames() :返回所以request Header 的名字,結(jié)果是一個(gè)枚舉的實(shí)例


  getInputStream() :返回請求的輸入流,用于獲得請求中的數(shù)據(jù)


  getMethod() :獲得客戶端向服務(wù)器端傳送數(shù)據(jù)的方法


  getParameter(String name) :獲得客戶端傳送給服務(wù)器端的有 name指定的參數(shù)值


  getParameterNames() :獲得客戶端傳送給服務(wù)器端的所有參數(shù)的名字,結(jié)果是一個(gè)枚舉的實(shí)例


  getParameterValues(String name):獲得有name指定的參數(shù)的所有值


  getProtocol():獲取客戶端向服務(wù)器端傳送數(shù)據(jù)所依據(jù)的協(xié)議名稱


  getQueryString() :獲得查詢字符串


  getRequestURI() :獲取發(fā)出請求字符串的客戶端地址


  getRemoteAddr():獲取客戶端的 IP 地址


  getRemoteHost() :獲取客戶端的名字


  getSession([Boolean create]) :返回和請求相關(guān) Session


  getServerName() :獲取服務(wù)器的名字


  getServletPath():獲取客戶端所請求的腳本文件的路徑


  getServerPort():獲取服務(wù)器的端口號(hào)


  removeAttribute(String name):刪除請求中的一個(gè)屬性


  request.getAttribute()和 request.getParameter()有何區(qū)別?


  從獲取方向來看:


  getParameter()是獲取 POST/GET 傳遞的參數(shù)值;


  getAttribute()是獲取對(duì)象容器中的數(shù)據(jù)值;


  從用途來看:


  getParameter用于客戶端重定向時(shí),即點(diǎn)擊了鏈接或提交按扭時(shí)傳值用,即用于在用表單或url重定向傳值時(shí)接收數(shù)據(jù)用。


  getAttribute用于服務(wù)器端重定向時(shí),即在 sevlet 中使用了 forward 函數(shù),或 struts 中使用了


  mapping.findForward。 getAttribute 只能收到程序用 setAttribute 傳過來的值。


  另外,可以用 setAttribute,getAttribute 發(fā)送接收對(duì)象.而 getParameter 顯然只能傳字符串。


  setAttribute 是應(yīng)用服務(wù)器把這個(gè)對(duì)象放在該頁面所對(duì)應(yīng)的一塊內(nèi)存中去,當(dāng)你的頁面服務(wù)器重定向到另一個(gè)頁面時(shí),應(yīng)用服務(wù)器會(huì)把這塊內(nèi)存拷貝另一個(gè)頁面所對(duì)應(yīng)的內(nèi)存中。這樣getAttribute就能取得你所設(shè)下的值,當(dāng)然這種方法可以傳對(duì)象。session也一樣,只是對(duì)象在內(nèi)存中的生命周期不一樣而已。getParameter只是應(yīng)用服務(wù)器在分析你送上來的 request頁面的文本時(shí),取得你設(shè)在表單或 url 重定向時(shí)的值。


  總結(jié):


  getParameter 返回的是String,用于讀取提交的表單中的值;(獲取之后會(huì)根據(jù)實(shí)際需要轉(zhuǎn)換為自己需要的相應(yīng)類型,比如整型,日期類型啊等等)


  getAttribute 返回的是Object,需進(jìn)行轉(zhuǎn)換,可用setAttribute 設(shè)置成任意對(duì)象,使用很靈活,可隨時(shí)用


  include指令include的行為的區(qū)別


  include指令: JSP可以通過include指令來包含其他文件。被包含的文件可以是JSP文件、HTML文件或文本文件。包含的文件就好像是該JSP文件的一部分,會(huì)被同時(shí)編譯執(zhí)行。 語法格式如下:


  include動(dòng)作: 動(dòng)作元素用來包含靜態(tài)和動(dòng)態(tài)的文件。該動(dòng)作把指定文件插入正在生成的頁面。語法格式如下:


  JSP九大內(nèi)置對(duì)象,七大動(dòng)作,三大指令-


  JSP九大內(nèi)置對(duì)象,七大動(dòng)作,三大指令總結(jié)


  講解JSP中的四種作用域


  JSP中的四種作用域包括page、request、session和application,具體來說:


  page代表與一個(gè)頁面相關(guān)的對(duì)象和屬性。


  request代表與Web客戶機(jī)發(fā)出的一個(gè)請求相關(guān)的對(duì)象和屬性。一個(gè)請求可能跨越多個(gè)頁面,涉及多個(gè)Web組件;需要在頁面顯示的臨時(shí)數(shù)據(jù)可以置于此作用域。


  session代表與某個(gè)用戶與服務(wù)器建立的一次會(huì)話相關(guān)的對(duì)象和屬性。跟某個(gè)用戶相關(guān)的數(shù)據(jù)應(yīng)該放在用戶自己的session中。


  application代表與整個(gè)Web應(yīng)用程序相關(guān)的對(duì)象和屬性,它實(shí)質(zhì)上是跨越整個(gè)Web應(yīng)用程序,包括多個(gè)頁面、請求和會(huì)話的一個(gè)全局作用域。


  如何實(shí)現(xiàn)JSP或Servlet的單線程模式?


  對(duì)于JSP頁面,可以通過page指令進(jìn)行設(shè)置。


  對(duì)于Servlet,可以讓自定義的Servlet實(shí)現(xiàn)SingleThreadModel標(biāo)識(shí)接口。


  說明:如果將JSP或Servlet設(shè)置成單線程工作模式,會(huì)導(dǎo)致每個(gè)請求創(chuàng)建一個(gè)Servlet實(shí)例,這種實(shí)踐將導(dǎo)致嚴(yán)重的性能問題(服務(wù)器的內(nèi)存壓力很大,還會(huì)導(dǎo)致頻繁的垃圾回收),所以通常情況下并不會(huì)這么做。


  實(shí)現(xiàn)會(huì)話跟蹤的技術(shù)有哪些?


  使用Cookie


  向客戶端發(fā)送Cookie


    史上最全面的javaweb總結(jié),內(nèi)涵視頻教程

  從客戶端讀取Cookie


      史上最全面的javaweb總結(jié),內(nèi)涵視頻教程


  優(yōu)點(diǎn): 數(shù)據(jù)可以持久保存,不需要服務(wù)器資源,簡單,基于文本的Key-Value


  缺點(diǎn): 大小受到限制,用戶可以禁用Cookie功能,由于保存在本地,有一定的安全風(fēng)險(xiǎn)。


  URL 重寫


  在URL中添加用戶會(huì)話的信息作為請求的參數(shù),或者將唯一的會(huì)話ID添加到URL結(jié)尾以標(biāo)識(shí)一個(gè)會(huì)話。


  優(yōu)點(diǎn): 在Cookie被禁用的時(shí)候依然可以使用


  缺點(diǎn): 必須對(duì)網(wǎng)站的URL進(jìn)行編碼,所有頁面必須動(dòng)態(tài)生成,不能用預(yù)先記錄下來的URL進(jìn)行訪問。


  3.隱藏的表單域

  

  優(yōu)點(diǎn): Cookie被禁時(shí)可以使用


  缺點(diǎn): 所有頁面必須是表單提交之后的結(jié)果。


  HttpSession


  在所有會(huì)話跟蹤技術(shù)中,HttpSession對(duì)象是最強(qiáng)大也是功能最多的。當(dāng)一個(gè)用戶第一次訪問某個(gè)網(wǎng)站時(shí)會(huì)自動(dòng)創(chuàng)建 HttpSession,每個(gè)用戶可以訪問他自己的HttpSession。可以通過HttpServletRequest對(duì)象的getSession方 法獲得HttpSession,通過HttpSession的setAttribute方法可以將一個(gè)值放在HttpSession中,通過調(diào)用 HttpSession對(duì)象的getAttribute方法,同時(shí)傳入屬性名就可以獲取保存在HttpSession中的對(duì)象。與上面三種方式不同的 是,HttpSession放在服務(wù)器的內(nèi)存中,因此不要將過大的對(duì)象放在里面,即使目前的Servlet容器可以在內(nèi)存將滿時(shí)將HttpSession 中的對(duì)象移到其他存儲(chǔ)設(shè)備中,但是這樣勢必影響性能。添加到HttpSession中的值可以是任意Java對(duì)象,這個(gè)對(duì)象最好實(shí)現(xiàn)了 Serializable接口,這樣Servlet容器在必要的時(shí)候可以將其序列化到文件中,否則在序列化時(shí)就會(huì)出現(xiàn)異常。


  Cookie和Session的的區(qū)別?


  由于HTTP協(xié)議是無狀態(tài)的協(xié)議,所以服務(wù)端需要記錄用戶的狀態(tài)時(shí),就需要用某種機(jī)制來識(shí)具體的用戶,這個(gè)機(jī)制就是Session.典型的場景比如購物車,當(dāng)你點(diǎn)擊下單按鈕時(shí),由于HTTP協(xié)議無狀態(tài),所以并不知道是哪個(gè)用戶操作的,所以服務(wù)端要為特定的用戶創(chuàng)建了特定的Session,用用于標(biāo)識(shí)這個(gè)用戶,并且跟蹤用戶,這樣才知道購物車?yán)锩嬗袔妆緯_@個(gè)Session是保存在服務(wù)端的,有一個(gè)唯一標(biāo)識(shí)。在服務(wù)端保存Session的方法很多,內(nèi)存、數(shù)據(jù)庫、文件都有。集群的時(shí)候也要考慮Session的轉(zhuǎn)移,在大型的網(wǎng)站,一般會(huì)有專門的Session服務(wù)器集群,用來保存用戶會(huì)話,這個(gè)時(shí)候 Session 信息都是放在內(nèi)存的,使用一些緩存服務(wù)比如Memcached之類的來放 Session。


  思考一下服務(wù)端如何識(shí)別特定的客戶?這個(gè)時(shí)候Cookie就登場了。每次HTTP請求的時(shí)候,客戶端都會(huì)發(fā)送相應(yīng)的Cookie信息到服務(wù)端。實(shí)際上大多數(shù)的應(yīng)用都是用 Cookie 來實(shí)現(xiàn)Session跟蹤的,第一次創(chuàng)建Session的時(shí)候,服務(wù)端會(huì)在HTTP協(xié)議中告訴客戶端,需要在 Cookie 里面記錄一個(gè)Session ID,以后每次請求把這個(gè)會(huì)話ID發(fā)送到服務(wù)器,我就知道你是誰了。有人問,如果客戶端的瀏覽器禁用了 Cookie 怎么辦?一般這種情況下,會(huì)使用一種叫做URL重寫的技術(shù)來進(jìn)行會(huì)話跟蹤,即每次HTTP交互,URL后面都會(huì)被附加上一個(gè)諸如 sid=xxxxx 這樣的參數(shù),服務(wù)端據(jù)此來識(shí)別用戶。


  Cookie其實(shí)還可以用在一些方便用戶的場景下,設(shè)想你某次登陸過一個(gè)網(wǎng)站,下次登錄的時(shí)候不想再次輸入賬號(hào)了,怎么辦?這個(gè)信息可以寫到Cookie里面,訪問網(wǎng)站的時(shí)候,網(wǎng)站頁面的腳本可以讀取這個(gè)信息,就自動(dòng)幫你把用戶名給填了,能夠方便一下用戶。這也是Cookie名稱的由來,給用戶的一點(diǎn)甜頭。所以,總結(jié)一下:Session是在服務(wù)端保存的一個(gè)數(shù)據(jù)結(jié)構(gòu),用來跟蹤用戶的狀態(tài),這個(gè)數(shù)據(jù)可以保存在集群、數(shù)據(jù)庫、文件中;Cookie是客戶端保存用戶信息的一種機(jī)制,用來記錄用戶的一些信息,也是實(shí)現(xiàn)Session的一種方式。


  Javaweb開發(fā)視頻


  免費(fèi)html視頻教程:http://www.ilovecolors.com.cn/v27/


  免費(fèi)css視頻教程下載:http://www.ilovecolors.com.cn/v67/


  Javascript視頻教程下:http://www.ilovecolors.com.cn/v68/


  jquery視頻教程全集:http://www.ilovecolors.com.cn/v30/


  ajax視頻教程全集:http://www.ilovecolors.com.cn/v31/


  Java jsp入門教程:http://www.ilovecolors.com.cn/v34/


  spring視頻教程下載:http://www.ilovecolors.com.cn/v38/


史上最全面的javaweb總結(jié),內(nèi)涵視頻教程


       以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“史上最全面的javaweb總結(jié),內(nèi)涵視頻教程”的內(nèi)容,希望對(duì)大家有幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。


  相關(guān)內(nèi)容


  Java web目前流行的框架總結(jié)


  五大 JAVA Web 框架的優(yōu)缺點(diǎn)對(duì)比


  Javaweb開發(fā)學(xué)習(xí)路線及Java三大框架


  JavaWEB基礎(chǔ)面試題


  Javaweb學(xué)習(xí)路線(自學(xué)規(guī)劃)


提交申請后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 免费污污视频网站 | 视频www| 特级黄色片视频 | 成人a网站| 在线播放福利 | 男女午夜免费视频 | 日日久 | 制服丝袜 自拍偷拍 | 国产羞羞视频 | 久草毛片 | 亚洲精品视频久久久 | 成人免费毛片观看 | 污黄视频在线观看 | 久久夜色视频 | 一级bbbb视频bbbb | 国内精品一区二区在线观看 | 国内成人免费视频 | 午夜影皖普通区 | 黄网站视频 | 伊人久久综在合线亚洲不卡 | 五月天婷婷缴情五月免费观看 | 又黄又爽的成人免费视频播放 | 国产日产高清欧美一区二区三区 | 337p色噜噜人体大胆欧美 | 亚洲 欧美 在线观看 | 欧美国产永久免费看片 | 亚洲色图综合图区 | 国产精品视频第一区二区 | 欧美国产伦久久久久 | 免费在线看黄色 | a天堂v | 一个人看的www视频在线 | 久久国产午夜精品理论篇小说 | 日本精品视频一区二区 | 国产成人精品18 | 天天躁狠狠躁夜躁2021 | 亚洲黄色片一级 | 区二区三区四区免费视频 | 午夜在线网站 | a级毛片免费观看在线播放 a级毛片免费完整视频 | 久青草视频免费视频播放线路1 |