手动编译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
上一篇:joomla \libraries\joomla\session\session.php 反序列化截断畸形字符串导致对象注入漏洞


下一篇:.NET Web API 新手遇到的那些“坑”