`
jgsj
  • 浏览: 962131 次
文章分类
社区版块
存档分类
最新评论

jsp静态化之简单介绍

 
阅读更多
package com.zwd.text;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Date;

public class Test {
	private static long star = 0;
	private static long end = 0;
	private static long ttime = 0;

	// 返回 html 代码
	public static String getHtmlCode(String httpUrl) {
		Date before = new Date();
		star = before.getTime();
		StringBuffer htmlCode = new StringBuffer(); //这里我做了改动,原文是用String,这样内存消耗会太大,原因我就不说了
		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");//这句很重要,预防服务器拦截我们java程序的请求,如果少了就会被弹403等错误。
			connection.connect();
                        //连接部分完成
                       //=======================           华丽分界线            =================
                        //io读写开始  
                        in = connection.getInputStream();   
			java.io.BufferedReader breader = new BufferedReader(new InputStreamReader(in, "UTF-8"));
			String currentLine;  
			while ((currentLine = breader.readLine()) != null) {  //以行的方式读取
				htmlCode.append(currentLine);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
                        //计算时耗
                       Date after = new Date();
 			end = after.getTime();
			 ttime = end - star;
			 System.out.println(" 执行时间 :" + ttime + " 毫秒 ");
 		}
		 return htmlCode.toString();
	 }

	 // 存储文件 这里就做详细解释了,就是把上文获取的内容保存到指定文件而已
	 public static synchronized void writeHtml(String filePath, String info, String flag) {
		 PrintWriter pw = null;
 		try {
 			File writeFile = new File(filePath);
			boolean isExit = writeFile.exists();
 			if (isExit != true) {
 				writeFile.createNewFile();
 			} else {
 				if (!flag.equals("NO")) {
 					writeFile.delete();
					writeFile.createNewFile();
				}
			}
			pw = new PrintWriter(new FileOutputStream(filePath, true));
			pw.println(info);
 			pw.close();
		} catch (Exception ex) {
			System.out.println(ex.getMessage());
		} finally {
			pw.close();
		}
	}

	public static void main(String[] args) {
		String url = "http://localhost:8080/online/index.do"; //目标网站
		writeHtml("d:/demo.html", getHtmlCode(url), "NO");     //目标网站静态化
	}
}


这些代码是我从网上搜来的,其实网上材料很多,本人觉得这个写的是最好的,所以挑他来说下,其实静态化也不难,只是用最常见的方法,对把目标文件下载,或者应该说读取出来而已,

所以关键就在于io流的应用,从代码上看,其实也很简单,我也为大家一一注释下,希望对新手有点帮助,当然后事还没完成,列子只是给大家把怎么把一个页面静态化而已,如果大家想偷懒想容器自动静态化的话,只要配合写一个定时器就行了(定时器我别的文章页介绍了,这里就不多少)

核心部分也就是这样,如果等本人有时间,我再做一个实例,上传上来,提供大家参考吧.时间嘛,待定,呵呵

分享到:
评论

相关推荐

    freemarker把jsp静态化简单应用

    freeMarker的简单应用,适合入门人了解,导入myeclipse发布到tomact即可应用

    JspRun!社区论坛系统 v6.0 bulid 090424 GBK 安装版.rar

    18、修复了Archiver 功能在 URL 非静态化的条件下无法正常访问 19、修复了论坛会员个人设置时区无效 20、修复了jspruncode的html解析错乱,如table表格,img图片标签 21、修复了版主超版部分后台权限 22、修复了...

    JspRun!社区论坛系统 v6.0 bulid 090423 GBK 源码版.rar

    18、修复了Archiver 功能在 URL 非静态化的条件下无法正常访问 19、修复了论坛会员个人设置时区无效 20、修复了jspruncode的html解析错乱,如table表格,img图片标签 21、修复了版主超版部分后台权限 22、修复了...

    贞龙jsp版本CMS(BIZOSSCMS)高性能内容管理系统正式版

    BIZOSS-CMS的静态化机制和全文检索机制支持数十万、上百万的数据量快速查找和检索,目前依然在不断优化中。 2. 多种服务器操作系统支持 Linux开源操作系统在服务器应用领域已经普及开来,很多大型网站都使用的开源...

    java面试宝典

    154、能设置一些代码在我所有的JSP文件之上运行?如果可以,能共享吗? 37 155、对一个JSP页,如果多个客户端同时请求它,同步可能吗? 37 156、在jsp:useBean语法中使用beanName有何好处? 37 157、当我使用<jsp:...

    jspOA办公自动化系统-毕业设计.zip.tar.gz

    JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签...

    JAVA办公自动化系统(源代码+论文+外文翻译).zip

    JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签...

    java基于BS结构下的OA流程可视化的研究与实现(源代码+论文).zip

    JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签...

    java基于蚁群算法路由选择可视化动态模拟(论文+开题报告+翻译+任务书+外文翻译).zip

    JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签...

    JSP实验基于JavaWeb的机房预约系统源码+sql数据库+实验说明.zip

    该项目资源主要针对计算机、自动化等相关专业的学生或从业者下载使用,也可作为期末课程设计、课程大作业、毕业设计等。 具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现类似其他功能。 编写...

    野蔷薇社区论坛JSP版

    社区支持无限级分类,左侧工具栏静态化再多的版面也不会影响速度。 大量的使用高性能缓存使得软件在高并发下对数据库的压力降到最低!支持分布式Cache! 软件经过优秀的用户体验专家和交互设计师指点注重每一个细节的...

    JavaEE技术问题汇总.docx

    JSP中有个概念,静态包含和动态包含? Strust2和Springmvc的对比? SpringMvc的核心组件和运行流程 SpringMvc常用的注解 Shiro核心组件 Shiro的运行流程 什么RESTful(表现层状态转化)架构? Redis...

    基于springboot实现OA自动化办公系统附数据库文件+文档说明

    Web开发的范围可以从开发简单的纯文本单个静态页面到复杂的基于WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。 Internet上供外界访问的Web资源分为: 静态web资源(如html 页面):...

    基于Java EE平台项目管理系统的设计与实现

    随着社会信息化的发展,很多的社会管理问题也一并出现了根本性变化,项目公司的报表及文件管理也发生了变化,以前的管理是一个分布式的信息,然后围绕中心由通过简单的来传输信息,这使得办事效率非常低下,所以需要...

    袋鼠蛋动态web服务器

    不过今天要介绍的是一个国内自主开发的web服务器,它的名字叫“袋 <br/>*鼠*蛋”,同样是开源免费的,但是它所运行的不是JSP脚本语言,而是自己开发的DQM脚本语言,其拥有自己的容器用于执行DQM动态文件,我...

    [计算机毕设]基于java的项目管理平台系统设计与实现(项目报告+答辩PPT+源代码+数据库).zip

    随着社会信息化的发展,很多的社会管理问题也一并出现了根本性变化,项目公司的报表及文件管理也发生了变化,以前的管理是一个分布式的信息,然后围绕中心由通过简单的来传输信息,这使得办事效率非常低下,所以需要...

    thymeleaf_3.0.5_中文参考手册

    简单说, Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP 。相较与其他的模板引擎,它有如下三个极吸引人的特点: 1.Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在...

    基于java的项目管理系统.zip

    着社会信息化的发展,很多的社会管理问题也一并出现了根本性变化,项目公司的报表及文件管理也发生了变化,以前的管理是一个分布式的信息,然后围绕中心由通过简单的来传输信息,这使得办事效率非常低下,所以需要...

Global site tag (gtag.js) - Google Analytics