JSP和Servlet的區別和聯絡(不看後悔,一看必懂)
在引入jsp之前呢,在web應用程式中,所有的業務邏輯和HTML的響應都是在Servlet中實現的.由於業務邏輯和檢視沒有分離,系統的可擴充套件性,可讀性和可維護性都較差
jsp從表面上看,就是嵌入了java程式碼的HTML檔案;本質上jsp相當於一個Servlet.只要是jsp能完成的工作.使用Servlet都可以完成.由於jsp頁面最終要被轉化成Servlet來執行,因此處理請求實際上是編譯後的Servlet
jsp的引入在一定程度上解決了servlet存在的缺點,jsp的主要思想是讓每個servlet只負責其對應業務邏輯的處理,讓jsp來負責使用者的HTML顯示,因此實現了業務邏輯和檢視的分離.
相關推薦
JSP和Servlet的區別和聯絡(不看後悔,一看必懂)
在引入jsp之前呢,在web應用程式中,所有的業務邏輯和HTML的響應都是在Servlet中實現的.由於業務邏輯和檢視沒有分離,系統的可擴充套件性,可讀性和可維護性都較差 jsp從表面上看,就是嵌入了java程式碼的HTML檔案;本質上jsp相當於一個Servlet.只要是
mysql中char和varchar和text的區別(不看後悔,一看必懂)
①CHAR是一種固定長度的型別,適合用在身份證號碼、手機號碼等定。,VARCHAR則是一種可變長度的型別。適合用在長度可變的屬性。 text不設定長度, 當不知道屬性的最大長度時,適合用text。 ②按照查詢速度: char最快, varchar次之,text最慢。 也就是說,
LongAdder和AtomicLong的區別(不看後悔,一看必懂)
AtomicLong的原理是依靠底層的cas來保障原子性的更新資料,在要新增或者減少的時候,會使用自循(CLH)方式不斷地cas到特定的值,從而達到更新資料的目的。然而線上程競爭激烈的情況下,自循往往浪費很多計算資源才能達成預期效果。 面對自循的缺點,jdk1.8推出了Lo
HTTP中的GET和POST方法有什麼區別(詳細易懂,不看後悔,一看必懂)
HTTP協議中定義了瀏覽器和伺服器進行互動的不同方法,基本方法有4種,分別是GET,POST,PUT,DELETE。這四種方法可以理解為,對伺服器資源的查,改,增,刪。但是,現在大家都不這麼幹了! 只用一個方式就可以做增刪查減的操作。 GET:從伺服器上獲取資料,也就是所謂
http和https的區別(不看後悔,一看必懂)
什麼是https HTTPS (基於安全套接字層的超文字傳輸協議 或者是 HTTP over SSL) 是一個 Netscape 開發的 Web 協議。 你也可以說:HTTPS = HTTP + SSL HTTPS 在 HTTP 應用層的基礎上使用安全套接字層作為子層。
http1.0和http1.1和http2.0的區別(不看後悔,一看必懂)
http1.0和http1.1的區別 ①HTTP 1.0需要使用keep-alive引數來告知伺服器端要建立一個長連線,而HTTP1.1預設支援長連線。 ②在HTTP1.0中主要使用header裡的If-Modified-Since,Expires來做為快取判斷的標準,H
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屬於低侵入式設計,程式碼的汙染
什麼是長連線和短連線(不看後悔,一看必懂)
在日常專案中,大多的時候我們用的是短連線,一個請求過來,一個執行緒處理完該請求,執行緒被執行緒池回收,這個請求就關閉了.雖然這能滿足很大部分的需求,但是也有些問題,比如說:如果客戶端發的請求比較多,比較頻繁,服務端就會忙於建立連線處理請求,由於服務端的執行緒數也有限,併發比較大的話有可能會造成服
記憶體洩漏和記憶體溢位(不看後悔,一看必懂)
記憶體洩漏 記憶體洩漏是指不再被程式使用的物件或者變數還在記憶體中佔儲存空間 記憶體洩漏主要有兩種情況:一是在堆中申請的空間沒有被釋放;二是物件已經不再使用,但仍然在記憶體中保留著,垃圾回收器則無法保證不再使用的物件會被釋放.因此java語言中的記憶
Minor GC和Full GC(不看後悔,一看必懂)
1、大多數情況下,物件在新生代Eden區中分配。當Eden區沒有足夠空間進行分配時,虛擬機器將發起一次MinorGC。 2、執行GC後,將存活的物件分配到Survivor空間 3、無法放到Survivor空間的物件,分配到老年代 4、分配到Survivor的物件,經過多
B樹(或B-樹)和B+樹和B*樹(不看後悔,一看必懂)
樹的深度過大而造成磁碟I/O讀寫過於頻繁,進而導致查詢效率低下 根據平衡二叉樹的啟發,自然就想到平衡多路查詢樹結構,即B樹結構(後面,我們將看到,B樹的各種操作能使B樹保持較低的高度,從而達到有效避免磁碟過於頻繁的查詢存取操作,從而有效提高查詢效率)。 為什麼說B+tre
cookie和session(不看後悔,一看必懂)
會話:當用戶開啟瀏覽器的時候,訪問不同的資源,直到使用者將瀏覽器關閉,可以認為這是一次會話. http協議是無狀態的協議,一旦資料交換完畢,客戶端和伺服器端的連線就會關閉,再次交換資料需要建立新的連線.這就意味著伺服器無法從連線上跟蹤會話 cookie:瀏覽器端會話技
什麼是Servlet(詳細易懂,不看後悔,一看必懂)
動態的web開發技術,本質上就是一個類,當web伺服器獲取到一個對Servlet的請求時,該伺服器會把這個請求交給相應的容器(比如說tomcat)來處理,容器通過呼叫doGet()或者doPost()方法來響應客戶端的請求 如何建立一個Servlet程式 ①建立一個類,使
servlet是執行緒安全的嗎(不看後悔,一看必懂)
Servlet 預設是單例模式,在web 容器中只建立一個例項,所以多個執行緒同時訪問servlet的時候,Servlet是執行緒不安全的。 那麼 web 容器能為每個請求建立一個Servlet的例項(增加了系統的消耗)嗎?當然是可以的,只要Servlet實現SingleT
Servlet的生命週期(不看後悔,一看必懂)
Servlet的生命週期可以分為載入,建立,初始化,處理客戶請求和銷燬5個階段 ①載入 容器通過類載入器來載入響應的Servlet ②建立 通過呼叫Servlet的建構函式來建立一個Servlet例項 ③初始化 通過呼叫Servlet的init()方法來完成初始化
hibernate相關面試題(不看後悔,一看必懂)
概述 hibernate框架應用在dao層,,hibernate的底層程式碼是jdbc,它是一個開源的輕量級的框架. hibernate通過orm思想對資料庫進行crud操作.orm中文翻譯過來就是物件關係對映,它讓實體類(就是通常所說的pojo)和資料庫表對應,讓實體類的欄位和表裡的欄
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