package com.schedule;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class StaticPageService {
private Map < String, String > urlMap;
private String realPath;
public void createFile() {
if (urlMap == null ) {
throw new NullPointerException( " The url map is should not be null! " );
}
Iterator < String > keys = urlMap.keySet().iterator();
String inputLine;
String enter = " \n " ;
StringBuffer buffer = new StringBuffer();
try {
while (keys.hasNext()) {
String key = keys.next();
URL url = new URL(key);
HttpURLConnection uc = (HttpURLConnection) url.openConnection();
BufferedReader in = new BufferedReader( new InputStreamReader(uc.getInputStream()));
if (buffer.length() > 0 )buffer.delete( 0 ,buffer.length());
while ((inputLine = in.readLine()) != null ) {
buffer.append(inputLine);
buffer.append(enter);
}
String file = realPath + urlMap.get(key);
OutputStreamWriter fw = new OutputStreamWriter(
new FileOutputStream(file), " GBK " );
fw.write(buffer.toString());
in.close();
fw.close();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/** */ /**
* @param urlMap
* the urlMap to set
*/
public void setUrlMap(Map < String, String > urlMap) {
this .urlMap = urlMap;
}
/** */ /**
* @param realPath
* the realPath to set
*/
public void setRealPath(String realPath) {
this .realPath = realPath;
}
public static void main(String[] args) {
StaticPageService service = new StaticPageService();
Map < String, String > urlMap = new HashMap < String, String > ();
// map的key为要生成静态页面的url,value为生成后的静态文件保存的路径
urlMap.put( " http://localhost:8080/index.jsp " , " /temp/index1.html " );
urlMap.put( " http://www.yahoo.com.cn/ " , " /temp/index2.html " );
// 此参数用来设置当前Web应用的真实路径
service.setRealPath( " d: " );
service.setUrlMap(urlMap);
service.createFile();
}
}