JSP学习要点记录

80酷酷网    80kuku.com

  js这个是我原来学习的时候写的一个笔记,可能没有写完,大致看了一下,对新人可能有些用处,就贴上来了。

这个笔记很古老了,今天整理硬盘翻出来的,所以其中的观点可能是错的。
有时间再改了。

当一个浏览器向服务器请求一个JSP文件时,这个JSP文件首先被Web应用服务器编译成servlet并执行,然后将所产生的结果作为一个HTML文件传给浏览器。只要在JSP文件中加入一些控制,便可轻易的实现对数据的动态显示。以后,如果再有对这个JSP文件的请求,如果该文件没有作任何修改,它将不会再被编译,而是直接执行已编译好的servlet。然而,在Web应用服务器上的这些处理都是需要时间和资源的,必然会加大Web应用服务器的负荷和相应的延长响应时间。特别是整个系统刚刚启动或是有大量JSP文件作了改动以后。

JSP的功能是相当强大的,有的人说它甚至能够完成几乎所有的功能。这确实没有错误,但是当我们考虑到代码的复用性和实现的难易程度时,恐怕所有的功能都通过JSP文件来实现就不是什么好的选择了。更多的,我们还是用JSP文件作为一个response,来动态的显示某一状态下的数据。JSP的另一个特点就是它很象HTML文件,也是由许多的标签所组成的,所以我们也可以利用所见即所得的编辑器(如WebSphere Studio中的PageDesinger)来编辑它。而且,它还更加有利于不同开发人员之间的协作。JSP文件就像一个模板一样,等待着不同的数据去填充,而实现这个动态机制的正是那些嵌入HTML标签的JSP标签。基于这个思路,首先,网页的编辑人员可以将大致的模板(网页的静态部分)先设计出来,然后再由开发人员向模板中添加动态的控制代码。当全部完成后,就可以利用JSP的某种调试工具进行调试。

JSP文件的调试分为两个阶段,编译阶段和运行态阶段。应该说,JSP文件在编译阶段的调试是比较困难的,因为任何的语法错误都会导致JSP文件的编译不通过,但是却没有任何信息说明到底是什么地方有错。有的时候会因为少了一个括号花上很长的时间。一旦编译通过,运行态的问题就有方法得以解决了。我认为,最好的运行态调试工具要数VisualAge for Java的WebSphere Test Environment中的JSP执行监视器了,它可以单步执行JSP文件中的代码段,非常便于错误的定位和修改。

与Perl、shell script等CGI相比,Servlet的优势在于它只驻留一次,可以处理多个HTTP请求,而其他的CGI程序则要对每个请求都创建一个进程。所以,Servlet可以在一定程度上节省对资源的消耗。

Servlet和JSP一样,都面临同一个问题,那就是它的加载需要时间。当一个Web应用启动后,对某个Servlet的第一次调用往往很慢,而以后的调用就会好多了。这个问题是由Servlet在引擎中的调用方式和生命周期决定的。如果一个站点对Web应用的性能十分看重的化,不妨编写一个简单的程序,模拟对所有Servlet和JSP文件的HTTP请求来初始化整个Web应用,使其在真正被应用之前就已经加载好了所有的功能。

Servlet也是一种Java程序,所以它也继承了Java语言的所有特点。如果某个Web应用的所有Servlet都具有一个共同的功能,例如对后端数据库的连接,我们便可以先编写一个通用的Servlet来完成这些功能,而其他的Servlet都从这个通用的Servlet继承下来。

Data Bean,顾名思义,是与数据打交道的。更严格的说,它是对数据的一种封装。虽然也有Bean,但是却与JavaBeans不同,它并没有JavaBeans所具有的事件处理。可以说,Data Bean是整个编程模型中最简短的部分了,因为它除了数据域以外,就是对这些数据域进行操作的get和set方法了。Data Bean实际上是对数据结构的一种映射。一般的,如果一个Web应用的数据库schema确定以后,Data Bean的数目和接口也就基本上决定了。而Data Bean的开发,就更加简单了。在许多的Java开发环境中,都可以通过wizard来生成Data Bean,开发人员需要做的,只不过是告诉wizard这个Data Bean到底有多少个属性,每个属性的类型是什么。其实,如果自己手工编写Data Bean的话,也不是什么费力的事情。

在服务器端,我们要谈的最后一个元素就是DB Object。它的目的就是构造对数据库操作所需要的SQL语句,并且在执行后得到结果集。之所以需要它,是因为我们每次对数据库的操作都是不同的,如查找功能,会因不同的查询条件产生许多种情况。这需要依据不同的情况来构造不同的SQL语句。只有这样,我们的程序才能达到更高的利用率,减少开发的工作量。



分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: