1. 程式人生 > >什麼是Servlet(詳細易懂,不看後悔,一看必懂)

什麼是Servlet(詳細易懂,不看後悔,一看必懂)

動態的web開發技術,本質上就是一個類,當web伺服器獲取到一個對Servlet的請求時,該伺服器會把這個請求交給相應的容器(比如說tomcat)來處理,容器通過呼叫doGet()或者doPost()方法來響應客戶端的請求

如何建立一個Servlet程式

①建立一個類,使該類繼承HttpServlet,重寫doGet()和doPost()方法

②修改配置檔案(WEB-INF\web.xml)

註冊servlet

配置訪問路徑

③訪問方式為

Servlet處理客戶端請求的步驟

①使用者單擊一個連結向Servlet發起請求

②web伺服器接收到該請求後,會把該請求傳送給相應的容器處理,當容器發現這是對Servlet發起的請求後,容器會建立兩個物件.HttpServletResponse和HttpServletRequest

③容器可以根據連結中的訪問路徑找到相應的Servlet,針對該請求建立一個單獨的執行緒,把第二步中建立的兩個物件以引數的形式傳遞到新建立的執行緒中

④容器呼叫Servlet的service()方法來完成對使用者請求的響應,service()方法會根據不同的請求型別呼叫doPost()或doGet()方法來完成具體的響應任務,同時把生成的動態頁面返回給容器

⑤容器把響應訊息組裝成HTTP格式返回給客戶端.此時,整個執行緒執行結束,同時刪除第二步建立的兩個物件

doGet()和doPost()方法應該如何選擇

如果請求是get,就用doGet方法,如果請求是post,就用doPost()方法

相關推薦

什麼是Servlet詳細易懂後悔

動態的web開發技術,本質上就是一個類,當web伺服器獲取到一個對Servlet的請求時,該伺服器會把這個請求交給相應的容器(比如說tomcat)來處理,容器通過呼叫doGet()或者doPost()方法來響應客戶端的請求 如何建立一個Servlet程式 ①建立一個類,使

篇文章理解計算機最基本的運行原理北京PK10平臺制作學C語言之前

制作 之間 指向 快速入門 減法 單元 並且 快速 保存 本文的主要說明對象是CPU和內存北京PK10平臺制作 QQ2952777280【話仙源碼論壇】http://hxforum.com 【木瓜源碼論壇】http://papayabbs.com 。為什麽學C語言之前必懂呢

HTTP中的GET和POST方法有什麼區別詳細易懂後悔

HTTP協議中定義了瀏覽器和伺服器進行互動的不同方法,基本方法有4種,分別是GET,POST,PUT,DELETE。這四種方法可以理解為,對伺服器資源的查,改,增,刪。但是,現在大家都不這麼幹了! 只用一個方式就可以做增刪查減的操作。  GET:從伺服器上獲取資料,也就是所謂

JSP和Servlet的區別和聯絡後悔

在引入jsp之前呢,在web應用程式中,所有的業務邏輯和HTML的響應都是在Servlet中實現的.由於業務邏輯和檢視沒有分離,系統的可擴充套件性,可讀性和可維護性都較差   jsp從表面上看,就是嵌入了java程式碼的HTML檔案;本質上jsp相當於一個Servlet.只要是

servlet是執行緒安全的嗎後悔

Servlet 預設是單例模式,在web 容器中只建立一個例項,所以多個執行緒同時訪問servlet的時候,Servlet是執行緒不安全的。 那麼 web 容器能為每個請求建立一個Servlet的例項(增加了系統的消耗)嗎?當然是可以的,只要Servlet實現SingleT

Servlet的生命週期後悔

Servlet的生命週期可以分為載入,建立,初始化,處理客戶請求和銷燬5個階段 ①載入 容器通過類載入器來載入響應的Servlet ②建立 通過呼叫Servlet的建構函式來建立一個Servlet例項 ③初始化 通過呼叫Servlet的init()方法來完成初始化

重量級鎖 synchronized後悔

synchronized關鍵字並非一開始就該物件加上重量級鎖,也是從偏向鎖,輕量級鎖,再到重量級鎖的過程。這個過程也告訴我們,假如我們一開始就知道某個同步程式碼塊的競爭很激烈、很慢的話,那麼我們一開始就應該使用重量級鎖了,從而省掉一些鎖轉換的開銷。 互斥鎖(重量級鎖)也稱為阻塞同步、悲觀鎖

自旋鎖和自適應自旋鎖後悔

自旋鎖 所謂自旋,就是指當有另外一個執行緒來競爭鎖時,這個執行緒會在原地迴圈等待,而不是把該執行緒給阻塞,直到那個獲得鎖的執行緒釋放鎖之後,這個執行緒就可以馬上獲得鎖的。鎖在原地迴圈的時候,是會消耗cpu的,就相當於在執行一個啥也沒有的for迴圈。 本來一個執行緒把鎖釋放之後,當前執行緒

