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();
}
}
}
}
}
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();
}
}
}
}
}
发表评论
文章已被作者锁定,不允许评论。
-
oracle 的 sequence
2010-06-24 16:57 680-- Create sequence create sequ ... -
简单的log4j.propertier配置
2010-01-27 16:46 845简单的log4j.properties配置,不详细解释了 使用 ... -
IO操作_读取Excel
2010-01-27 16:37 835import java.io.FileInputStream; ... -
IO操作_文件读取
2010-01-27 16:25 683import java.io.BufferedReader; ... -
队列学习小例子
2010-01-06 22:44 618public class Queue { private l ... -
栈学习简单小例子
2010-01-06 22:43 863public class ArrayStrack { pri ... -
对象排序简单小例子
2009-12-30 18:24 714public class ObjectSort { Pers ... -
简单的排序
2009-12-29 14:59 741public class Sort { public sta ... -
CSS基本语法(收藏)
2009-12-29 14:22 6891. 基本语法 CSS的定义是 ... -
配置weblogic.xml文件获得相关的servlet文件
2009-12-29 14:13 1800JSP的运行时,先把JSP翻译成对应的Servlet,再把Se ... -
eclipse启动参数设置
2009-12-29 13:33 1022-vm D:\Tools\JDK\jdk1.6.0_05\bi ... -
增加删除行
2009-12-29 13:25 459//被操作模板 <table id="hidd ... -
Filter学习
2009-12-29 12:29 529EncodeFilter,实现类如下 import java ... -
Js实用小技巧(摘抄)
2009-12-29 12:01 6871.document.write(""); ... -
常用的几个js小方法
2009-07-27 11:03 5631.这个是页面输入框的trim操作,很简单实用 String. ...
相关推荐
下面我们将深入探讨.NET页面静态化的核心概念、实现方法以及其优势。 一、页面静态化原理 页面静态化的基本思想是,在用户请求动态内容时,服务器不再实时生成动态页面,而是直接返回已经生成的静态HTML文件。这...
Java页面静态化主要有两种方式:服务器端静态化和客户端静态化。 1. 服务器端静态化: - **预渲染(Prerendering)**:在用户请求之前,系统自动将一些常用或者热点页面生成静态HTML文件,存储在文件系统或CDN上。...
在进行页面静态化时,我们还需要考虑一些问题,比如如何处理动态内容(如用户登录状态、个性化推荐)、如何同步静态文件和动态数据、以及如何清理过期的静态文件等。这些问题可以通过设计合理的缓存策略和定时任务来...
因此,页面静态化是提升网站性能的有效手段。 页面静态化技术的核心原理是通过解析动态网页的URL,生成对应的HTML文件,并存储在服务器的文件系统或缓存中。当用户请求该URL时,服务器直接返回预先生成的HTML,而...
1. **JSP页面静态化原理**: - JSP页面静态化的核心思想是将原本需要服务器实时解析的动态内容,提前转换为静态HTML文件,存储在服务器上。这样,当用户请求这些页面时,服务器不再需要执行JSP脚本,而是直接返回...
以下是一个简单的PHP页面静态化的实例: ```php // 连接数据库 $dbh = new PDO('mysql:host=localhost;dbname=test', 'username', 'password'); // 获取动态内容,例如文章 $stmt = $dbh->prepare("SELECT title,...
标题“cms页面静态化源码”表明我们将探讨如何通过源代码实现CMS系统中的页面静态化功能。 在动态网站中,每当用户请求一个页面时,服务器都会执行相应的PHP、Java、Python或其它脚本语言,生成HTML内容,然后将其...
在ASP.NET中,动态页面静态化主要有两种方式:预编译(Precompilation)和运行时静态化(Runtime Output Caching)。 1. 预编译: 预编译是ASP.NET提供的一种在部署前将所有ASPX页面转换为编译好的DLL文件的过程。...
下面我们将详细探讨这个“一个静态化的例子(利用模板生成静态化页面)”。 首先,模板引擎是实现静态化过程的关键工具。模板页面通常由HTML代码组成,其中包含一些特殊的标记或指令,这些标记会被动态数据替换。...
ASP.NET页面静态化和伪静态化是Web开发中提高网站性能和SEO优化的重要技术。页面静态化是指将原本动态生成的HTML页面转化为静态HTML文件,这样用户请求时无需执行服务器端的代码,直接从硬盘读取文件,提高了访问...
页面静态化是Web开发中的一个重要概念,主要目的是提高网站的访问速度和搜索引擎优化(SEO)。在Java Web开发中,页面静态化通常涉及到将动态生成的HTML页面转化为纯HTML文件,以便用户请求时无需通过服务器执行复杂...
其中一种常见的方法就是实现页面静态化。本文将详细介绍如何使用 PHP 来实现页面静态化,包括纯静态化和伪静态化两种方式,并通过具体的案例进行演示。 #### 二、基础知识 **页面静态化**是指将动态生成的网页转换...
php 页面静态化
**JSP页面静态化技术详解** 在Web开发中,JavaServer Pages(JSP)是一种常见的动态网页技术,它允许开发者将HTML代码与Java代码混合编写,以实现动态内容的生成。然而,在高流量的网站中,为了提高性能和降低...
页面静态化是Web开发中的一种优化策略,主要目的是提高网站的加载速度和用户体验,同时也有助于搜索引擎优化(SEO)。真静态,顾名思义,就是将动态网页转化为静态HTML文件,用户请求时直接返回这些预生成的HTML,而...
前台页面的静态化就有利于SEO,所以这个问题摆在了我的面前,在网上一搜,关于这方面的资料不是很多,又很杂,关于这方面的知识,越来或多的程序员将会碰到,原来项目中这部分静态化的功能主要由我来做的,现在我将...
### ASP.NET 动态页面静态化详解 #### 一、概念理解 动态页面静态化(Dynamic Page Staticization)是指将动态生成的网页内容转换为静态HTML文件的过程。这一技术广泛应用于提高网站性能、优化SEO(搜索引擎优化)...
这个压缩包文件"ASP.NET页面静态化例子带数据库.rar"包含了实现这一技术的具体示例,很可能是通过代码、数据库脚本和配置文件来展示的。 首先,我们要理解ASP.NET页面静态化的概念。在ASP.NET中,通常网页是动态...
在本项目"springboot页面静态化-Thymeleaf"中,我们将探讨如何利用Thymeleaf技术实现Spring Boot应用的页面静态化,并通过一个简单的示例来演示其基本用法。 1. **Thymeleaf简介** Thymeleaf是一个开放源代码的...
动态页面静态化技术,c#技术 动态页面静态化技术,c#技术