`
zznj1123
  • 浏览: 123984 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

一段将网页静态化的JAVA代码

阅读更多

不多说,直接看源代码,思路很简单,用URLConnection读取页面,然后保存就行了。

  1. import java.io.BufferedReader;
  2. import java.io.FileOutputStream;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;
  5. import java.net.HttpURLConnection;
  6. import java.net.URL;
  7. import java.net.URLConnection;
  8. /**
  9.  * 一段将网页静态化的代码。
  10.  * 
  11.  * @author 老紫竹 JAVA世纪网(java2000.net)
  12.  * 
  13.  */
  14. public class Test {
  15.   /**
  16.    * 将信息转化为静态html
  17.    * 
  18.    * @param sUrl
  19.    *          动态信息访问URL
  20.    * @param charset
  21.    *          编码类型
  22.    * @param sSavePath
  23.    *          存储为静态文件的目录
  24.    * @param sHtmlFile
  25.    *          生成的静态文件名,可以按信息的唯一ID+.html命名
  26.    * @throws IOException
  27.    */
  28.   public static void convert2Html(String sUrl, String charset,
  29.       String sSavePath, String sHtmlFile) throws IOException {
  30.     int HttpResult;
  31.     URL url = new URL(sUrl);
  32.     URLConnection urlconn = url.openConnection();
  33.     // 抽象类 URLConnection
  34.     // 是所有类的超类,它代表应用程序和 URL
  35.     // 之间的通信链接,通过在 URL 上调用
  36.     // openConnection 方法创建连接对象
  37.     urlconn.connect(); // 使用 connect 方法建立到远程对象的实际连接
  38.     HttpURLConnection httpconn = (HttpURLConnection) urlconn;
  39.     // 每个
  40.     // HttpURLConnection
  41.     // 实例都可用于生成单个请求,
  42.     // 但是其他实例可以透明地共享连接到
  43.     // HTTP 服务器的基础网络
  44.     HttpResult = httpconn.getResponseCode();
  45.     // getResponseCode可以从 HTTP
  46.     // 响应消息获取状态码
  47.     if (HttpResult != HttpURLConnection.HTTP_OK) {
  48.     } else {
  49.       InputStreamReader isr = new InputStreamReader(httpconn.getInputStream(),
  50.           charset);
  51.       BufferedReader in = new BufferedReader(isr);
  52.       String inputLine;
  53.       if (!sSavePath.endsWith("/")) {
  54.         sSavePath += "/";
  55.       }
  56.       FileOutputStream fout = new FileOutputStream(sSavePath + sHtmlFile);
  57.       while ((inputLine = in.readLine()) != null) {
  58.         System.out.println(inputLine);
  59.         fout.write((inputLine+"\n").getBytes());
  60.       }
  61.       in.close();
  62.       fout.close();
  63.     }
  64.   }
  65.   public static void main(String[] args) throws IOException {
  66.     Test ru = new Test();
  67.     String filePath = ru.getClass().getResource(".").getPath().toString(); // 取得项目根目录
  68.     convert2Html("http://www.java2000.net/""UTF-8", filePath + "/",
  69.         "aaaa.htm");
  70.   }
  71. }
分享到:
评论
3 楼 sunson468 2010-05-25  
你这是偷人家的页面吧~~~

呵呵,静态内容是能够保存,但是css,js,图片等等还是引用站外的。

这个其实可以看作是webservice的一个雏形。
2 楼 杨晨锐 2010-02-02  
我是一个新手. 看到那些 "超类" HttpConnection.. 
  
    还是比较晕滴...
1 楼 杨晨锐 2010-02-02  
看的有点晕.  ◑﹏◐ 我现在很需要这个功能...  望楼住多些注释.

相关推荐

    java 页面静态化

    Java页面静态化是一种提高网站性能的技术,它将动态生成的网页转换为静态HTML文件,以减少服务器处理和数据库查询的时间,提升用户体验。这种技术在高访问量、数据更新不频繁的网站中尤其适用。 首先,我们需要理解...

    java代码静态检查工具

    Java代码静态检查工具是开发过程中不可或缺的一环,它主要用于在编码阶段就发现潜在的问题,提高代码质量,减少错误。在Android Studio这样的集成开发环境中,我们可以方便地集成这些工具,使得静态检查成为日常开发...

    Java静态分析Java代码检查.docx

    Java静态分析和Java代码检查是软件开发中至关重要的步骤,主要目的是在代码执行之前发现潜在的错误和不规范之处,从而提升代码质量和可维护性。Parasoft Jtest是一款强大的工具,专门针对Java应用程序,提供了静态...

    4 种主流 Java 静态代码分析工具

    Java作为一种广泛使用的编程语言,拥有丰富的静态代码分析工具,其中Checkstyle、FindBugs、PMD和Jtest是最为知名的几种。本文将详细介绍这四种工具的特点及其应用场景。 #### 二、静态代码分析工具综述 ##### 1. ...

    java 静态代码块通过类加载器获取资源文件例子

    首先,静态代码块是在类被加载到JVM(Java虚拟机)时执行的一段代码,它不依赖于类的实例创建,而是与类本身绑定。静态代码块常用于初始化静态变量或进行一次性的系统设置。例如,在本案例中,可能是在程序启动时...

    Java静态初始化块和对象初始化块

    静态初始化块是以`static`关键字标识的代码块,它在类被加载到Java虚拟机(JVM)时执行,且只执行一次。静态初始化块常用于设置类级别的变量,或者执行只应执行一次的初始化操作。例如,如果一个类需要在程序运行前...

    java代码的初始化顺序demo

    这个"java代码的初始化顺序demo"显然旨在演示这一过程。让我们深入探讨Java中的初始化顺序及其背后的机制。 1. **类加载阶段**: 在Java程序运行时,JVM会先加载类的字节码文件(.class文件)。这个过程包括加载、...

    ZTE java代码jtest静态检查标准

    `ZTE java代码jtest静态检查标准`是一个用于确保Java代码质量的工具集,它结合了Parasoft Jtest这一强大的静态代码分析和单元测试工具。 Parasoft Jtest是业界广泛使用的自动化软件测试工具,它能够帮助开发者在...

    Java的静态代码块、非静态代码块、构造函数

    静态代码块是在类加载时执行的一段代码,它不依赖于类的实例,而是与类本身相关联。静态代码块通常用来初始化类级别的变量,确保这些变量在任何实例创建之前已经设定好。例如: ```java public class MyClass { ...

    java虚拟机开发,刚刚走通执行了一段测试java代码

    在Java虚拟机(JVM)开发领域,成功执行一段测试Java代码是一个重要的里程碑。这涉及到对JVM的理解,包括其内部工作原理、字节码解析、类加载机制以及方法调用等核心概念。以下是一些关于Java虚拟机开发的相关知识点...

    静态代码检查工具

    FindBugs主要关注于发现Java代码中的错误模式(bug patterns),也就是在代码中可能引发运行时错误的那些部分。它通过对字节码的分析来发现常见的编码错误。FindBugs识别的错误模式包括空指针异常、资源泄漏、线程...

    动态网站静态化的实现方法

    动态网站静态化的主要目的是通过将动态生成的网页内容转换成静态页面,从而提高网站访问速度、降低服务器负载,并增强对搜索引擎的友好度。具体来说,该过程涉及以下几个关键步骤: 1. **捕获动态页面内容**:首先...

    Java中的Static块与静态方法

    静态块,也被称为静态初始化器,是在类加载时自动执行的一段代码,用于初始化类的静态变量或执行一次性的设置工作。静态块可以包含任意的Java语句,并且会在类的任何实例被创建之前执行。与静态方法不同,静态块不是...

    JAVA程序:静态块代码

    在Java编程语言中,静态块(Static Block)是一种特殊的代码段,用于初始化类级别的静态变量。它是类加载时执行的,且只执行一次。在理解静态块之前,我们需要先了解类加载的过程和静态变量的概念。 静态变量是属于...

    Java static静态初始快

    静态初始化块是以`{}`包围的一段代码,前缀有`static`关键字。它在类被加载到JVM(Java虚拟机)时执行,且仅执行一次。这通常用于初始化静态变量或者执行一些类级别的设置工作,例如设置默认值、计算值或者建立静态...

    网页内运行代码网页内运行代码

    网页内运行代码是Web...有两种方式将JavaScript引入网页:一种是直接在HTML文件中编写代码,另一种是链接外部.js文件。例如: ```html // 直接在HTML文件中写的JavaScript代码 console.log("Hello, World!"); ...

    Java常见笔试、面试题目深度剖析,方法重写详解、静态代码块与构造方法执行顺序问题

    静态代码块是在类加载时执行的一段代码,它不依赖于类的实例,而是与类本身相关联。静态代码块通常用来初始化类级别的变量,或者执行一些仅需执行一次的设置操作。静态代码块的执行顺序取决于它们在源码中的出现顺序...

    java代码实现动态爱心代码示例

    下面,我们将深入探讨这个Java代码的工作原理、涉及的知识点以及如何进行扩展。 首先,我们看到一个名为`HeartShape`的公共类,它包含一个`main`方法,这是Java程序的入口点。在`main`方法中,我们定义了一个变量`...

    ModelGoon java代码自动生成UML图

    ModelGoon作为一款强大的Eclipse插件,通过将Java代码转化为UML图形,极大地简化了代码管理和理解的复杂性,提高了开发效率。无论是对于初学者还是经验丰富的开发者,它都是一款不可或缺的工具。通过熟练掌握...

    学习java静态数据初始化.doc

    如果一个静态变量依赖于另一个静态变量的值,那么这两个变量的初始化顺序是重要的。 在给定的代码中,我们可以看到有多个静态变量的声明和初始化。这些静态变量的初始化顺序是按照它们在类中的定义顺序进行的。例如...

Global site tag (gtag.js) - Google Analytics