輕量級鎖後悔

輕量級鎖是由偏向鎖升級來的,偏向鎖執行在一個執行緒進入同步塊的情況下,當第二個執行緒加入鎖爭用的時候,偏向鎖就會升級為輕量級鎖(又叫做鎖膨脹);  輕量級鎖也被稱為非阻塞同步、樂觀鎖,因為這個過程並沒有把執行緒阻塞掛起,而是讓執行緒空迴圈等待,序列執行。 輕量級鎖適用於那些同步

偏向鎖後悔

它會偏向第一個訪問鎖的執行緒,如果在執行過程中,同步鎖只有一個執行緒訪問,不存在多執行緒爭用的情況,則執行緒是不需要觸發同步的,這種情況下,就會給執行緒加一個偏向鎖。 如果在執行過程中,遇到了其他執行緒搶佔鎖,則持有偏向鎖的執行緒會被掛起,JVM會消除它身上的偏向鎖,將鎖恢復到標準的輕

樂觀鎖和悲觀鎖後悔

鎖從巨集觀上分類,分為樂觀鎖和悲觀鎖 樂觀鎖是一種樂觀的思想,每次獲取資料的時候都不擔心資料會被修改,所以每次獲取資料的時候都不會加鎖,但是在更新的時候需要判斷該資料是否被人修改過.如果資料被其他執行緒修改,則不進行資料更新,否則,更新.由於資料沒有加鎖,期間該資料可以被其他執行緒進行讀寫操

hibernate和mybatis的區別後悔

①hibernate是一個標準的orm(物件關係對映)框架,通過JavaBean和資料庫的對映結構來自動生成sql;mybatis是不完全的orm框架,專注於sql本身,需要程式設計師自己寫sql; ②hibernate對sql的優化和修改比較困難,適合於需求變化不多的中小型專案,如ERP(

hibernate相關面試題後悔

概述 hibernate框架應用在dao層,,hibernate的底層程式碼是jdbc,它是一個開源的輕量級的框架. hibernate通過orm思想對資料庫進行crud操作.orm中文翻譯過來就是物件關係對映,它讓實體類(就是通常所說的pojo)和資料庫表對應,讓實體類的欄位和表裡的欄

spring bean的單例和多例的使用場景和在單例bean中注入多例後悔

為什麼用單例或者多例?何時用? 之所以用單例,是因為沒必要每個請求都新建一個物件,這樣子既浪費CPU又浪費記憶體; 之所以用多例,是為了防止併發問題;即一個請求改變了物件的狀態,此時物件又處理另一個請求,而之前請求對物件狀態的改變導致了物件對另一個請求做了錯誤的處理;  

spring bean的生命週期和作用域後悔

bean的生命週期 生命週期執行的過程如下: 1)spring在讀取xml配置檔案時對bean進行例項化,預設bean是單例 2)spring對bean進行依賴注入 3)如果bean實現了BeanNameAware介面,spring將bean的id傳給setBeanName

Spring的IOC,DI和AOP後悔

spring的優點 ①IOC和DI降低了元件之間的耦合性 ,讓程式設計師更專注於業務邏輯 ②容器提供了眾多的輔助類,能加快應用的開發 ③spring對於主流的應用框架提供了整合支援,如hibernate,mybatis,Struts等 ④spring屬於低侵入式設計,程式碼的汙染

TCP的三次握手四次揮手後悔

三次握手 step1:第一次握手 客戶端傳送資料包到伺服器,(在此連線請求報文段中的同步位SYN=1,確認ACK=0,表示這是一個TCP連線請求資料報文,序號seq=x,表示傳輸資料時的起始序號是x)此時,客戶端進入SYN_SENT狀態,等待伺服器確認 step2:第二次握手

長連線是如何實現的後悔

  在HTTP1.0和HTTP1.1協議中都有對長連線的支援。其中HTTP1.0需要在request中增加”Connection: keep-alive“ header才能夠支援,而HTTP1.1預設支援.  http1.0請求與服務端的互動過程: &nbs

什麼是長連線和短連線後悔

在日常專案中,大多的時候我們用的是短連線,一個請求過來,一個執行緒處理完該請求,執行緒被執行緒池回收,這個請求就關閉了.雖然這能滿足很大部分的需求,但是也有些問題,比如說:如果客戶端發的請求比較多,比較頻繁,服務端就會忙於建立連線處理請求,由於服務端的執行緒數也有限,併發比較大的話有可能會造成服

mysql中char和varchar和text的區別後悔

①CHAR是一種固定長度的型別,適合用在身份證號碼、手機號碼等定。,VARCHAR則是一種可變長度的型別。適合用在長度可變的屬性。 text不設定長度, 當不知道屬性的最大長度時,適合用text。 ②按照查詢速度: char最快, varchar次之,text最慢。 也就是說,