Servlet思惟教程

終極版Servlet

前言:這兩天看了SSM框架,原本是想日後繼續學的,腦門一轉又回來了,不能就這麼不聲不響的走了,看了這麼多天的Servlet,再寫最後一篇作個告別吧,這篇起名爲終極版,是我如今所能理解的最高境界,獻給須要的朋友們,但願有所幫助,若有大佬路過,還望海涵,菜鳥依然在路上html

認識Servlet

想一想咱們的JavaSE學習歷程,從最簡單的常量,變量,數據類型到函數,數組,面向對象再到工具類的學習,一路披荊斬棘,所向披靡殺過來了,卻發如今大學忙活了大半年,卻一直在控制檯輸出,噫籲嚱,危乎高哉!編程之難,難於上青天!哈哈,其實說這些話的朋友,不是編程難,只是你還沒發現編程之美,要想看美的風景,就要「一覽衆山小」,一樣,要想發現編程之美,你要「一覽編程美」,思惟決定高度,這時候你該想,總在控制檯輸出,有什麼意思,瀏覽器上的東西不也是程序員寫出來的嗎,那何時能幹點新鮮的。你要是真這樣想了,別急,不論幹什麼你得了解需求,要想高飛瀏覽器,先看篇博客《B/S和C/S》普及一下常識。瞭解完了以後,我來給你解說,要想與瀏覽器相關聯,你必須學習Serlvet,不爲何,就是由於Servlet是溝通前端和後端的橋樑(有點皮了,不知道這句話算不算病句,哈哈),你想一想,你在瀏覽器的地址欄裏輸入一個網址,好比說https://www.cnblogs.com/zyx110/,這就是你在瀏覽器向服務器發送了一次請求,而後你就發現你的瀏覽器頁面就跳轉到個人博客園頁面(就是這麼神奇,多試試,增長點人氣),這是你向服務器發送請求後服務器給你的響應,而這個過程就是傳說中的Servlet完成的,Servlet就是專門負責請求數據、處理請求、完成響應的,因此,知道Servlet的重要性了吧。前端

 

學習Servlet

看完上面這一段你就應該懂Servlet了吧(懂個毛,門都還沒入呢),下面我來教你如何學習Servlet.說到學習,我不得再也不重複一下「二八定律」的重要性,學習切忌死學,既然都知道興趣是最好的老師,那何不本身培養本身的興趣呢,再贈你一篇「教你愛上編程妹子」 ,個人學習方法,技術知識都分享給你,接下來的就看你本身了。我如今只引導你去學習那必須掌握的20%,我以問題的形式先寫出來,而後給你學習路線,你帶着問題去學習:程序員

如何實現Servlet?編程

什麼是JavaWeb四大域?後端

如何理解轉發和重定向?數組

 

先說第一個問題,實現Servlet有三種方式瀏覽器

 

 

 

具體如何實現去看《Servlet學習》,我在這主要講思惟講方法,不講具體的知識點,知識是死的,寫這浪費白紙,菜鳥教程上全是知識點,去查就好了,思惟纔是最重要的,由於這須要本身去悟,長大後不多有人會給你講這些,我也是聽別人給我講,本身領悟,但我想把我收穫的分享給別人,但願能對一些朋友有所幫助。服務器

 

好,進入主題,知道如何實現Servlet後,瞭解Servlet的生命週期,這個本身看,而後不知道你們看沒看過一些玄幻小說,玄幻小說中有許多中都有空間戒指,空間袋等用來存儲東西的,就拿空間戒指說吧,不知道有沒有看過《鬥破蒼穹》的朋友,這部小說裏就有空間戒指,叫作「納戒」,此物內部自成空間,能容納不少東西,戴在手上就跟普通戒指同樣。爲何要提這個「納戒」,廢話,固然跟學習有關了,要是想看小說,就看看我寫的小說《匹馬行天下》,不只能豐富你的精神世界,還能增加知識,何樂而不爲呢(實際上是想拉點粉,哈哈,記得關注哦)。再回到戒指,以前提到了JavaWeb四大域,這個域有點抽象,因此你先理解爲空間戒指,Servlet有一個戒指叫ServletContext,裏面能存放東西,這還不是神奇的,最神奇的是存到這個「戒指」裏的東西不只本身能拿,別的Servlet都能共享,,同一個服務器下的全部Servlet都能存和取「戒指」裏的東西,怎麼樣,夠神奇吧。具體在「戒指」裏是怎樣存東西和取東西的仍是看博客《進一步理解Servlet》.框架

 

好,明白了JavaWeb四大域,再聊聊別的,你看你在點瀏覽器頁面上的那些連接的時候,是否是頁面會一跳一跳的,很神奇,不信你能夠再試着點點這個https://www.cnblogs.com/zyx110/(哈哈,淡定,別打我),是否是又跳到個人博客園頁面了。說重點,這種跳轉也是有名字的,一種叫轉發,另外一種叫重定向。兩個都是跳轉,名字不同,功能也是不同的,我大概說兩種區別:函數

 

首先要知道,轉發在跳轉的時候帶的東西(參數)能被他要跳轉的頁面接收到,也是用「空間戒」帶的東西,只不過這個「空間戒」的名字叫Request域,而重定向在跳轉的時候,他能夠在「空間戒」裏裝東西,可是他要跳的頁面不能經過Request域(空間戒)接收他帶的東西,他若是非要讓他帶的東西讓別人接收的話能夠經過ServletContext域(空間戒),看破不說破,讓重定向留點隱私,大家本身去看吧。

 

