手动编译Jsp文件

手动模拟Tomcat编译jsp文件

Tomcat编译jsp文件的配置路径是在%tomcat_home%/conf/web.xml中,有这样一段代码

    <servlet>
        <servlet-name>jsp</servlet-name>
        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
        <init-param>
            <param-name>fork</param-name>   <!--强制编译 -->
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <param-name>xpoweredBy</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>3</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <url-pattern>*.jsp</url-pattern>
    </servlet-mapping>

此段代码表示以.jsp结尾的文件都交给org.apache.jasper.servlet.JspServlet这个类执行。

JspServlet这个类的功能是将.jsp文件编译为.java文件。

下面就来手动编译jsp文件

1.导入jar包:jasper.jar;servlet-api.jar;el-api.jar;catalina-ant.jar;jasper-el.jar;jasper-jdt.jar;tomcat-juli.jar;jsp-api.jar;ant.jar 这些jar包在%tomcat_home%/lib/和%tomcat_home%/bin/中。

2.编译类是在jasper.jar中的org.apache.jasper.JspC这个类。

执行:java -cp jasper.jar;servlet-api.jar;el-api.jar;catalina-ant.jar;jasper-el.jar;jasper-jdt.jar;tomcat-juli.jar;jsp-api.jar org.apache.jasper.JspC  >  result.txt

实例:编译webapp目录下的所有.jsp文件。

java -cp jasper.jar;servlet-api.jar;el-api.jar;catalina-ant.jar;jasper-el.jar;jasper-jdt.jar;tomcat-juli.jar;jsp-api.jar;ant.jar org.apache.jasper.JspC -webapp webapp -uriroot webapp -compile -webxml web.xml -d classes -javaEncoding GBK -p com.miatc
原文地址:https://www.cnblogs.com/lhp2012/p/5039811.html