楼主看来是直接学习JSP的,有这样的困惑不足为奇,其实我的建议是学JSP一定要先学servlet
的,当然java语言更是基础.不知道老兄写过CGI没有?在我看来,servlet就是一种CGI,都以读请求
写应答的工作方式运行. servlet独具特色的地方在于它是一种 面向对象 的CGI,特别是用接口
的方式清晰的明确了程序员和服务器各自的责任.并将请求和应答都包装成对象的形式提供给程
序员,极大的方便了CGI程序员.
JSP的出现是自然而然的事情,对于WEB开发人员而言,每一次写一张页面时,还没有写任何HTML
代码之前,就得写一大串java代码显然是无法忍受的,更重要的是,如引用文件、URL转向、JavaBean
引用等这样的常见操作都得手工编写效率也是极底的.因此如果能对servlet进行一层抽象和包装
以此简化WEB开发将极大的方便WEB开发人员.JSP就出现了,它给开发人员提供了完全不同于servlet
的另一种视图和另一种开发方式(就象他们当初写静态HTML页面一样).但从运行层面来说,JSP就是
servlet !因此它也首先会被翻译会servlet再被编译为.class, servlet container既为servlet
提供服务(这是它被称为servlet服务器的由来)又要用自己的classloader装入servlet class(这是
它被称为容器的由来),而且它还会以类似回调的方式调用servlet class实现的接口方法...
曹大虾说:使用jsp和使用php, asp有本质的不同 小弟举双手双脚同意,本质上说,php就是一个
纯粹的解释器.运行时再来分析语法,解释运行页面逻辑.因此它没有办法"动态扩充"其功能,开发人
员只能在它已经提供的功能集中辗转腾挪,不过它提供的功能够多,一个版本比一个版本多[
]
而 asp?呵呵,它也是个解释器,解释运行vbscript等语言编写的脚本,但和php不同的是,它可以用
com/com="动态扩充",所以,可以说asp就是 一个纯粹的解释器+com/com= 所以说这三者本质上是
极为不同的.
这里或许有兄弟会说java也是解释运行啊?一句话,java解释运行的是"已经经过编译的'二进制指令'
而前两者解释运行的是字符形式的"页面逻辑",两种情况的运行效率之差别是显著的,特别是asp/php
的"语法分析"一道工序恐怕比java bytecode的解释运行慢了不止10倍.所以大量的分析测试表明
jsp比那二位快了许多倍并非夸张.
总之,建议楼主从servlet学起,以深入理解jsp.然后再回头学习jsp及最近的发展.包括标准标签库
JSF等等
to: iapollo,
先生诚为高人,我猜您一定是资深的WEB Developer,大概是从CGI时代一路走来,学习jsp自然顺风顺
水,不过小弟进一忠言,如果您打算用写asp/php的方式来写jsp,您一定会后悔的.