還有一點要知道,就是轉發只請求一次服務器,而重定向請求兩次。怎麼理解,我舉個例子,準備好,我要開車了。知道個人都知道,我是個大二的學生,咳咳,先作個自我介紹,我叫***,男孩,性格活潑開朗,愛交朋友,愛學習,沒女友(那個,,,先就這吧,編不下去了),我用我本身舉個例,假如說我畢業後要領畢業證,原本很高興的事,不想東窗事發,因爲在校期間掛科補考沒過,學校不給發畢業證。怎麼辦,我記得像熱鍋上的螞蟻,大山裏走出來的孩子要是拿不上畢業證,那不得讓村裏人笑話,情急之下我開始找關係,注意了,如今分兩種狀況:

情節一:

我費了九牛二虎之力找到了一位主任(是誰我也不知道,故事須要吧,先假想一個,現實很殘酷的,哪有這麼容易找到的),這個主任就是負責這塊的,我也不能空着手去吧,拿出畢生心血買了兩條中華煙再加兩瓶茅臺(這就是參數,拿這些應該差很少了吧),好,找到某主任跟他求情,主任一看我態度不錯,主要還知道他喜歡喝兩口,買酒了,就答應了,說我得跟校長說一下才行。我說好的好的,謝謝主任。而後主任拿着我送的中華煙和茅臺酒,回家藏到櫃子裏了,而後拿着過年沒吃完剩下的兩條黑蘭州去找校長,校長好說話,主任一說就答應了,畢竟仍是要給主任點面子的。那這事算成了,不就我就獲得通知,說來學校領畢業證,而後就證書到手了。

 

來,分析故事(純屬虛構,別當真),這個過程當中無論中間是如何週轉的,我是否是隻找了一次主任,而後事成後不論是校長說的仍是主任說的,總之我獲得了一個消息,這就是轉發,只請求一次服務器,中華煙、茅臺、黑蘭州是我帶的參數,怎樣,理解了吧。

 

 

情節二:

我仍是費勁九牛二虎之力找到了某主任,但我說了,生活不老是一路順風的,這不,帶着菸酒(參數)去找某主任,可主任不吃這套,給拒絕了,但我也很差把送進去的東西再帶走吧,一咬牙一跺腳,就送他了,而後灰溜溜的回去了,到家後再找,看看有沒有跟情節一同樣的主任,這是後話了。

分析故事:從帶菸酒(參數)找主任被拒絕,回來後再找別的主任,這整個過程我跑了兩次,這就至關於你向服務器發出請求,而後服務器給你響應說訪問不了,你再去從新請求,而後你又發出請求跳到一個頁面上,這就是重定向。

 

 

 

故事補充:情節二中你再去找別的主任,以前買的東西沒有了吧,雖然故事中是把東西留第一個主任那了,迴歸到知識點的話,這有個知識點,就是Request域的生命週期是隻存在於一次請求,因此等到重定向第二次請求服務器的時候,參數已失效。

具體學習轉發和重定向看博客《重定向和轉發是什麼垃圾》。

 

補充:再補充一點,故事純屬虛構,我還沒掛過科,在這提示並但願學弟學妹們在真實生活中千萬不要掛科,千萬不要,千萬!說三遍,很重要!!!

 

 

認識JSP

前面介紹並學習了Servlet,認真看了我推薦的博客的朋友確定知道咱們能經過Servlet向瀏覽器頁面輸出HTML樣式,可是雖然能夠輸出,可是寫着很麻煩,代碼量很大,容易出錯,就像下面圖中所示的同樣,這時候就到了JSP閃亮登場的時候了。

 

 

 

JSP不只成功解決了頁面顯示代碼量大的困難,並且裏面還能寫Java代碼並執行。功能也算是很強大了。以前我提到了,JSP是Servlet,其底層就是用Servlet寫的,能夠看看源碼,如何看源碼和如何知道JSP是Servlet,看《教你看JSP源碼》,知道了這些以後就看如何去學習JSP,關於JSP的知識我以前寫的很全,就不在這寫了,看我博客就行《JSP學習一》  ,《JSP學習二》。

 

 

認識JSTL和EL表達式

JSP當然強大,但是也有不足,在寫Java語句和HTML語句的時候,嵌套在一塊兒書寫也是很麻煩,看下圖

 

 

這樣寫是否是感受也很麻煩,這時候JSTL和EL表達式也都閃亮登場,EL表達式語法簡單,使用方便,用${  }代替了<%=  %>,簡化了書寫,還有JSTL,一些大牛們本身封裝了一套代碼,而後以標籤的形式讓咱們使用,實現快速開發,在JSP很火的時候,許多公司都有本身的標籤庫,都是本身封裝的,這樣就提升了開發效率,由於咱們能夠自定義標籤,能夠本身封裝代碼,把一些經常使用的功能,好比說分頁,封裝成標籤,通過一次封裝後,下次不光能本身用,也能讓別人用,許多代碼只需幾個標籤快速實現,你的能力有多大,舞臺就有多大。

 

我靠,純手寫3500字了,真能說,我不說了,好累好睏,你們都在過暑假,而我卻比在學校還忙,但願越努力越幸運吧!

 

是時候跟Servlet、 JSP正式告別了,之後我可能不會再寫Servlet了,至少目前這個暑假應該不會了,別人都說過期的JSP我卻研究了這麼久,唉,,,,,,不知道有沒有意義,不說了,先這樣吧,此篇完,欲知後事如何,請看下回分解。

*****************************************************************************************************

個人博客園地址:https://www.cnblogs.com/zyx110/

相關文章
相關標籤/搜索