传智播客Java web学习,jsp的运行原理以及它和Servlet的区别

来源:互联网 发布:xp仿mac dock 编辑:程序博客网 时间:2024/05/18 13:26

    学了这么多天的Servlet,例子也还都是java代码,今天要学习java领域的主要用于页面显示的jsp了,跟张老师学习了jsp的运行原理,已经它和Servlet的区别,在具体应用中对他们的选择。下面总结一下今天的学习。

jsp的运行原理
 1、web容器接收到以.jsp为扩展名的Url的访问请求时,它将把该访问请求交给jsp引擎去处理,jsp引擎负责解释和执行jsp页面。在<tomcat_home>/conf/web.xml文件中可以查看到,以.jsp为扩展名的URL的访问请求由org.apache.jasper.servlet.JspServlet负责处理,这个servlet程序就是tomcat中的jsp引擎
2.每个jsp页面在第一次访问时,jsp引擎将它翻译成一个Servlet源程序,接着再把这个Servlet源程序编译成Servlet的class类文件,然后Servlet引擎
象调用普通Servlet程序一样来装载和解释执行这个由JSP编译成的Servlet程序。
3.一个JSP页面只在第一次被访问时才需要被翻译成Servlet程序,对于它的后续访问,web容器将调用其翻译成的Servlet程序。在JSP页面每次被访问时,web容器将检查该JSP文件和编译成的Servlet类的最好更改时间,如果JSP文件发生了修改,JSP引擎将重新编译该JSP文件。


jsp与Servlet的选择
1.JSP是一种以产生网页显示内容为中心的web开发技术,可以使用模板元素来产生网页文档的内容,如果使用Servlet来输出大量的网页文档内容,则必须使用大量的out.println语句
2.JSP的源文件和开发过程都要比Servlet简单,Servlet源程序需要手工编译和在web部署描述符文件中进行设置后才能执行,而jsp不用,JSP引擎可以完成这些工作。
3.在JSP中使用javabean和自定义标签,可以分离用于表现外观的HTML文本内容和用于处理业务逻辑的java代码。
 尽管JSP有许多优点,对于用户的一次请的响应过程,它的主要优势在于输出网页文档内容,如果需要用java代码完成大量的流程控制和业务逻辑处理,那么就应该使用Servlet。
 如果用户的一次请求的响应过程需要完成大量的流程控制和业务逻辑处理,同时还要输出丰富的网页文档内容,这样就需要结合使用Servlet和JSP来共同完成这种请求的响应过程,由servlet完成流程控制和业务处理,并将结果存储到request或Session中,然后将请求转发到JSP页面,再有JSP页面从request或Session中取出结果数据并完成响应内容的输出。

原创粉丝点击