什么是Jasper

什么是Jasper

  Jasper是tomcat中使用的JSP引擎,在Tomcat 6中使用的是Jasper 2,相对于原来的版本作了不少的改进,比如:JSP的标签缓冲池、后台编译、页面改变时自动重新编译、Eclipse中JDT编译等等。

  那么Jasper到底是做什么的呢?

  简单的说,就是把JVM不认识的JSP文件解析成java文件,然后编译成class文件提供使用。目前有很多的JSP解析引擎,Tomcat中使用的是Jasper。

  在Tomcat中可以通过配置 CATALINA_HOME/conf/web.xml 中的内容,配置Jasper的选项(web.xml中的内容很长,截取其中的一部分):

复制代码
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

    <servlet>
        <servlet-name>jspservlet-name>
        <servlet-class>org.apache.jasper.servlet.JspServletservlet-class>
        <init-param>
            <param-name>forkparam-name>
            <param-value>falseparam-value>
        init-param>
        <init-param>
            <param-name>xpoweredByparam-name>
            <param-value>falseparam-value>
        init-param>
        <load-on-startup>3load-on-startup>
    servlet>
复制代码

  具体的参数,上面都有解释,这里就不多赘述了。

  都是些调节JSP编译的参数,比如多长时间检测一次,debug的调试信息相关配置,编译信息等等。

如何利用Japser.Jspc自定义预编译JSP

  1 jasper相关jar包

  在tomcat6中提供了几个jasper的jar包,相对于之前版本,去掉了jasper-compiler.jar以及jasper-runtime.jar,合并为jasper.jar

什么是Jasper_第1张图片

  另外如果开发者自己想要编译JSP,还需要使用ant以及tomcat-juli.jar。

  2 ant相关jar包

  其中ant相关的jar包可以去官网下载ant.zip,然后解压提取其中lib内的jar包。

什么是Jasper_第2张图片

  3 tomcat-juli相关jar包

  tomcat-juli.jar位于CATALINA_HOME/bin/目录下。

 

  在Eclipse的构建路径下添加上述相关的jar包即可,然后创建测试类:

  添加JAR包步骤:右键工程-->Properties-->Java Build Path-->Libraries-->Add External JARs-->选择添加的JAR包-->OK

复制代码
package com.test;
import org.apache.jasper.JspC;

public class testCompiler{
    public String jspcTest(){  
        String error="";  
        try {  
            JspC jspc = new JspC();  
            //第一种方式
            String[] arg0 = {"-uriroot", "F:/apache-tomcat-6.0.43/webapps/ROOT", "-d", "F:/test", 
                    "index.jsp" }; 
            jspc.setArgs(arg0); 
            
            //第二种方式
            /*jspc.setUriroot("F:/apache-tomcat-6.0.43/webapps/ROOT");//web应用的root目录  
            jspc.setOutputDir("F:/test");//.java文件和.class文件的输出目录  
            jspc.setJspFiles("index.jsp");//要编译的jsp  */
            
            jspc.setCompile(true);//是否编译 false或不指定的话只生成.java文件  
            jspc.execute(); 
        }catch(Exception e){
            error=e.toString();
        }
        return error;  
    }
    public static void main(String args[]){  
        testCompiler t=new testCompiler();  
        System.out.println(t.jspcTest());  
    }  
}  
复制代码

  可以使用两种方式进行自定义的JSP编译。

  测试后,可以在 F:/test 目录下发现编译出的index.jsp的java文件以及class文件。

什么是Jasper_第3张图片

你可能感兴趣的:(Java,jasper)