`

根据 url生成html 静态化

阅读更多
package com.mjp.core.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Date;
import java.util.List;

import org.apache.log4j.Logger;



/**将根据url生成静态的html
* @author mojianpo
*
*/
public class MakeHtml {
private static long star = 0;
private static long end = 0;
private static long ttime = 0;

private static final Logger logger = Logger.getLogger(MakeHtml.class.getName());
/**
* 根据url 生成对应的 html代码
*
* @param httpUrl
* @return
*/
public static String getHtmlCode(String httpUrl) {
httpUrl = StringUtil.nvl(httpUrl);
if(httpUrl.equals("")){
return "";
}
Date before = new Date();
star = before.getTime();
String htmlCode = "";
try {
InputStream in;
URL url = new java.net.URL(httpUrl);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("User-Agent", "Mozilla/4.0");
connection.connect();
in = connection.getInputStream();
java.io.BufferedReader breader = new BufferedReader(
new InputStreamReader(in, "utf-8"));
String currentLine;
while ((currentLine = breader.readLine()) != null) {
htmlCode += currentLine + "\n";
}
} catch (Exception e) {
logger.error(e.getCause());
e.printStackTrace();
} finally {
Date after = new Date();
end = after.getTime();
ttime = end - star;


logger.debug("执行时间:" + ttime + "秒");
}
return htmlCode;
}

/**
* 根据给的的url List 生成给定名称路径的html文件列表
*
* @param urlLst
*            url列表
* @param fileLst
*            要生成的文件的全路径列表
* @param isDel
*            true 表示 要删除存在的文件
*/
public static synchronized void writeHtml(List<String> urlLst, List<String> fileLst,
boolean isDel) {
if(urlLst == null || fileLst == null ||(urlLst.size() != fileLst.size())){
return;
}
for (int i = 0,count = urlLst.size();i < count; i++) {
writeHtml(urlLst.get(i), fileLst.get(i),isDel);
}

}

/**
* 根据给的的url 生成给定名称路径的html文件
*
* @param url
*           
* @param filePath
* @param isDel
*            true 表示 要删除存在的文件
*/
public static synchronized void writeHtml(String url, String filePath,
boolean isDel) {
Writer ow = null;
try {
File writeFile = new File(filePath);
boolean isExit = writeFile.exists();
File folder = writeFile.getParentFile();
if(folder.exists() == false){
folder.mkdirs();
}
if (isExit != true) {
writeFile.createNewFile();
} else {
if (isDel) {
writeFile.delete();
writeFile.createNewFile();
}
}
ow = new OutputStreamWriter(new FileOutputStream(filePath), "utf-8");
ow.write(getHtmlCode(url));
} catch (Exception ex) {
logger.debug(ex.getMessage());
} finally {
try {
ow.close();
} catch (Exception ex) {
logger.debug(ex.getMessage());
}
logger.debug(url + "\n" + filePath + "\n is make html ok..................");
}
}

/**测试main函数
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
String httpUrl = "http://localhost:4848/";
//writeHtml(httpUrl, "f:/a.html", true);
URL url = new java.net.URL(httpUrl);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection = (HttpURLConnection) url.openConnection();
System.out.println(connection.getResponseCode());
}

}
分享到:
评论

相关推荐

    通过URL生成静态页面

    此功能是通过URL将页面生成静态的html文件

    url转html将远程url生成本地静态文本

    将远程url生成本地静态文本,实现url装html txt 等 还可以配合批处理+计划任务实现定时更新动态页面成静态页面

    wordpress插件纯静态html网页页面生成插件simply-static

    simply-static是一个简单的一键生成全站静态html文件的wordpress插件,支持生成或不生成指定url的html文件,生成文件的资源路径可选相对路径、绝对路径和脱机文件,html文件可以直接生成在服务器或zip压缩包下载。...

    JSP生成静态HTML页面的几种方法

    JSP 生成静态 HTML 页面的几种方法 JSP 技术广泛应用于 web 开发领域,其中一个重要的应用场景是生成静态 HTML 页面。静态 HTML 页面相比动态页面具有许多优点,例如加载速度快、搜索引擎友好、减少服务器负载等。...

    Asp.net 生成静态页面(简单用法).rar

    3、静态页面类(HtmlPage),主要是调用UrlMapping和FilterStream类,哪个页面想静态化,就继承这个类。 4、HtmlHandler类,路径后缀为Html的,都由它来处理,与HtmlPage类相似。 5、HtmlPanel类(控件),页面...

    php 生成静态文件

    用于生成静态的html、静态缓存文件的类,下载下来直接可以运行,我现在用的是生成缓存,会自动根据url的不同或者参数的不同生成的缓存文件,希望这个小程序能给大家带来方便。。。

    兼顾性能与SEO的URL重写与真静态化思路

    URL静态化思路图 总体思路: 0,分频道分别利用二级域名指向不同服务器,可以分流很大压力,用cookie传递登陆状态 1,URL重定向所有HTML到ASPX 2,在GLOBALX页里判断是否是第一次, 3,第一次就利用ASPX生成HTML, 4,...

    Asp.net生成静态文件示例源码(两种途径)

    Asp.net生成静态文件示例源码(两种途径) &lt;br&gt;Asp.net生成静态文件(根据时间自动命名保持,默认扩展名是htm可以自行修改)。 &lt;br&gt;通过收入内容替换模板或者url地址两种方式进行静态文件的生成 &lt;br&gt;...

    ASP.NET MVC生成静态页面的方法

    对于网站来说,生成纯html静态页面除了有利于seo外,还可以减轻网站的负载能力和提高网站性能。 1.先付上封装好生成静态页的原代码: public class Common { #region 获取模板页的Html代码 /// /// 获取页面的...

    ASP.NET的UrlRewrite URL重写伪静态实例

    利用静态文件可提高服务器的运行稳定和速度,坏处就是生成列表的时候会因为增加一条记录从而需要所有相关的列表进行重构,当然不排除有的公司已经攻克的这个问题,但对于大众程序员来说,他依旧是个问题,而且生成的...

    Asp.net生成html文件(模板和 Url)

    Asp.net生成静态文件示例源码(两种途径) Asp.net生成静态文件(根据时间自动命名保持,默认...通过收入内容替换模板或者url地址两种方式进行静态文件的生成 templete.htm为模板文件,htm 为生成后的静态文件保持位置

    2021版帝国cms自定义栏目信息url伪静态插件

    1:栏目要选静态 不生成 2:内容页存放目录--栏目目录,内容页目录存放形式--不设置目录,(有利SEO,方便匹配栏目ID) 3:内容页文件命名形式 不能是目录,但是支持信息文件名的修改,URL也能很好看 4:栏目目录和信息...

    Asp.net生成html文件源码(模板和Url)

    Asp.net生成静态文件(根据时间自动命名保持,默认扩展名是htm可以自行修改)。...通过收入内容替换模板或者url地址两种方式进行静态文件的生成 templete.htm为模板文件,htm为生成后的静态文件保持位置

    使用ASP.NET模板生成HTML静态页面的五种方案

    使用ASP.NET模版生成HTML静态页面并不是难事,主要是使各个静态页面间的关联和链接如何保持完整。本文介绍了使用ASP.NET模版生成HTML静态页面的五种方案

    PHPCMS V9静态化HTML生成设置及URL规则优化

    今天在这里,与大家从使用的角度上,具体分享PHPCMS V9静态化HTML生成设置及URL规则优化实际的使用操作方法

    找网址上网导航 v0.9 完全生成静态HTML版

    这个版本基本上是JIA123改下来的。但是其中增加了URL完成生成可以增加搜索引擎的收录等,还有修改了一下其中包含的小错误,页面布局很合理!

    asp.net动态生成静态

    可以把动态网页生成静态,管理 namespace SvnHostDemo { public partial class WriteFile : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click...

    Phpcms V9 自定义生成html名称

    在几天前的一片教程中,CMSYOU与大家分享了团队以往的经验:PHPCMS V9静态化HTML生成设置及URL规则优化(具体网址:http://www.cmsyou.com/support/85.html) 继Phpcms V9怎么样静态化、伪静态的问题之后,今天在...

    通用HTML文件生成器 1.0.rar

    BBSGood提供的通用HTML静态文件生成器。 使用说明: 该程序使用方便,修改配置上传后,可立即使用。 该程序能将目标的动态访问地址生成HTML文件,从而提高访问速度,对于目前还在以如index.asp的动态页面为首页的...

    URL重寫偽靜態和生成靜態html的簡單教程

    URL重寫偽靜態和生成靜態html的簡單教程,比較容易,大家互相學習。。。

Global site tag (gtag.js) - Google Analytics