参考:
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里,想偷个懒啊。。。
分享到:
相关推荐
Jasper模块是Tomcat的JSP核心引擎,我们知道JSP本质上是一个Servlet。 Tomcat使用Jasper对JSP语法进行解析,生成Servlet并生成Class字节码。另外,在运行的时候,Jasper还会检测JSP文件是否修改,如果修改,则会重新...
2..jasper 文件生成:iReport 新创建的报表模板为.jrxml 格式,编辑完毕后需要编译,编译会产生.jasper 文件。在运行时需要编译好的.jasper 文件,这原理类似 java 程序,源代码文件是.java,编译好之后是.class ...
tomcat-embed-jasper-9.0.16.jar
tomcat-embed-jasper-7.0.50 jar包
jsp 自动编译机制详细介绍 总的来说,Jasper的自动检测实现的...上图是一个形象的示意图,我们知道Tomcat架构中有四个级别的容器,Engine、Host、Context和Wrapper,而jsp编译对应在wrapper级别,所以通过StandardWra
内部它使用Jasper作为jsp编译引擎---tomcat的jsp引擎。对于使用maven作为构建工具的团队或个人,使用非常简单,添加下面的依赖到你的pom文件 <groupId>com.github.lkoskela.jsptest</groupId> <artifactId>...
jasper实例教程 jsp输出 饼状图pdf jasper实例教程 jsp输出 饼状图pdf
Jasper Report用户手册 version1.0 1 简介 2 API概览 Class net.sf.jasper.engine.design.JasperDesign Class net.sf.jasper.engine.JasperReport Class net.sf.jasper.engine.JasperCompileManager Class ...
在阿里云买了一台Ubuntu16.04的ECS服务器,安装完Tomcat 9 和JDK 1.8之后,兴致勃勃的访问服务器的8080端口,发现竟然报错:org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp....
安装了jdk1.8版本或tomcat8.0版本后运行之前jsp项目报错:org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: [45] in the generated java file: [F:\apache-...
的Apache Tomcat 6.x的建立在Tomcat中的5.5.x的改进和实现的Servlet 2.5和 JSP 2.1规范。除此之外,它还包括以下改进: 内存使用优化 高级IO功能 重构聚类 Tomcat的6的用户应该知道,Tomcat的团队已经公布了 的生命...
其步骤如下: 1.jsp引擎将jsp文件翻译为Servlet源程序; 2.之后又将Servlet源程序编译为.class类文件;...1.Jsp引擎是通常一个Servlet程序,Tomcat中的jsp引擎就是org.apache.jasper.servlet.JspServlet;
NULL 博文链接:https://mr-cheney.iteye.com/blog/1168350
在JBuilder2006中默认JDK1.5+Tomcat5.5.9,但是在JSP页面中却不能使用泛型。应该说泛型是JDK1.5之后有的,但是在Servlet中却可以使用。why? 查了很多资料,都没有解决,有说在Tomcat/common/lib中加入ant.jar,...
tomcat配置必备jar包,如果eclipse等IDE不能只用tomcat就是缺它了。
org.apache.jasper jar包下载非常完整。希望可以帮助你!
* jasper.jar (Jasper 2 Compiler and Runtime) * jasper-el.jar (Jasper 2 EL implementation) * jsp-api.jar (JSP 2.2 API) * servlet-api.jar (Servlet 3.0 API) * tomcat7-websocket.jar (WebSocket 1.1 ...
jasper.jar jasper.jar
<servlet-class>org.apache.jasper.servlet.JspServlet <param-name>classdebuginfo <param-value>true <load-on-startup>3 <servlet-name>debugjsp *.jsp 6、重新启动服务器即可。
Jasper report用户手册Jasper report用户手册Jasper report用户手册Jasper report用户手册