1.8 JSP知识体系及学习之路

JSP技术本身并不复杂,但是由于JSP是一种综合技术,它涉及许多其他的技术,这些技术组合起来形成了JSP知识体系,整个的JSP知识体系是比较庞大的。

1.8.1 JSP知识体系

JSP的知识体系如图1-20所示。

图1-20 JSP知识体系图

Java和HTML是JSP学习中非常重要的基础,如果仅仅懂得JSP的一些语法但对Java的基础知识不了解,那么要开发一个高级的动态网站也是相当困难的。JSP之所以被越来越多的人接受,一个很重要的原因是它依靠Java的强大优势。可以说,如果只是使用了JSP的基本功能来制作一个网站,那么这个JSP网站也许跟ASP网站十分类似。前面讲过,JSP最终是要编译成Java Servlet来执行的,而Servlet从本质上说就是一个Java类,整合内部逻辑的JavaBean也是一个Java类,所以,了解Java语言对开发一个动态网站至关重要。当然,网站开发也只是使用Java语言中的部分内容,像Swing和Applet等知识用得特别少,用户也不需要对其进行了解,但是熟悉基本的语法、逻辑控制及面向对象等概念还是很有必要的。

如果读者已经掌握这些基础知识,意味着JSP的学习之路要轻松很多。如果没有这些基础,就需要花一些时间来学习这些基础知识。

1.8.2 JSP程序员学习路径

如何成为一个成功的JSP程序员?一个常见的错误是把JSP当作简化的Java(事实上,JSP是简化的Servlet)。JSP是一个衔接技术,并且成功地连接用户需要理解的其他技术。如果已经知道Java、HTML和JavaScript,这意味着学习JSP将会比较简单。要成为一个成功的JSP程序员,可参考下面的步骤。

(1)保证理解HTML/XHTML。用户需要了解HTML基础,特别是在HTML布局中Form和Table的使用。XHTML不久将代替HTML,学习XHTML的基础是一个好主意。许多程序员通过集成开发环境学习HTML。因为大多数集成开发环境会产生混乱的HTML语法,所以花时间学习手工写作HTML是很有必要的。因为我们经常会使用JSP和HTML混合编程,精通HTML语法是重要的,所以必须能流利地写HTML。

(2)开始学习Java。开始学习Java,理解Java基础是很重要的。集中精力在Java的工作细节,学习Java的逻辑,也在JavaBean上花时间。学习Applet是好的,但JSP的大多数应用将不使用小程序。

(3)学习JavaScript。学习怎么用JavaScript在HTML中验证输入的Form元素,也学习JavaScript怎么能在HTML页内修改Form的元素。最后要求从HTML页内的事件中触发JavaScript Function。Javascript是一种基于网页的客户端脚本技术,这种技术的核心思想是增加用户与浏览器的交互,增加用户在使用网页应用时的体验。

(4)学习安装和配置一种Servlet容器。推荐以Tomcat开始,它可以很好地运行JSP程序。学习技术的最好方法就是一边学习一边实践。为了运行开发的JSP和Servlet实例,要建立一个测试和运行环境。Tomcat是JSP规范和Servlet规范的参考实现,因此建议读者在学习阶段使用它作为运行环境。另外,许多JSP程序员也使用Tomcat,在遇到问题时,将容易获得帮助。

(5)开始学习JSP基本语法。JSP的基本语法包括JSP脚本元素、JSP指令元素、JSP动作元素等几个基本的组成部分,这一部分知识是JSP区别于其他技术的主要内容。

(6)学习JDBC。JSP大多数应用将使用数据库,JDBC被用于数据库连接。经常忽略的一个事实就是,每个JDBC Driver所支持的东西是相当不同的。了解并熟悉在JSP工程上被使用的JDBC Driver的细节很重要。

(7)学习Servlet。JSP API是建立在Servlet API基础之上的,为了更深入地理解JSP,需要学习Servlet。另外,在高级的JSP应用开发中,Servlet的应用很多,因此作为一个高级的JSP程序员,Servlet的知识是必备的。通过全面深入地学习Servlet,将会真正理解JSP应用在Servlet容器上的运行原理,理解JSP页面和Servlet响应客户端请求的整个过程,此时会将产生一种豁然开朗的感觉。

(8)学习开源框架。框架(framework)是一个可复用的设计,它是由一组抽象类及其实例间协作关系来表达的。其实框架就是某种应用的半成品,就是一组组件,供用户选用完成自己的系统。简单说就是别人搭好舞台,你来表演。而且,框架一般是成熟的、不断升级的软件。框架一般处在低层应用平台(如J2EE)和高层业务逻辑之间。

此时,你已经成为了熟练的JSP程序员。但仍然有很多知识需要学习,如DHTML、XML、Java证书、JSP Tag Libraries或表达式语言,这根据想要建造什么类型的网站来决定。

这些训练是JSP的核心。读者不必学完上面所有的内容,这取决于在工程中分配到什么任务和已经有什么知识。但要成为一个资深的Web程序员,所学的东西远远不止这些。