`
michaelee
  • 浏览: 17269 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Tomcat中JSP预编译处理Jasper 2 JSP Engine JSPTomcatWebAntApache

 
阅读更多
参考:
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里,想偷个懒啊。。。
分享到:
评论

相关推荐

    Tomcat JSP编译器Jasper.docx

    Jasper模块是Tomcat的JSP核心引擎,我们知道JSP本质上是一个Servlet。 Tomcat使用Jasper对JSP语法进行解析,生成Servlet并生成Class字节码。另外,在运行的时候,Jasper还会检测JSP文件是否修改,如果修改,则会重新...

    jsp调用jasper

    2..jasper 文件生成:iReport 新创建的报表模板为.jrxml 格式,编辑完毕后需要编译,编译会产生.jasper 文件。在运行时需要编译好的.jasper 文件,这原理类似 java 程序,源代码文件是.java,编译好之后是.class ...

    tomcat-embed-jasper-9.0.16.jar

    tomcat-embed-jasper-9.0.16.jar

    tomcat-embed-jasper-7.0.50

    tomcat-embed-jasper-7.0.50 jar包

    jsp 自动编译机制详细介绍

    jsp 自动编译机制详细介绍 总的来说,Jasper的自动检测实现的...上图是一个形象的示意图,我们知道Tomcat架构中有四个级别的容器,Engine、Host、Context和Wrapper,而jsp编译对应在wrapper级别,所以通过StandardWra

    junit扩展JspTest.zip

    内部它使用Jasper作为jsp编译引擎---tomcat的jsp引擎。对于使用maven作为构建工具的团队或个人,使用非常简单,添加下面的依赖到你的pom文件    &lt;groupId&gt;com.github.lkoskela.jsptest&lt;/groupId&gt;  &lt;artifactId&gt;...

    jasper实例教程 jsp输出 饼状图pdf

    jasper实例教程 jsp输出 饼状图pdf jasper实例教程 jsp输出 饼状图pdf

    Jasper_Report用户手册

    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 ...

    解决 tomcat9 在Ubuntu 安装下 访问tomcat 首页 java.lang.ClassNotFoundException: org.apache.jsp.index_jsp 错误

    在阿里云买了一台Ubuntu16.04的ECS服务器,安装完Tomcat 9 和JDK 1.8之后,兴致勃勃的访问服务器的8080端口,发现竟然报错:org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp....

    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-...

    tomcat6、7、8、9, maven3.5

    的Apache Tomcat 6.x的建立在Tomcat中的5.5.x的改进和实现的Servlet 2.5和 JSP 2.1规范。除此之外,它还包括以下改进: 内存使用优化 高级IO功能 重构聚类 Tomcat的6的用户应该知道,Tomcat的团队已经公布了 的生命...

    jsp运行原理

    其步骤如下: 1.jsp引擎将jsp文件翻译为Servlet源程序; 2.之后又将Servlet源程序编译为.class类文件;...1.Jsp引擎是通常一个Servlet程序,Tomcat中的jsp引擎就是org.apache.jasper.servlet.JspServlet;

    jsp上使用jasper做报表

    NULL 博文链接:https://mr-cheney.iteye.com/blog/1168350

    解决JBuilder2006中JSP不能使用泛型的问题

    在JBuilder2006中默认JDK1.5+Tomcat5.5.9,但是在JSP页面中却不能使用泛型。应该说泛型是JDK1.5之后有的,但是在Servlet中却可以使用。why? 查了很多资料,都没有解决,有说在Tomcat/common/lib中加入ant.jar,...

    jasper-el.jar

    tomcat配置必备jar包,如果eclipse等IDE不能只用tomcat就是缺它了。

    org.apache.jasper 的jar包下载

    org.apache.jasper jar包下载非常完整。希望可以帮助你!

    tomcat-7_API_帮助文档

    * 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

    jasper.jar jasper.jar

    eWebeditor JSP 王志峰修改版

    &lt;servlet-class&gt;org.apache.jasper.servlet.JspServlet &lt;param-name&gt;classdebuginfo &lt;param-value&gt;true &lt;load-on-startup&gt;3 &lt;servlet-name&gt;debugjsp *.jsp 6、重新启动服务器即可。

    Jasper report用户手册Jasper report用户手册

    Jasper report用户手册Jasper report用户手册Jasper report用户手册Jasper report用户手册

Global site tag (gtag.js) - Google Analytics