JavaWeb jsp

来源:互联网 发布:mac登录密码破解 编辑:程序博客网 时间:2024/04/28 16:16

        JSP指的是Java Server Pages,它是由SUN公司在1996年6月发布的用于开发动态web应用的一项技术。jsp是基于办对Java Servlet的以web开发技术,由于其所具有的简单易学和跨平台等的特性,使其在各种动态web程序设计语言中脱颖而出,它具有一套完整的语法规范,广泛应用于各个领域中。

JSP的技术特点

         HTML语言适用于网页中静态内容的显示,而在开发基于web的应用程序时,页面的内容往往会包括动态内容的展示以及与客户的交互,仅仅使用预先定义好的文字已经不能满足要求了。而JSP通过在使用HTML编写的静态网页中添加一些专有标签以及脚本程序 就可以实现网页中动态内容的显示,它具有如下特点。 

        1、能够在任何web或应用程序服务器上运行。 

        jsp可以适用于所有平台,这正是它优于ASP的地方。当从一个应用平台移植到另一 个平台时,JSP和JavaBean的代码并不需要重新编译,这是因为办对的字节码是与平台无关的。 

        著名的Apache服务器也提供了对JSP的支持,而由于Apache服务器在NT、Unix和Linux把似上的广泛应用,也使得JSP拥有了更为广泛的运行平台。 

        2、将程序逻辑和页面显示相分离。 

        在使用JSP技术开发Web应用时可以将界面的开发与应用程序的开发分离开。web开发人员使用HTML来设计界面,使用jsp标签和脚本来生成页面上的动态内容。在服务器端,JSP引擎负责解释JSP标签和脚本程序,生成所请求内容,并将结果以HTML页面的形式返回到浏览器。 

        JSP技术使开发人员之间的分工更加明确,界面开发人员对页面内容的修改不会影响程序逻辑,而程序逻辑发生变动时也不会影响页面内容。

        3、采用标签简化页面开发。 

         JSP中对许多功能进行了封装,这些功能都是在与JSP相关的XML标签中进行动态内 容生成时所必需的。使用JSP的标签可以执行访问和实例化JavaBeanS组件、设置或检索组件属性以及下载Applet等功能。 

        4、组件可重用。

         绝大多数JSP页面都依赖于可重用的、跨平台的组件(JavaBeans或者Enterprise javabeans)来执行应用程序中所要求的复杂的处理。开发人员在开发过程中能够共享和交换那些执行普通操作的组件,并将这些组件提供给更多的用户所使用。 

JSP的运行机制

如图:


首先需要明确的是:当一个jsp文件第一次被请求时,jsp容器会先把该jsp文件转换成一个Servlet。 

jsp的运行过程为:

         (1) jsp容器先将该jsp文件转换成一个java源文件(java servlet源程序),在转换过程中如果发现jsp文件中存在任何语法错误,则中断转换过程,并向服务端和客户端返回出错信息。

         (2) 如果转换成功,则jsp容器使用javac将生成的java源文件编译成相应的字节码文件*.class。该.class文件就是一个servlet,servlet容器会像处理其他的servlet—样来处理它。

          (3) 由servlet容器加载转换后的servlet粪(.class文件),创建一个该servlet(jsp页面的转换结果)的实例,并执行servlet的jspInit()方法,jspInit()方法在servlet的整个生命周期中只会被执行一次。

          (4) 执行_jspService()方法来处理客户端的请求。对于每一个请求,jsp容器都会创建 一个新的线程来处理它。如果有多个客户端同时请求该jsp文件,则jsp容器也会创建多个线程,使得每个客户端请求都对应一个线程。jsp运行过程中采用的这种多线程的执行方式可以极大地降低对系统资源的需求,提高系统的并发量和响应时间。要注意的是,第(3) 步中生成的servlet是常驻内存的,所以响应速度也是非常快的。

           (5) 如果jsp文件被修改了,则服务器将根据设置决定是否对该文件重新编译,如果需要重新编译,则使用重新编译后的结果取代内存中常驻的servlet并继续上述处理过程。

           (6) 虽然jsp效率很高,但在第一次调用时往往由于需要转换和编译过程而产生一些轻微的延迟。此外,由于系统资源不足等原因,jsp容器会以某种不确定的方式将servlet从内存中移去。当这种情况发生时会首先调用jspDestroy()方法。

           (7) 接着servlet过实例便被加入“垃圾收集”处理。

           (8) 当请求处理完成后,响应对象由JSP容器接收,并将HTML格式的响应信息发送 回客户端。

原创粉丝点击