Tomcat中JSP预编译处理Jasper 2 JSP Engine
参考:
The Apache Jakarta Tomcat 5.5 Servlet/JSP Container Jasper 2 JSP Engine How To
http://jakarta.apache.org/tomcat/tomcat-5.5-doc/jasper-howto.html
jspc
http://ant.apache.org/manual/OptionalTasks/jspc.html
用Tomcat进行预编译的ant脚本如下:
build.properties的内容为:
tomcat.home=E:/OpenSource/Tomcat
webapp.name=webappname
webapp.path=E:/JavaProject/webappname
build.xml的内容为:
<?xml version="1.0" encoding="GBK"?>
<project name="WebApp Precompilation JSP to Java to Class to Jar" basedir="." default="help">
<property file="build.properties"/>
<target name="all" depends="jsp2java,java2class,class2jar,clear"/>
<target name="help">
<echo message="显示功能列表"/>
<echo message="jsp2java 通过JspC将JSP转换成Java源代码"/>
<echo message="java2class 将转换后的Java源代码进行编译成class文件"/>
<echo message="class2jar 将编译后的class文件打包"/>
<echo message="clear 清理现场"/>
</target>
<target name="jsp2java">
<taskdef classname="org.apache.jasper.JspC" name="jsp2java">
<classpath id="jsp2java.classpath">
<fileset dir="${tomcat.home}/bin">
<include name="*.jar"/>
</fileset>
<fileset dir="${tomcat.home}/server/lib">
<include name="*.jar"/>
</fileset>
<fileset dir="${tomcat.home}/common/lib">
<include name="*.jar"/>
</fileset>
</classpath>
</taskdef>
<!-- 注意JSP文件要设置为UTF-8编码 -->
<jsp2java classpath="jsp2java.classpath" javaEncoding="UTF-8" validateXml="false" uriroot="${webapp.path}" webXmlFragment="${webapp.path}/WEB-INF/webJSP.xml" outputDir="${webapp.path}/WEB-INF/JspC/src"/>
</target>
<target name="java2class">
<mkdir dir="${webapp.path}/WEB-INF/JspC/classes"/>
<!-- 同样Java文件要设置为UTF-8编码 -->
<javac srcdir="${webapp.path}/WEB-INF/JspC/src" destdir="${webapp.path}/WEB-INF/JspC/classes" encoding="UTF-8" optimize="off" debug="on" failonerror="false" excludes="**/*.smap">
<classpath id="java2class.classpath">
<pathelement location="${webapp.path}/WEB-INF/classes"/>
<fileset dir="${webapp.path}/WEB-INF/lib">
<include name="*.jar"/>
</fileset>
<pathelement location="${tomcat.home}/common/classes"/>
<fileset dir="${tomcat.home}/common/lib">
<include name="*.jar"/>
</fileset>
<pathelement location="${tomcat.home}/shared/classes"/>
<fileset dir="${tomcat.home}/shared/lib">
<include name="*.jar"/>
</fileset>
<fileset dir="${tomcat.home}/bin">
<include name="*.jar"/>
</fileset>
</classpath>
<include name="**"/>
<exclude name="tags/**" />
</javac>
</target>
<target name="class2jar">
<mkdir dir="${webapp.path}/WEB-INF/lib"/>
<jar basedir="${webapp.path}/WEB-INF/JspC/classes" jarfile="${webapp.path}/WEB-INF/lib/${webapp.name}JSP.jar"/>
</target>
<target name="clear">
<delete dir="${webapp.path}/WEB-INF/JspC/classes"/>
<delete dir="${webapp.path}/WEB-INF/JspC/src"/>
<delete dir="${webapp.path}/WEB-INF/JspC"/>
</target>
</project>
只需要设置好Ant的path环境变量,然后修改build.properties。执行ant all命令即可。
生成好的jar文件是{$webappname}JSP.jar。
在做为产品发布的时候,只需要你的类jar包和JSP预编译的包放到WEB-INF\lib\目录下即可,如${webappname}.jar和JSP预编译的包${webappname}JSP.jar;
然后删除掉你的所有的预编过的JSP源文件;
并且${webapp.path}/WEB-INF/webJSP.xml里的servlet映射,添加到${webapp.path}/WEB-INF/web.xml中。
这里有个问题,不知道有没有办法帮我们直接添加到我们已经存在的web.xml里,想偷个懒啊。。。
评论
我已经能够使用JspC进行编译了,但是我还想对JSP的编译过程进行更加细微的控制,就只能自己写代码实现了吗?难道tomcat使用的编译器不属于一个独立的项目吗?
发表评论
- 浏览: 623994 次
- 性别:

- 来自: 福建莆田@广州

- 详细资料
搜索本博客
我的相册
共 168 张
最近加入圈子
链接
- 超越黎明
- CJSDN
- CSDN
- JavaWorld@TW
- JavaEye
- Spring中文论坛
- Matrix
- BEA dev2dev
- Agile Tao Forum
- Flickr
- developerWorks
- TheServerSide
- Sun Java Forum
- JavaRanch
- 满江红开源
- del.icio.us
- Sun中国技术社区
- 希赛网中国软考
- AJAX Design Patterns
- CSS: The Missing Manual
- Java Persistence with Hibernate
- Script in Java
- Building Spring 2 Enterprise Applications
- Tuscany中文社区
- 我爱人开的购物店,欢迎光临
- Beginning Spring 2: From Novice to Professional
- Effective Java Second Edition
- JAVA世纪网
最新评论
-
关于《如何塑造自己成为一 ...
恩,平常心去对待。
-- by leonardleonard -
关于《如何塑造自己成为一 ...
练好基本功,养成规范的代码习惯,多锻炼自我表达能力。
-- by lizhuang -
练眼力,看看红花还须绿叶 ...
效果不错啊 啥鸡?
-- by hocus -
练眼力,看看红花还须绿叶 ...
作弊太明显了吧,没有看我的标题呢,要用眼睛看的呀:)
-- by YuLimin -
练眼力,看看红花还须绿叶 ...
图像的方向 1 图像输入设备制造商: OEM 图像输入设备型号: PDA/S ...
-- by ddandyy






评论排行榜