JSTL 源码研究之一:部署源码的调试环境
要研究 JSTL 源码,第一步就把源码部署好,让它能够跑起来。整个思路很简单:下载源码,部署源码调试环境。由于对 eclipse 比较熟悉,所以打算用 eclipse 来实现这个思路:通过 eclipse 直接到 SVN 服务器下载代码,再配置成 Dynamic Web Project。下面就是具体操作过程:
新建工程
在 eclipse 中新建一个工程:选 SVN 方式获取代码,并配置为 Dynamic Web Project
- SVN: http://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk
- 参考页面: http://tomcat.apache.org/taglibs/standard
配置工程
这个环节会比较繁琐些。
解决依赖问题
对具体的依赖关系,参 README_bin.txt 里的 LIBRARY DEPENDENCIES 介绍
- Xalan
- http://archive.apache.org/dist/xml/xalan-j/binaries/
- 下载最新的 zip 包,解压后把那几个 jar 放到工程里 examples\web\WEB-INF\lib 目录下
- JAXP 1.2
- http://jaxp.java.net/downloads.html
- 下载最新的 jar 包,放到工程里 examples\web\WEB-INF\lib 目录下
- JDBC Standard Extension 2.0 (这个我不打算去碰,前端去操作数据库比较讨厌,暂时不考虑)
- 以及 tomcat 里的 el-api.jar, jsp-api.jar, servlet-api.jar
注:xalan, jaxp 的包一定要放在 examples\web\WEB-INF\lib 目录下
设置源码路径
如图所示,我目前是这样设置的:
部分测试代码,我这里暂时没有设置进来。
修改几个类
由于依赖版本的关系,有几个然后需要改几个类,由上图也能看出,那几个类位于 example/src, impl/src/main/java 中,具体修改无外乎调整 imports, 子类实现的方法不够,需要增加,这里不赘述了。
修改 web content root directory
调整 web content root directory 到 examples/web 。直接修改.settings/org.elcipse.wst.common.component 就行,方法参:http://www.goomoon.com/it/program/J2EE/789.html
添加标签配置文件
需要下载 javax.servlet.jsp.jstl-1.2.1.jar (http://jstl.java.net/download.html),解压后,在 /javax.servlet.jsp.jstl-1.2.1/META-INF 把标签配置问题找出来,加到这个工程里。
不需要配置 web.xml —— 这也说明把标签配置文件直接放到规范的文件夹后,web.xml 可以不用再写配置文件的路径信息。这一步下载的 jar 包并非 Apache 的,但也能用,因为它们都遵循同样的接口标准。
运行
通过前面介绍的步骤:从 SVN 上 check out 代码——建立 Dynamic Web Project——补充了 jar 包——设置了代码目录——修改了几个类——调整了 web content root directory——添加标签库配置文件后,就可以启动这个 web 工程了:
如果能看到这个让人激动的页面,表示本地可能把 jstl 源码布置好了。再看看这个页面:http://localhost:8081/jstlweb/elsupport/Out.jsp
如果出现上图,说明 jstl 的源码就已经布置好了。
后记:jstl 的实现可以有很多版本,这里选择的是 apache 的实现。