淡泊明智宁静志远 2009-07-01
代码如下:
import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; /** * @author Xing,XiuDong */ public class HTMLGenerator { public static final String generate(final String url) { if (StringUtils.isBlank(url)) { return null; } Pattern pattern = Pattern.compile("(http://|https://){1}[\\w\\.\\-/:]+"); Matcher matcher = pattern.matcher(url); if (!matcher.find()) { return null; } StringBuffer sb = new StringBuffer(); try { URL _url = new URL(url); URLConnection urlConnection = _url.openConnection(); BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); String inputLine; while ((inputLine = in.readLine()) != null) { sb.append(inputLine); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return sb.toString(); } /** * Test Code * Target : http://www.google.cn/ */ public static void main(String[] args) throws IOException { String src = HTMLGenerator.generate("http://www.google.cn/"); File file = new File("C:" + File.separator + "index.html"); FileUtils.writeStringToFile(file, src, "UTF-8"); } }
代码如下:
/** * generite html source code * * @author Xing,XiuDong * @date 2009.06.22 * @param request * @param url * @param toWebRoot * @param encoding * @throws IOException */ public void genHtml(HttpServletRequest request, String url, boolean toWebRoot, String encoding) throws IOException { if (null == url) { url = request.getRequestURL().toString(); } String contextPath = request.getContextPath(); String seq = StringUtils.substring(String.valueOf(new Date().getTime()), -6); String ctxPath = super.getServlet().getServletContext().getRealPath(File.separator); if (!ctxPath.endsWith(File.separator)) { ctxPath += File.separator; } String filePath = StringUtils.substringAfter(url, contextPath); filePath = filePath.replaceAll("\\.(do|jsp|html|shtml)$", ".html"); String savePath = ""; String autoCreatedDateDir = ""; if (!toWebRoot) { savePath = StringUtils.join(new String[] { "files", "history", "" }, File.separator); String[] folderPatterns = new String[] { "yyyy", "MM", "dd", "" }; autoCreatedDateDir = DateFormatUtils.format(new Date(), StringUtils.join(folderPatterns, File.separator)); filePath = StringUtils.substringBefore(filePath, ".html") + "-" + seq + ".html"; } File file = new File(ctxPath + savePath + autoCreatedDateDir + filePath); FileUtils.writeStringToFile(file, HTMLGenerator.generate(url), encoding); }