以Tomcat为例,说明一下容器如何编译JSP
1.1 命令行方式
java -classpath %CLASS_PATH% org.apache.jasper.JspC -uriroot PATH_TO_WEB\website\ -d PATH_TO_WEB\website\WEB-INF\jspclasses -p com.neohope.pages -c hello -javaEncoding UTF-8 -compile PATH_TO_WEB\website\jsp\hello.jsp
上面的命令行是,将website项目中jsp\hello.jsp文件,生成对应的java文件,文件输出路径为WEB-INF\jspclasses,类包名为com.neohope.pages,类名hello,编码为UTF-8
1.2 Java代码方式
package com.neohope.jsp.complier;
import org.apache.jasper.JspC;
public class MyComplier {
public static void main(String args[]) {
try {
JspC jspc = new JspC();
jspc.setUriroot("PATH_TO_WEB\\JSP\\JSPComplier\\website");
jspc.setJspFiles("PATH_TO_WEB\\JSP\\JSPComplier\\website\\jsp\\hello.jsp");
jspc.setOutputDir("PATH_TO_WEB\\JSP\\JSPComplier\\website\\WEB-INF\\jspclasses");
jspc.setPackage("com.neohope.pages");
jspc.setClassName("hello");
jspc.setJavaEncoding("UTF-8");
jspc.setCompile(true);
jspc.execute();
System.out.println("job done!");
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
代码地址:
JSPComplierSample