六、JSP的由来以及与Servlet的关系

JavaWeb在有了Servlet这项技术以后,就可以编写动态网页了。在动态网页中,一般来说样式是不变的,变化的是数据。如果程序员在Servlet类中写了大量的静态代码,例如out.println("<html>");这样的代码,程序就会难以理解,而且前端人员不可能在Java类里面写HTML代码。为了弥补Servlet在编写HTML代码上的不足,SUN公司推出了JSP技术。

JSP实际上由两部分组成,一部分是HTML标签,一部分是嵌入在<%    %>中的Java代码。Web容器在收到.jsp为扩展名的URL时,会将请求交给JSP引擎处理。每个JSP页面在第一次被访问时,JSP引擎会将JSP文件,翻译成Servlet文件(.java),然后再由Servlet引擎像处理正常的Servlet一样,处理翻译后的Servlet文件。我们可以举个例子,以下是JSP文件翻译后的Java类代码:

716137da3a7ceb7fe88127cae6fa2e78e03.jpg

05ec49912196d7cdb477cc5ca51696a9844.jpg

1ec1a314334e1dcda5e5e01b256a96d25d0.jpg

 

我们可以看,JSP引擎翻译后的Java类,继承了HttpServlet。有自己的init、destroy、service方法。

小结:JSP的出现是为了解决Servlet写前端页面代码难以理解维护的问题,http请求在请求jsp资源时,由Web容器中的JSP引擎,翻译JSP文件为Servlet文件,然后交给Servlet引擎处理。处理过程与一般的Servlet一致。

注意:jsp 生成java源码,默认第一次被请求时生成,之后的请求,直接执行代码逻辑,而不会重新翻译,除非内容修改,具体点说,由于JSP只会在客户端第一次请求的时候被编译,因此第一次请求JSP时会感觉比较慢,而之后的请求因为不会编译JSP,所以速度就快多了,如果将Tomcat保存的JSP编译后的class文件删除,Tomcat也会重新编译JSP。在开发Web程序的时候经常需要修改JSP,Tomcat能够自动检测到JSP程序的改动,如果检测到JSP源代码发生了改动,Tomcat会在下次客户端请求JSP时重新编译JSP,而不需要重启Tomcat,这种自动检测功能默认是开启的,检测改动会消耗少量的时间,在部署web应用程序的时候可以在web.xml中将它关掉。这也就是为什么我们能够在jsp页面直接修改内容,而不用重新启动服务器的原因。

JSP和servlet有一点区别就在于:jsp是先部署后编译(先部署JSP文件到服务器,然后在用户访问时,服务器将JSP文件翻译为java类,再编译为class文件),而servlet是先编译后部署(将由java类编译后的class文件部署到服务器上)。

转载于:https://my.oschina.net/u/3733854/blog/1843073

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值