`
tingjia_2009
  • 浏览: 15178 次
  • 性别: Icon_minigender_2
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

简单的页面静态化

阅读更多
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class MakeHtml {

public static void main(String[] args){
MakeHtml maker = new MakeHtml();
maker.writeHtml("F:\\c\\sina.html","http://www.google.cn/search?hl=zh-CN&source=hp&q=a&btnG=Google+%E6%90%9C%E7%B4%A2","gb2312");

}

public  String getHtml(String httpUrl,String code){
StringBuffer htmlBuffer = new StringBuffer();
try {
//建立资源
URL url = new URL(httpUrl);
//打开连接
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("User-Agent","Mozilla/4.0");
connection.connect();
//打开的连接读取的输入流
InputStream in = connection.getInputStream();
//从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。
BufferedReader buf = new BufferedReader(new InputStreamReader(in,code));
String currentLine = "";
while((currentLine=buf.readLine())!=null){
htmlBuffer.append(currentLine+"\n");
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return htmlBuffer.toString();
}



public synchronized void writeHtml(String filePath,String httpUrl,String code){
Writer writer = null;
    
String tempPathFile = filePath.substring(0,filePath.indexOf("."))+"_temp"+filePath.substring(filePath.indexOf("."));
  File writerFile = new File(tempPathFile);

  boolean existFlag = writerFile.exists();
 
  //目录不存在则生成目录
  if(!writerFile.isDirectory()){
  File dir = writerFile.getParentFile();
  if(!dir.exists()){
  dir.mkdirs();
  }
 
  }
  //文件存在,则删除文件重建
  if(existFlag){
  writerFile.delete();
  }
 
  try {
//建立新的文件
writerFile.createNewFile();
//输出
writer = new OutputStreamWriter(new FileOutputStream(tempPathFile), code);
writer.write(getHtml(httpUrl,code));
writer.close();

//检查原来的文件是否存在,存在,则删除,将零时文件重命名为旧的文件名,否则,直接重命名
File oldFile = new File(filePath);
boolean oldFileExist = oldFile.exists();
if(oldFileExist){
oldFile.delete();
}
writerFile.renameTo(oldFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}finally{
if(writer!=null){
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

}

}
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    .net页面静态化

    下面我们将深入探讨.NET页面静态化的核心概念、实现方法以及其优势。 一、页面静态化原理 页面静态化的基本思想是,在用户请求动态内容时,服务器不再实时生成动态页面,而是直接返回已经生成的静态HTML文件。这...

    有关Java页面静态化

    Java页面静态化主要有两种方式:服务器端静态化和客户端静态化。 1. 服务器端静态化: - **预渲染(Prerendering)**:在用户请求之前,系统自动将一些常用或者热点页面生成静态HTML文件,存储在文件系统或CDN上。...

    java 页面静态化

    在进行页面静态化时,我们还需要考虑一些问题,比如如何处理动态内容(如用户登录状态、个性化推荐)、如何同步静态文件和动态数据、以及如何清理过期的静态文件等。这些问题可以通过设计合理的缓存策略和定时任务来...

    c# 页面静态化软件

    因此,页面静态化是提升网站性能的有效手段。 页面静态化技术的核心原理是通过解析动态网页的URL,生成对应的HTML文件,并存储在服务器的文件系统或缓存中。当用户请求该URL时,服务器直接返回预先生成的HTML,而...

    java JSP页面静态化总结_动态页面变为静态页面以减少访问数据库的次数提高速度.zip

    1. **JSP页面静态化原理**: - JSP页面静态化的核心思想是将原本需要服务器实时解析的动态内容,提前转换为静态HTML文件,存储在服务器上。这样,当用户请求这些页面时,服务器不再需要执行JSP脚本,而是直接返回...

    php页面静态化

    以下是一个简单的PHP页面静态化的实例: ```php // 连接数据库 $dbh = new PDO('mysql:host=localhost;dbname=test', 'username', 'password'); // 获取动态内容,例如文章 $stmt = $dbh->prepare("SELECT title,...

    cms页面静态化源码

    标题“cms页面静态化源码”表明我们将探讨如何通过源代码实现CMS系统中的页面静态化功能。 在动态网站中,每当用户请求一个页面时,服务器都会执行相应的PHP、Java、Python或其它脚本语言,生成HTML内容,然后将其...

    asp.net 动态页面静态化

    在ASP.NET中,动态页面静态化主要有两种方式:预编译(Precompilation)和运行时静态化(Runtime Output Caching)。 1. 预编译: 预编译是ASP.NET提供的一种在部署前将所有ASPX页面转换为编译好的DLL文件的过程。...

    一个静态化的例子(利用模板生成静态化页面)

    下面我们将详细探讨这个“一个静态化的例子(利用模板生成静态化页面)”。 首先,模板引擎是实现静态化过程的关键工具。模板页面通常由HTML代码组成,其中包含一些特殊的标记或指令,这些标记会被动态数据替换。...

    ASP.NET页面静态化,伪静态化

    ASP.NET页面静态化和伪静态化是Web开发中提高网站性能和SEO优化的重要技术。页面静态化是指将原本动态生成的HTML页面转化为静态HTML文件,这样用户请求时无需执行服务器端的代码,直接从硬盘读取文件,提高了访问...

    页面静态化

    页面静态化是Web开发中的一个重要概念,主要目的是提高网站的访问速度和搜索引擎优化(SEO)。在Java Web开发中,页面静态化通常涉及到将动态生成的HTML页面转化为纯HTML文件,以便用户请求时无需通过服务器执行复杂...

    php实现页面静态化

    其中一种常见的方法就是实现页面静态化。本文将详细介绍如何使用 PHP 来实现页面静态化,包括纯静态化和伪静态化两种方式,并通过具体的案例进行演示。 #### 二、基础知识 **页面静态化**是指将动态生成的网页转换...

    php 页面静态化

    php 页面静态化

    jsp的页面静态化技术,很实用

    **JSP页面静态化技术详解** 在Web开发中,JavaServer Pages(JSP)是一种常见的动态网页技术,它允许开发者将HTML代码与Java代码混合编写,以实现动态内容的生成。然而,在高流量的网站中,为了提高性能和降低...

    页面静态化之真静态

    页面静态化是Web开发中的一种优化策略,主要目的是提高网站的加载速度和用户体验,同时也有助于搜索引擎优化(SEO)。真静态,顾名思义,就是将动态网页转化为静态HTML文件,用户请求时直接返回这些预生成的HTML,而...

    Jsp页面静态化(freemarker)教程及源码

    前台页面的静态化就有利于SEO,所以这个问题摆在了我的面前,在网上一搜,关于这方面的资料不是很多,又很杂,关于这方面的知识,越来或多的程序员将会碰到,原来项目中这部分静态化的功能主要由我来做的,现在我将...

    ASP.NET 动态页面静态化

    ### ASP.NET 动态页面静态化详解 #### 一、概念理解 动态页面静态化(Dynamic Page Staticization)是指将动态生成的网页内容转换为静态HTML文件的过程。这一技术广泛应用于提高网站性能、优化SEO(搜索引擎优化)...

    ASP.NET页面静态化例子带数据库.rar

    这个压缩包文件"ASP.NET页面静态化例子带数据库.rar"包含了实现这一技术的具体示例,很可能是通过代码、数据库脚本和配置文件来展示的。 首先,我们要理解ASP.NET页面静态化的概念。在ASP.NET中,通常网页是动态...

    springboot页面静态化-Thymeleaf

    在本项目"springboot页面静态化-Thymeleaf"中,我们将探讨如何利用Thymeleaf技术实现Spring Boot应用的页面静态化,并通过一个简单的示例来演示其基本用法。 1. **Thymeleaf简介** Thymeleaf是一个开放源代码的...

    动态页面静态化技术,c#技术

    动态页面静态化技术,c#技术 动态页面静态化技术,c#技术

Global site tag (gtag.js) - Google Analytics