前言

前一段时间写了很多多少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和自定义标签,欲知后篇若何,请看下回解说。