前言:前一段時間寫了好多Servlet和JSP相關的部落格,自以為理解的差不多了,豈不知人外有人,天外有天,程式碼外還有原始碼,受高人點撥,看了一下Servlet原始碼,感觸頗深,再也不敢說懂了,不明白生活的本質,你永遠活在夢裡。當然,只代表個人一點心得,如果有大佬路過,還望海涵,菜鳥還在路上。
吃一塹長一智
為什麼那些大佬那麼牛逼,不為什麼,就是因為他們比別人多問了些為什麼。看著感覺像繞口令一樣,其實生活就是這樣,透過本質看世界,其實。。。。。。。。。也就那麼回事。
今天受老師點撥,明白了一些知識和人生道理,可惜小生才疏學淺,只是理解了一些皮毛,但這些皮毛若無人點撥,我何以學程式設計,何以成事業,還是那句話,“讀萬卷書不如行萬里路,行萬里路不如有高人指路,高人指路還需自己頓悟”,對自己做好定位,在進步中度過每一天,相信生活還是很美好的。
走進程式設計,看看為什麼
這段時間學了Servlet和JSP,做到了應用層,但沒有做深入研究,對Servlet的接收請求和響應處理,Servlet的ServletContext域物件的使用,以及頁面的轉發和重定向的使用做了一些案例,後來學JSP,學了JSP中各種語法宣告,標籤引入,指令碼語法,內建物件等,結合JSP+JavaBean模式和JSP+Servlet+JavaBean(MVC)模式做了一些案例應用。雖然對這些知識點會用了,但我覺得應該轉換一下思維,應該先提出為什麼,有了問題之後查詢並解決問題。
比如說:
為什麼說JSP是Servlet?
為什麼JSP中有內建物件,不用例項化就能使用?
為什麼<%! %>中寫宣告 、 <% %>中寫邏輯程式碼片段 、 <%=%>中寫表示式?
為什麼要用EL表示式和JSTL?
為什麼JSP使用的人越來越少?
為什麼。。。。。。。。。。。。?
思維決定高度
先說為什麼說JSP是Servlet,不解釋,看原始碼就知道了。之前做的好多案例用的案例都是IDEA,這次用Myeclipse演示,當然換工具是有原因的,方便檢視原始碼。
首先,找到你的tomcat安裝包,在安裝包中的work資料夾下找到你的Web專案,再找到如下圖所示的原始檔。
在Web專案中的index.jsp上我寫了如下圖所示的程式碼,觀察這些指令碼語句在類中的位置
我在這描述一下,然後你再對應著圖去看
首先看宣告
宣告的位置出現在類體中,它是一個成員變數,有預設值,所以不賦值也能直接輸出。
再看程式碼片段和輸出表示式
程式碼片段在一個方法體中,所以<%%>代表方法體,而<%=i%>相當於out.print(i );,我想對應到這,應該能看明白點什麼吧,還有那些內建物件,都封裝到了類中,所以你在JSP中使用的時候能直接使用不用去例項化物件。所以說,JSP就是Servlet類,你如果明白原理,對應於類中,學起來就不會那麼難了(至少我是這樣認為的)。
明白這些再看,JSP中寫那些程式碼片段的時候,是不是感覺很麻煩,對,確實很麻煩,這時候就出現了一個叫JSTL的東西,它簡化了在JSP中Java片段的書寫,用一些標籤就能實現一些複雜的功能,但是這個東西是別人封裝的,你雖然會用,但終究是別人的,如果你覺得不服氣,你也可以自定義標籤,自己封裝一個標籤庫,在JSP中快速開發,之前JSP很火的時候許多公司都有自己的標籤庫,對,很火的時候,那現在為什麼JSP不火了呢?按我的理解,應該是現在有各種埠,安卓端,移動端,等等,用的多的是前後端分離開發,對JSP的解析太侷限,不像JSON,任何埠中都能解析。。。。。。。。。。。點到為止吧,在這只是聽說,不敢自己瞎說了,怕誤導別人,如果有大佬路過,求指教。
結束
此篇讓你先從類的角度認識JSP,對JSP多一些理解,下篇我會說到JSTL和自定義標籤,欲知後篇如何,請看下回講解。
*****************************************************************************************************
我的部落格園地址:https://www.cnblogs.com/zyx110/
轉載請說明出處
我不能保證我所說的都是對的,但我能保證每一篇都是用心去寫的,我始終認同“分享的越多,你的價值增值越大”,歡迎大家關注我的技術分享“Java匹馬行天下”和學習心得分享“匹馬行天下”,在分享中進步,越努力越幸運,期待我們都有美好的明天!
支援我的朋友們記得點波推薦哦,您的肯定就是我進步的動力。