- 浏览: 636018 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (213)
- JAVA (53)
- Tomcat (14)
- EXTJS专栏 (2)
- 数据库 (23)
- JavaScript (13)
- jQuery (11)
- 需求分析 (2)
- css (1)
- 手机 (1)
- php (7)
- 生活 (1)
- ssh (11)
- JFReeChart (2)
- Delphi (1)
- junit (0)
- liunx (10)
- 项目管理 (11)
- 文件下载 (1)
- Eclipse (2)
- jsp (2)
- 外挂、游戏 (1)
- 面试题 (8)
- 性能测试 (2)
- apache (1)
- MyBatis (1)
- Webservice (2)
- ant (1)
- IDEA (2)
- log4j (1)
- 小程序 (1)
最新评论
-
hll127:
请问service这个方法里为什么要while(true)啊? ...
jsp页面静态化例子 -
tarena1:
Spring 源码解读 推荐流程 -
konglx:
springaop_springmvc 写道可以参考最新的文档 ...
Web项目添加Maven支持步骤 -
springaop_springmvc:
可以参考最新的文档:如何在eclipse jee中检出项目并转 ...
Web项目添加Maven支持步骤 -
9976:
很好,谢谢
Spring 源码解读 推荐流程
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(); } } } }
web.xml配置:
<servlet> <servlet-name>tohtml</servlet-name> <servlet-class>com.htmlstatic.ToHtml</servlet-class> </servlet> <servlet-mapping> <servlet-name>tohtml</servlet-name> <url-pattern>*.tohtml</url-pattern> </servlet-mapping>
评论
3 楼
hll127
2016-07-15
请问service这个方法里为什么要while(true)啊?
2 楼
wsliupan
2014-07-01
例子中有中文乱码,请在
final PrintWriter pw = new PrintWriter(new OutputStreamWriter(os));
改成final PrintWriter pw = new PrintWriter(new OutputStreamWriter(os ,"UTF-16"));
就不会乱码了
final PrintWriter pw = new PrintWriter(new OutputStreamWriter(os));
改成final PrintWriter pw = new PrintWriter(new OutputStreamWriter(os ,"UTF-16"));
就不会乱码了
1 楼
橄榄绿
2010-06-22
你好。受教了!我也写了一个。但是不知道为什么发到网上生成的时候就显示乱码,在本机里测试没问题。有时间能帮我看看吗?
发表评论
-
tomcat7下对HTTPS的部署配置
2018-11-09 15:33 6961、申请CA证书,可以在腾讯云或者阿里云申请到免费的CA ... -
IDEA切换 svn 问题
2017-11-27 09:21 4857今天项目,本来以为就几分钟的事没想到,还出现报错了,错误日记 ... -
log4j cfx 接口请求、返回信息 日志文件分离
2017-06-28 15:04 2025log4j.rootLogger=info,stdout, ... -
junit 启动报错:java.lang.NoClassDefFoundError
2013-04-17 19:31 1519junit 启动报错:java.lang.NoClassDe ... -
Java中抽象类和接口的区别
2013-04-16 12:12 949小结 1.abstract class 在 Java ... -
web.xml中servlet, bean, filter, listenr 加载顺序汇总
2013-03-28 16:17 1479web.xml中servlet, bean, filter, ... -
深入Java虚拟机JVM类加载初始化学习笔记
2013-03-26 20:39 11661. Classloader的作用,概括来说就是将编译后的c ... -
http代理出错Proxy Error
2013-03-22 09:15 1567最近项目突然访问几下次报: Proxy Error ... -
通过javamelody监控web应用的性能指标
2013-03-04 12:00 17011、问题背景 为了提升应用的性能我们可能需要做很多分析和 ... -
javamelody监控
2013-03-04 11:50 1433. 将 javamelody-1.42.0.war 文件部署 ... -
myeclipse安装svn插件的肯定可行的方法
2012-12-18 21:26 8851、下载最新的SVN包:http://subclipse.ti ... -
WordTemplate 使用
2012-03-27 11:28 1155http://wiki.softartisans.com/di ... -
asyn4j 异步方法调用框架
2012-03-14 14:19 1863例子: 1.调用普通方法 主方法 ... -
asyn4j -- 异步方法调用框架
2012-03-14 14:15 01.3更新 优化代码 新增任务持久与恢复功能 ... -
JasperReport
2011-09-01 13:45 1196“在JRE 5以上的java环境中,java会自动加载$JAV ... -
解决Linux操作系统下AES解密失败的问题
2011-03-11 16:00 6879现象描述: windows上加解密正常,linu ... -
使用set+list进行过滤重复并排序
2011-02-28 11:30 1757有时要把有重复的数据用set去掉重复元素,但用set后又把元素 ... -
ssh 事务
2011-01-12 23:03 1102ssh在做事务提交时,不能直接用Sql语句进行insert i ... -
struts2与 json
2011-01-10 09:17 1161需要注意的是,如果用JSON插件把返回结果定为JSON。而JS ... -
struts2返回json数据问题
2011-01-06 20:58 1221最近同事反映struts2返回数据不了json数据,特意测试了 ...
相关推荐
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、动态效果和静态...