原理很简单.
虽然一些JSP的WebServer提供预编译的功能,不过也可以试着自己写一个.
里面主要用到了java的HttpURLConnection 和java.io.*;以下是Console的Code:
package sam.bobpig.com;
import java.io.*;
import java.net.*;
/**
* <p>Title: Asp.net 或 Jsp的Precompile程序</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company:重庆飞时数码公司 </p>
* @author 宋光义
* @version 1.0
*/
public class Precomplie {
public static FileFilter fileFilter=new PrecompileFileFilter();
public URL rootURL;
public Precomplie(URL aRootURL) {
rootURL = aRootURL;
}
//
public void precompileDirectory(File dir,String startDir)
{
File[] files=dir.listFiles(fileFilter);
for(int i=0;i<files.length;i++)
{
if(files[i].isDirectory())
{
precompileDirectory(files[i],startDir+dir.getName());
}
else
{
precompileFile(files[i],startDir+dir.getName());
}
}
}
public void precompileFile(File file,String startDir)
{
try
{
URL precompileURL=new URL(rootURL,startDir+"/"+file.getName()+"?asp_pre=true");
//System.out.println(rootURL.toString());
System.out.println(precompileURL.toString());
HttpURLConnection conn=(HttpURLConnection) precompileURL.openConnection();
int responseCode=conn.getResponseCode();
System.out.println(rootURL+startDir+"/"+file.getName()+" has ok! ["+responseCode+"]");
}
catch(Exception exc)
{
System.out.println("Exception:"+exc.toString()+"for"+startDir+file.getName());
}
}
public static void main(String[] args) {
if(args.length<2)
{
System.out.print("Please supply a base URL and a base directory...");
System.exit(0);
}
try
{
String startURL=args[0];
File start=new File(args[1]);
Precomplie precomp=new Precomplie(new URL(startURL));
if(start.isDirectory())
{
precomp.precompileDirectory(start,"");
}
else
{
precomp.precompileFile(start,"");
}
}
catch(Exception exc)
{
exc.printStackTrace();
}
}
}
class PrecompileFileFilter implements FileFilter
{
public boolean accept(File f)
{
if(f.isDirectory()) return true;
if(f.getName().endsWith(".aspx")) return true;
return false;
}
}