Java页面静态化工具类.java

package com.qq.utils;

import java.io.File;

import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.log4j.Logger;

/**
 * HTML页面静态化工具
 * @author LiuJunGuang
 * @date 2014年2月22日上午11:46:42
 */
public class HtmlGeneratorUtils {
    private static Logger log = Logger.getLogger(HtmlGeneratorUtils.class);
    private static final String encoding = "UTF-8";

    /** 根据模版及参数产生静态页面 */
    public static boolean createHtmlPage(String url, String htmlFileName) {
        GetMethod getMethod = null;
        try {
            HttpClient httpClient = new HttpClient();
            httpClient.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, encoding);
            getMethod = new GetMethod(url);
            getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());// 使用系统提供的默认的恢复策略,在发生异常时候将自动重试3次
            getMethod.addRequestHeader("Content-Type", "text/html;charset=UTF-8");// 设置Get方法提交参数时使用的字符集,以支持中文参数的正常传递
            int statusCode = httpClient.executeMethod(getMethod);// 执行Get方法并取得返回状态码,200表示正常,其它代码为异常
            if (statusCode != 200) {
                log.error("静态页面引擎在解析" + url + "产生静态页面" + htmlFileName + "时出错!");
            } else {
                IOUtils.copy(getMethod.getResponseBodyAsStream(), FileUtils.openOutputStream(new File(htmlFileName)));
            }
            return true;
        } catch (Exception ex) {
            log.error("静态页面引擎在解析" + url + "产生静态页面" + htmlFileName + "时出错:" + ex.getMessage(), ex);
        } finally {
            if (getMethod != null)
                getMethod.releaseConnection();
        }
        return false;
    }

    // 测试方法
    public static void main(String[] args) {
        HtmlGeneratorUtils.createHtmlPage("http://localhost:8080/MSDCP/index.action", "c:/a/a.html");
    }
}
时间: 2024-11-19 07:45:48

Java页面静态化工具类.java的相关文章

如何处理java高并发问题---之页面静态化

转载:如何处理java高并发问题---之页面静态化 解决java中的高并发问题可以从硬件软件等方面入手,硬件如:服务器:软件如:系统缓存.页面静态化等.这里我写的是页面静态化的简单小例子.之所以将这个小例子记录下来是因为之前对页面静态化有误解,原以为静态化页面就是在项目编写中前端页面利用html就可以.但是在参考网上资料后发现理解误差很大,以下是我在参考了一些网上资料后写的实现页面静态化的简单实例: 项目结构图 1.业务处理类Servlet.java(这里为了方便采用的servlet,可根据项目

黑马程序员——Java基础---集合框架工具类

黑马程序员——Java基础<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------ 一.概述 Java为操作Set.List和Map提供了一系列工具类,主要有Collections和Arrays.这两个工具类的特点:类中的方法都是静态的,不需要创建对象,直接使用类名调用即可.Collections:是集合对象

Java 后台验证的工具类

Java 后台验证的工具类 public class ValidationUtil {         //手机号     public static String mobile = "^((13[0-9])|(14[0-9])|(15[0-9])|(16[0-9])|(17[0-9])|(18[0-9])|(19[0-9]))\\d{8}$";       //不允许为空     public static String blank = ".*[^ ].*";  

一个做页面静态化的php类

<?phpnamespace Common;/* * * 功能:页面静态化的创建和删除 * 创建:当且仅当,一个页面需要被静态化并且还未静态化时. * 删除:当且仅当,一个页面存在静态化页面并且需要被重新静态化时. * * 作者:郭军周 * * 注 :本类基于ThinkPHP3.2,或者其他具有"单一入口且MVC模式"的其他php框架. * * 使用方式:在Controller的构造方法中获取其对象:在Controller的销毁方法里,用其对象的_static方法. * 例:XX

页面静态化1---概念(Apache内置压力测试工具使用方法)

三个概念 ①静态网址: http://127.0.0.1/regis.html ②动态网址:在请求页面时可以动态的传一些值进去. http://127.0.0.1/regis.php?id=45&title=今天天气不错 ③伪静态网址: 伪静态仅仅是对动态网址的一个重写,伪静态网址不能让动态网址静态化,搜索引擎不会认为伪静态就是HTML文档,其次伪静态可取,但是应把重心放在取出冗余参数.规范URL,竟可能的避免重复也等等. 举例说明:http://v.youku.com/v_show/id_XM

java中常用的工具类(二)

下面继续分享java中常用的一些工具类,希望给大家带来帮助! 1.FtpUtil Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

java中常用的工具类

一.String工具类 package com.itjh.javaUtil; import java.util.ArrayList; import java.util.List; /** * * String工具类. <br> * * @author 宋立君 * @date 2014年06月24日 */ public class StringUtil { private static final int INDEX_NOT_FOUND = -1; private static final St

分享万能java字符串编码转换工具类

代码下载地址:http://www.zuidaima.com/share/1795356301560832.htm 原文:分享万能java字符串编码转换工具类 package com.zuidaima.util; import java.io.UnsupportedEncodingException; /** * 转换字符串的编码 */ public class ChangeCharset { /** 7位ASCII字符,也叫作ISO646-US.Unicode字符集的基本拉丁块 */ publ

Java学习-049-正则工具类

自去年九月份决定再次入学和职业资格进阶,开始备战二者考试至今,以及当下进行中的职称申请,犹如孤独的狼,不断前行在路上,而今凡凡总总的已历8月... 不感慨了,如下为一园友需要的正则工具类,直接上码: 1 public class RegUtils { 2 private static Logger logger = Logger.getLogger(RegUtils.class.getName()); 3 private static String msg = ""; 4 privat