用JSP开发出我人生之中的第一个Web程序
Java Web里的汇编、C和C++
用JSP技术开发Web程序,让我联想到Z80和MCS51上的汇编程序。低级语言和高级语言的区别,体现在语言是更靠近CPU还是更靠近业务。汇编语言是离CPU最近的语言,也是离业务最远的语言,所以用汇编语言编程时,可能只有1%的时间是业务相关的,另外99%的时间你都是在寄存器上来来回回倒数据。高级语言如C++,则相当靠近业务了,基本上你不需要关心内存啊句柄啊之类的东西,集中精力写你的业务逻辑就行了。介于汇编和C++之间的是C语言,它比汇编更靠近业务,比C++更靠近CPU。一方面,C语言让你摆脱了内存地址和寄存器的纠缠;另一方面,如果愿意,C也可以直接控制CPU,事实上,在C里面是可以嵌入汇编代码的。C之所以长盛不衰,成为计算机专业的必修语言,和C强大的适应能力是分不开的。
在Java的Web编程领域,也可以类似方法对诸多技术进行分类。如果把Servlet看成是Web编程的“汇编语言”,那么,建立在Servlet之上的JSP技术就相当于Web编程的“C语言”了。而引入了component模型和事件驱动模式的JSF则更贴近业务端,几乎可以视同Web编程的“C++语言”了。
Servlet是Java动态网页的鼻祖,为Java Web带来了生成动态内容的能力。Servlet允许程序员干预服务器返回给浏览器的每一个字节,就像汇编语言允许程序员访问CPU寄存器一样。这给了程序员极大的权力,同时也带来了沉重的负担,程序员不但需要生成业务相关的信息,还要给这些信息加上诸如<td></td>之类的HTML标签,以使信息能以适当的方式显示在用户的浏览器上。在我看来,这种“一点技术含量都没有”的事情,不应该浪费程序员宝贵的时间。
JSP比Servlet向前迈进了一步,至少,程序员可以不用再为静态的HTML内容操心,那些难看的HTML标签现在可以交给工具去处理了。程序员的工作,简化为根据业务逻辑生成动态信息,然后插入到JSP文件的适当位置。
JSF又如何呢?构建在Servlet和JSP技术基础之上的JSF,除了拥有二者的全部优点之外,更引入了组件模型和事件驱动模式,这给Java的Web编程带来了巨大的变革,如同C++在C领域里所带来的震撼一样。后面我们将看到这一点。
0
相关文章