前言編程
前一段時間寫了好多Servlet和JSP相關的博客,自覺得理解的差很少了,豈不知人外有人,天外有天,代碼外還有源碼,受高人點撥,看了一下Servlet源碼,感觸頗深,不再敢說懂了,不明白生活的本質,你永遠活在夢裏。固然,只表明我的一點心得,若是有大佬路過,還望海涵,菜鳥還在路上。後端
吃一塹長一智tomcat
爲何那些大佬那麼牛逼,不爲何,就是由於他們比別人多問了些爲何。看着感受像繞口令同樣,其實生活就是這樣,透過本質看世界,其實。。。。。。。。。也就那麼回事。前後端分離
今天受老師點播,明白了一些知識和人生道理,惋惜小生才疏學淺,只是理解了一些皮毛,但這些皮毛若無人點撥,我何以學編程,何以成事業,仍是那句話,「讀萬卷書不如行萬里路,行萬里路不若有高人指路,高人指路還需本身頓悟」,對本身作好定位,在進步中度過每一天,相信生活仍是很美好的。eclipse
走進編程,看看爲何jsp
這段時間學了Servlet和JSP,作到了應用層,但沒有作深刻研究,對Servlet的接收請求和響應處理,Servlet的ServletContext域對象的使用,以及頁面的轉發和重定向的使用作了一些案例,後來學JSP,學了JSP中各類語法聲明,標籤引入,腳本語法,內置對象等,結合JSP+JavaBean模式和JSP+Servlet+JavaBean(MVC)模式作了一些案例應用。雖然對這些知識點會用了,但我以爲應該轉換一下思惟,應該先提出爲何,有了問題以後查詢並解決問題。ide
好比說:工具
爲何說JSP是Servlet?3d
爲何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和自定義標籤,欲知後篇如何,請看下回講解。