以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