- 浏览: 22363 次
- 性别:
- 来自: 深圳
最新评论
连接:http://konglx.iteye.com/blog/632744
package com.htmlstatic;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
public class ToHtml extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK"; //$NON-NLS-1$
private static ServletContext sc = null;
private HttpServletRequest request = null;
private HttpServletResponse response = null;
private static String staticHtmlRefreshTime = "1";//刷新间隔时间
private static String path = "D:\\tomcat5.5\\webapps\\diesel_gdc";//文件生成路径
private static String url = "/index.jsp";//需要静态化的页面
// Initialize global variables
public void init() throws ServletException {
}
// Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
service(request, response);
}
// Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
public void destroy() {
}
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
long SPACING = 0;
if (staticHtmlRefreshTime == null) {
SPACING = 1000 * 60 * 10;
} else {
SPACING = 1000 * 60 * Long.parseLong(staticHtmlRefreshTime);
}
sc = getServletContext();
this.request = request;
this.response = response;
String[] urls = url.split(",");
List names = new ArrayList();
for (int i = 0; i < urls.length; i++) {
String tmp = urls[i].replaceAll(".jsp", ".html");
names.add(tmp);
}
while (true) {
System.err.println("静态化开始");
myService(urls, names);
System.err.println("静态化结束");
try {
Thread.currentThread().sleep(SPACING);
} catch (Exception e) {
e.printStackTrace();
}
}
}
public synchronized void myService(String[] urls, List names) {
String name = "";
for (int i = 0; i < urls.length; i++) {
FileOutputStream fos = null;
try {
name = path + names.get(i).toString().replaceAll(".html", ".html");
RequestDispatcher rd = sc.getRequestDispatcher("/" + urls[i]);
final ByteArrayOutputStream os = new ByteArrayOutputStream();
final ServletOutputStream stream = new ServletOutputStream() {
public void write(byte[] data, int offset, int length) {
os.write(data, offset, length);
}
public void write(int b) throws IOException {
os.write(b);
}
};
final PrintWriter pw = new PrintWriter(new OutputStreamWriter(os));
HttpServletResponse rep = new HttpServletResponseWrapper(response) {
public ServletOutputStream getOutputStream() {
return stream;
}
public PrintWriter getWriter() {
return pw;
}
};
rd.include(request, rep);
pw.flush();
System.out.println("name=="+name);
fos = new FileOutputStream(name);
// 把jsp输出的内容写到xxx.htm
os.writeTo(fos);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (ServletException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fos.close();
} catch (Exception e) {
}
}
}
}
private void writeFile(String fileName, String content) {
OutputStreamWriter writer = null;
try {
File f = new File(path + "\\" + fileName);
if (!f.exists()) {
f.createNewFile();
}
writer = new OutputStreamWriter(new FileOutputStream(f), "GBK");
writer.write(content);
writer.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
package com.htmlstatic;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
public class ToHtml extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK"; //$NON-NLS-1$
private static ServletContext sc = null;
private HttpServletRequest request = null;
private HttpServletResponse response = null;
private static String staticHtmlRefreshTime = "1";//刷新间隔时间
private static String path = "D:\\tomcat5.5\\webapps\\diesel_gdc";//文件生成路径
private static String url = "/index.jsp";//需要静态化的页面
// Initialize global variables
public void init() throws ServletException {
}
// Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
service(request, response);
}
// Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
public void destroy() {
}
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
long SPACING = 0;
if (staticHtmlRefreshTime == null) {
SPACING = 1000 * 60 * 10;
} else {
SPACING = 1000 * 60 * Long.parseLong(staticHtmlRefreshTime);
}
sc = getServletContext();
this.request = request;
this.response = response;
String[] urls = url.split(",");
List names = new ArrayList();
for (int i = 0; i < urls.length; i++) {
String tmp = urls[i].replaceAll(".jsp", ".html");
names.add(tmp);
}
while (true) {
System.err.println("静态化开始");
myService(urls, names);
System.err.println("静态化结束");
try {
Thread.currentThread().sleep(SPACING);
} catch (Exception e) {
e.printStackTrace();
}
}
}
public synchronized void myService(String[] urls, List names) {
String name = "";
for (int i = 0; i < urls.length; i++) {
FileOutputStream fos = null;
try {
name = path + names.get(i).toString().replaceAll(".html", ".html");
RequestDispatcher rd = sc.getRequestDispatcher("/" + urls[i]);
final ByteArrayOutputStream os = new ByteArrayOutputStream();
final ServletOutputStream stream = new ServletOutputStream() {
public void write(byte[] data, int offset, int length) {
os.write(data, offset, length);
}
public void write(int b) throws IOException {
os.write(b);
}
};
final PrintWriter pw = new PrintWriter(new OutputStreamWriter(os));
HttpServletResponse rep = new HttpServletResponseWrapper(response) {
public ServletOutputStream getOutputStream() {
return stream;
}
public PrintWriter getWriter() {
return pw;
}
};
rd.include(request, rep);
pw.flush();
System.out.println("name=="+name);
fos = new FileOutputStream(name);
// 把jsp输出的内容写到xxx.htm
os.writeTo(fos);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (ServletException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fos.close();
} catch (Exception e) {
}
}
}
}
private void writeFile(String fileName, String content) {
OutputStreamWriter writer = null;
try {
File f = new File(path + "\\" + fileName);
if (!f.exists()) {
f.createNewFile();
}
writer = new OutputStreamWriter(new FileOutputStream(f), "GBK");
writer.write(content);
writer.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
发表评论
-
启动Tomcat启动不了,报以下错:Error listenerStart解决方法
2016-09-04 15:35 455启动Tomcat启动不了,报以下错: org.apach ... -
java自定义标签库的开发
2016-04-08 17:45 0java自定义标签库的开发 :http://www.360 ... -
sitemesh技术的应用
2016-03-23 13:55 450sitemesh技术的应用 ... -
java爬虫gecco监控来了,不再裸奔
2016-03-21 15:05 0java爬虫gecco监控来了,不再裸奔 爬虫为什么要监控 ... -
Eclipse快捷键 10个最有用的快捷键
2016-03-12 16:28 0Eclipse中10个最有用的快捷键组合 一个Eclip ... -
JAVA 注解的几大作用及使用方法详解
2016-01-13 15:26 0JAVA 注解的几大作用及使用方法详解(2013- ... -
java内存溢出分析
2016-01-12 18:03 374用jmap生产dump文件,win通过任务管理器查看to ... -
java垃圾回收
2016-01-12 13:42 428 -
java内存泄露
2016-01-12 10:19 0用Eclipse Memory Analyzer查找内存泄露: ... -
计算机网络
2016-01-11 17:12 0计算机网络体系结构:http://henu-zyy.iteye ... -
spring MVC
2016-01-11 15:59 0国际化、本地化及Spring MVC 的设计:http://c ... -
服务器缓存技术
2016-01-11 11:45 0缓存使用与设计系列文章--目录:http://carlosfu ... -
java JFrame关闭窗口最大化功能
2015-06-18 10:05 2030如是JFrame框架,直接设置: JFrame jf = ne ... -
一些JAVA代码功能的相关链接
2015-06-18 09:04 0spring集成quartz任务调度: http://aton ... -
JFrame实现窗体在屏幕边缘靠边隐藏
2015-06-16 14:30 1081用JAVA swing做一个项目,类似QQ实现靠边隐藏的代码记 ... -
如何在JAVA程序中注册热键
2015-06-08 17:37 589http://walsece.iteye.com/blog/1 ... -
DB2锁表信息
2015-06-01 18:24 434查看数据库锁表信息 ----查询数据库锁表信息 db2 &qu ... -
转:apache安装后no service install解决办法
2015-05-31 17:01 513以下是解决步骤: 1、找到 apache2 目录下的 ... -
在 WebSphere JDBC Adapter 中如何避免死锁和锁超时
2015-05-30 15:40 595在 WebSphere JDBC Adapter 中 ... -
WAS 节点不同步解决办法一
2015-05-26 20:29 1470WAS 节点不同步解决办法一 博客分类: 应用服务器 ...
相关推荐
jsp生成静态页面 生成静态页面 完全可以运行的例子!!!!
使用velocity freemarke 模版实现页面静态化,有具体代码实现例子
静态Html、jsp、php等使用element ui 的最简单直观联系,含table样例/对话框样例及所有 js css和图标,学习前台框架很好的入门资源
html静态网页综合(多例子绝对好) html静态网页综合(多例子绝对好) html静态网页综合(多例子绝对好)
一个很简单的使用urlrewrite实现静态页面的实现,只要把该文件解压后直接导入到eclipse里就行了,或者直接把WEB下的文件拷到TOMCAT的ROOT下去,即可运行。
JSP(java server page) 1.JSP介绍: JSP是服务器端运行的页面,JSP本身就是一个Servlet,他不仅可以包含静态的HTML代码,也可以包含动态的JAVA代码,服务器容器可以将JSP转换成Servlet...4,JSP是以静态页面为主的。
JSP中有两种包含:静态包含:<%@include file=”被包含页面”%>和动态包含:<jsp page=”被包含页面”flush>。下面以一个例子来说明如何使用包含。 实例: 项目文件树: header.jsp文件中内容: <...
1.3.1 JSP页面中的元素 14 1.3.2 JSP语法概要 15 1.3.3关于模板文本(静态HTML) 16 1.4 运行第一个Jsp程序 16 1. 5本章小结 20 第2章Jsp 基础学习 20 2.1 JSP基本语法 20 2.1.1 JSP 语法之...
引子:我们以两个大型网站为例作比较:51job和智联招聘(先声明我不是为他们作广告,仅以他们为例作技术上的比较)51job采用的是...后缀不限,但一般都用*.template例子<html><head><title>#title#
如何由静态页面改为动态页面,借助Dreamweaver; 树状展现和平板展现帖子,使用到了递归; CKEditor 在线编辑器的引入,由例子入手,注意学习方式; 分页的应用; URL 的重定向; 引入javaScript 客户端的验证,服务器端...
主要介绍了JSP页面的动态包含和静态包含示例及介绍,本文讲解了它们的区别并给出了相应例子,需要的朋友可以参考下
JSP( Java Sserver Page )是基于Java语言的服务器端页面 JSP本质就是一个文档,他不仅可以包含静态的HTML代码,也可以包含动态的JAVA代码,服务器容器可以将JSP转换成Servlet发布,并接受请求 JSP文件只需放在...
此资料可以让静态的html页面可以实现像jsp,asp,asp.net,php等动态读取数据的效果,只需用到javascript读取xml里面的数据就可以啦,里面的很多的例子讲说,只要看一遍就会做啦。。。
Java获取服务器时间,动态显示到jsp页面,大家都是到Java只能获取一次,到页面的时间是静态的,不过通过js和Java的合作,巧妙地实现此功能。本人是给电视做系统,客户要求页面能显示时间,因为电视浏览器获取的时间...
你时常被客户抱怨JSP页面响应速度很慢吗?你想过当客户访问次数剧增时,你的WEB应用能承受日益增加的访问量吗?本文讲述了调整JSP和servlet的一些非常实用的方法,它可使你的servlet和JSP页面响应更快,扩展性更强。...
上面配置后,您就可以直接在 html 静态页面上这样写: ${mobileSegment("mobile=13500000000").data.province} 即可在页面上显示 “广东” ,除了 province ,您可以获取接口返回的任意数据哦 ~ 关于接口: 目前...
#ThymeleafDemo 这是一个基于 ThymeLeaf 框架和 ... 例子5 添加了一个用于 jsp 页面的视图解析器和一个电影计数器 jsp 页面,演示了常规 servlet 引擎和 Thymeleaf 引擎可以并行运行。 ###运行代码构建代码:mvn clean
初始化及结束一个JSP页面 180 生成静态内容 181 生成动态内容 181 在JSP中使用对象 181 隐式对象 181 特定应用程序对象 181 共享对象 182 JSP scripting 元素 182 声明 182 脚本(scriptlets) 183 表达式 184 在JSP...
/staticTree.jsp 静态树 /dynamicTree.jsp 动态树 /css/tree.css CSS样式表文件 /js/all.js JavaScript脚本文件 /images 图片文件 第24章(/ch24) 程序描述:本章将使用Ajax...
美工设计好静态HTML文件,交给后端工程师,需要转换成Jsp、Freemarker、Velocity等动态模板文件。这种模式有几个缺点 1、动态模板文件不能被浏览器解释、必须要运行在服务器中才能显示出效果 2、动态效果和静态...