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流的应用,从代码上看,其实也很简单,我也为大家一一注释下,希望对新手有点帮助,当然后事还没完成,列子只是给大家把怎么把一个页面静态化而已,如果大家想偷懒想容器自动静态化的话,只要配合写一个定时器就行了(定时器我别的文章页介绍了,这里就不多少)
核心部分也就是这样,如果等本人有时间,我再做一个实例,上传上来,提供大家参考吧.时间嘛,待定,呵呵
jsp静态化之简单介绍的更多相关文章
- JSP静态化(伪静态)
关于URLRewirte的用法:该方法只是实现了url的伪静态化,并不是真正的静态化. URLRewirte版本:urlrewrite-2.6.0.jar URLRewirte的用处: 1.满足搜索引 ...
- PHP实现页面静态化的简单方法分享
为什么要页面静态化? 1.动态文件执行过程:语法分析-编译-运行 2.静态文件,不需要编译,减少了服务器脚本运行的时间,降低了服务器的响应时间,直接运行,响应速度快:如果页面中一些内容不经常改动,动态 ...
- PHP实现HTML页面静态化
随着网站的内容的增多和用户访问量的增多,无可避免的是网站加载会越来越慢,受限于带宽和服务器同一时间的请求次数的限制,我们往往需要在此时对我们的网站进行代码优化和服务器配置的优化.一般情况下会从以下方面 ...
- PHP扩展功能 ---- 页面静态化(OB缓冲)
一.入门三部曲 1.什么是页面静态化 百度百科介绍: 静态页面是网页的代码都在页面中,不需要执行asp,php,jsp,.net等程序生成客户端网页代码的网页,静态页面网址中一般不含"?&q ...
- PHP静态化(非伪静态化)
什么是PHP静态化 PHP静态化的简单理解就是使网站生成页面以静态HTML的形式展现在访客面前,PHP静态化分纯静态化和伪静态化,两者的区别在于PHP生成静态页面的处理机制不同. 为什么要让网页静态化 ...
- 网页静态化技术Freemarker的详细介绍
网页静态化技术Freemarker 一.Freemarker的基本介绍 1.1为什么要使用网页静态化技术 网页静态化解决方案在实际开发中运用比较多,例如新闻网站,门户网站中的新闻频道或者是文章类的频道 ...
- 页面静态化技术Freemarker技术的介绍及使用实例.
一.FreeMarker简介 1.动态网页和静态网页差异 在进入主题之前我先介绍一下什么是动态网页,动态网页是指跟静态网页相对应的一种网页编程技术.静态网页,随着HTML代码的生成,页面的内容和显示效 ...
- JSP页面静态化
Ps:好久没写博客了,不是我太懒,是因为苦逼的我出差去上海了,天天加班 刚回成都.... 今天说说jsp页面静态化,知道静态化的朋友都不陌生,说白了就是访问后缀是html 而不是jsp. 没听说过静态 ...
- [转]PHP实现页面静态化的超简单方法
为什么要页面静态化? 1.动态文件执行过程:语法分析-编译-运行 2.静态文件,不需要编译,减少了服务器脚本运行的时间,降低了服务器的响应时间,直接运行,响应速度快:如果页面中一些内容不经常改动,动态 ...
随机推荐
- Oracle 游标疑问
procedure1: CREATE OR REPLACE PROCEDURE UPDATE_AC02_AAE140_WYL(PI_AAB001 IN NUMBER, PO_FHZ OUT VARCH ...
- Easyui中tree组件实现搜索定位功能及展开节点定位
这几天遇到个input + tree 实现搜索功能的需求,在这里贴出来供大家参考下,如果你有更好的实现效果希望不腻赐教! 首先给大家看看效果 小二 上图 : 需要的部件知识: easyui ...
- 五张图概括 什么是 ASP 、 ASP.NET (Web Pages,Web Forms ,MVC )
当你看懂下面这五张图,我相信你对于学习.NET Web开发路线将不陌生! 来源: http://www.w3 ...
- Python获取并修改hosts
#!/usr/bin/env python #-*- coding: utf-8 -*- #谷歌host修改脚本 #author 坤子<root#pythonpy.com> #date 0 ...
- android网络交互之DNS优化知识整理
android网络交互之DNS优化知识整理 之前的工作中,经常会遇到DNS解析出问题导致网络交互的操作无法正常进行. UnknownHostException 在很多的移动开发过程中,与服务端的交互的 ...
- MFC全局函数开局——AfxGetApp解剖
MFC中有不少的全局函数,方便在不同对象中获取不同的内容或创建不同的对象.主要全局函数有: AfxWinInit() AfxBeginThread() AfxEndThread() AfxFormat ...
- IOS 获取网络图像尺寸 更改 图像色彩值 什么一套方法灰色
直接在代码 头文件 // 图片处理 0 半灰色 1 灰度 2 深棕色 3 反色 +(UIImage*)imageWithImage:(UIImage*)image grayLevelType:(UII ...
- DH11数字温湿度传感器
DH11数字温湿度传感器是一种集温度.湿度一体的复合传感器,它能把温度和湿度物理量通过温.湿度敏感元件和相应电路转化成方便计算机.PLC.智能仪表等数据采集设备直接读取的数字量.DHT11由电阻式感湿 ...
- SecureCRT使用Vim出现中文乱码问题的解决
1. 首先保证securecrt本身显示中文是ok的.如果不是,就先解决这一个问题. 2. vi ~/.vimrc 添加set encoding=utf-8 fileencodings=ucs-bom ...
- [转]Linux(centOS6.5)下SVN的安装、配置及开机启动
1.检查是否已安装 rpm -qa subversion 如果要卸载旧版本: yum remove subversion 2.安装 yum install subversion PS:yum inst ...