- 浏览: 625978 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (448)
- 字符串相关 (16)
- Struts2页面显示 (15)
- Hibernate错误记录 (6)
- linux命令 (2)
- java项目测试 (5)
- 个人作品 (10)
- hibernate应用 (15)
- struts1 (7)
- 数据库(除了hibernate) (42)
- J2ME/WAP (37)
- servlet/jsp (49)
- java桌面应用+java综合 (14)
- 服务器配置,报错解决 (24)
- Myeclipse配置,抛错解决 (8)
- linux (18)
- JavaScript+jquery+ajax (45)
- div css 页面设计 (16)
- 互联网综合运营 (14)
- 编程工具类 (3)
- 论文 报告 文献 (14)
- PHP (26)
- struts2 (9)
- spring (1)
- 我的IT生活 (14)
- Resin (6)
- java项目记录 (14)
- https安全 (11)
- 支付技术 (3)
最新评论
-
yihaijunyxr:
很好呀,我好久没用iteye了,今天找出两个帐号(yihaij ...
c/c++的监听tmlisten启动缓慢解决 -
yihaijun:
好像这不算是技术博客,是工作博客
c/c++的监听tmlisten启动缓慢解决 -
ml365:
后来还优化了webservice的前置框架,不用cxf,用了另 ...
c/c++的监听tmlisten启动缓慢解决 -
Jayliuying:
有点晚哈 但是也支持一下 楼主
java相关论文的参考文献【转】 -
gqsunrise:
...
我是项目经理,我的项目管理日记【20120229】
从网上找到了两种方法都是大同小异,经过我整理了一下。
先将两种方法贴出来 尊重原作者,向其致敬
1.作者:仓木泽
为了减轻服务器压力,将原来的文章管理系统由JSP文件的从数据库中取数据显示改为由jsp生成静态html文件后直接访问html文件。下面是一个简单的示例
1.buildhtml.jsp
<%@ page contentType="text/html; charset=gb2312" import="java.util.*,java.io.*"%>
<%
try{
String title="jsp生成静态html文件";
String content="小样,还搞不定你?";
String editer="hpsoft";
String filePath = "";
filePath = request.getRealPath("/")+"template.htm";
out.print(filePath);
String templateContent="";
FileInputStream fileinputstream = new FileInputStream(filePath);//读取模块文件
int lenght = fileinputstream.available();
byte bytes[] = new byte[lenght];
fileinputstream.read(bytes);
fileinputstream.close();
templateContent = new String(bytes);
out.print(templateContent);
templateContent=templateContent.replaceAll("###title###",title);
templateContent=templateContent.replaceAll("###content###",content);
templateContent=templateContent.replaceAll("###author###",editer);//替换掉模块中相应的地方
out.print(templateContent);
// 根据时间得文件名
Calendar calendar = Calendar.getInstance();
String fileame = String.valueOf(calendar.getTimeInMillis()) +".html";
fileame = request.getRealPath("/")+fileame;//生成的html文件保存路径
FileOutputStream fileoutputstream = new FileOutputStream(fileame);//建立文件输出流
byte tag_bytes[] = templateContent.getBytes();
fileoutputstream.write(tag_bytes);
fileoutputstream.close();
}
catch(Exception e){
out.print(e.toString());
}
%>
模板文件
2. template.htm
<html>
<head>
<title>###title###</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<LINK href="../css.css" rel=stylesheet type=text/css>
</head>
<body>
<table width="500" border="0" align="center" cellpadding="0" cellspacing="2">
<tr>
<td align="center">###title###</td>
</tr>
<tr>
<td align="center">作者:###author### </td>
</tr>
<tr>
<td>###content###
</td>
</tr>
</table>
</body>
</html>
2. 作者 :xxx(不好意思给忘了)
<%@ page contentType="text/html; charset=gb2312"%>
<%
String[] flag = {"<$title$>","<$date$>","<$author$>","<$content$>"};
String title=request.getParameter("title");
String content=request.getParameter("content");
String editer="admin";
//Session.getAttribute("s_userName");
String filePath = "";
filePath = application.getRealPath("./adminroot/news.template");
String templateContent;
try{
templateContent = ReadTemplates.getTlpContent(filePath);
}catch(Exception e){
throw new Exception("模板信息读取失败。请联系系统管理员。");
}
templateContent = ReplaceAll.replace(templateContent,flag[0],title);
templateContent = ReplaceAll.replace(templateContent,flag[1],GetDate.getStringDate());
templateContent = ReplaceAll.replace(templateContent,flag[2],editer);
templateContent = ReplaceAll.replace(templateContent,flag[3],content);
// 根据时间得文件名与路径名
Calendar calendar = Calendar.getInstance();
String fileName = String.valueOf(calendar.getTimeInMillis()) +".shtml";
String pathName = application.getRealPath("./news")+"\\"+ calendar.get(Calendar.YEAR) +
"\\"+ (calendar.get(Calendar.MONTH)+1) +"\\"+ calendar.get(Calendar.DAY_OF_MONTH)+"\\";
try{
WriteHtml.save(templateContent,pathName,fileName);
}catch(WriteFileException we){
throw new Exception("操作失败!");
}%>
import java.io.*;
public class WriteHtml {
public WriteHtml() {
}
public static void save(String s, String s1, String s2)
{
try {
a(s1);
FileOutputStream fileoutputstream = new FileOutputStream(s1 + s2);
byte abyte0[] = s.getBytes();
fileoutputstream.write(abyte0);
fileoutputstream.close();
}
catch (IOException e) {
System.out.println( " write html error" +e.getMessage());
}
}
private static void a(String s) {
try {
File file = new File(s);
if (!file.exists())
file.mkdirs();
}
catch (Exception e) {
System.out.println( " mkdirs error!" +e.getMessage());
}
}
}
import java.io.*;
public class ReplaceAll
{
private static Object a = new Object();
public ReplaceAll()
{
}
public String replace(String content,String flag,String temp)
{
String str = null;
try
{
//System.out.println("before-----"+content);
String s1 = content;
str = s1.replaceAll(flag,temp);
// System.out.println("replace after-----"+str);
}
catch(Exception e)
{
System.out.println("replace all error:"+e.getMessage());
}
return str;
}
private static void a(String s)
{
File file = new File(s);
if(!file.exists())
file.mkdirs();
}
}
import java.io.*;
import java.util.*;
public class ReadTemplates
{
private String temp = null;
private Object a = new Object();
public ReadTemplates()
{
}
public String getTlpContent(String s)
{
if(temp == null)
synchronized(a)
{
if(temp == null)
try
{
System.out.println("----------------------------");
temp = a(s);
//System.out.println("test the temp"+temp);
}
catch(Exception e)
{
System.out.println("get tlpconente error"+e.getMessage());
}
}
return temp;
}
private synchronized String a(String s)
{
String s1 = null;
try
{
FileInputStream fileinputstream = new FileInputStream(s);
int i = fileinputstream.available();
byte abyte0[] = new byte[i];
fileinputstream.read(abyte0);
fileinputstream.close();
s1 = new String(abyte0);
}
catch(IOException e)
{
System.out.println("ioexception error"+e.getMessage());
}
return s1;
}
}
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<LINK href="../css.css" rel=stylesheet type=text/css>
</head>
<body>
<table width="500" border="0" align="center" cellpadding="0" cellspacing="2">
<tr>
<td align="center"><$title$></td>
</tr>
<tr>
<td align="center">作者:<$author$> 发布时间:<font color=#ff0000><$date$></font></td>
</tr>
<tr>
<td><$content$>
</td>
</tr>
</table>
</body>
</html>
下面是我整理的方法:
1.我使用了已有大部分程序,但借用了pathfile字段,将得到的路径分类的保存到系统路径下。
我写了一个bean已实现这个功能:
package com.binghe.publish.database;
import java.io.*;
public class JspToHtml {
private String temp = "";
private Object a = new Object();
public JspToHtml() {
}
public String readTemple(String filepath) {
if (temp == null) {
synchronized (a) {
System.out.println("---------------");
try {
FileInputStream fileinputstream = new FileInputStream(filepath);
int i = fileinputstream.available();
byte byte0[] = new byte[i];
fileinputstream.read(byte0);
fileinputstream.close();
temp = new String(byte0);
}
catch (FileNotFoundException ex) {
System.out.println("FileNotFoundException error" + ex.getMessage());
}
catch (IOException ex1) {
System.out.println("IOException error" + ex1.getMessage());
}
}
}
return temp;
}
public String replaceAll(String content, String flag, String s) {
String str = null;
String s1 = content;
try {
str = s1.replaceAll(flag, s);
}
catch (Exception ex2) {
System.out.println("Exception error" + ex2.getMessage());
}
return str;
}
public static void writeHtml(String content, String pathname, String filename) {
File file = new File(pathname);
if (!file.exists()) {
file.mkdir();
}
try {
FileOutputStream fileoutputstream = new FileOutputStream(pathname +
filename);
byte byte0[] = content.getBytes();
fileoutputstream.close();
}
catch (FileNotFoundException ex) {
System.out.println("FileNotFoundException error" + ex.getMessage());
}
catch (IOException ex1) {
System.out.println("IOException error" + ex1.getMessage());
}
}
}
发表评论
-
UrlRewrite Filter下载 配置及如何使用【转】
2011-07-15 22:17 14271 下载地址:http://tuckey.org/urlre ... -
getOutputStream() has already been called for this response 解决
2011-04-25 11:35 896java.lang.IllegalStateException ... -
java web工程中获取根目录的方法[转]
2010-12-12 16:27 36231 若是在JSP或是servlet中要获得虚拟根目录的话, ... -
jsp 用urlrewrite 实现URL 重写【转】
2010-12-12 11:22 928是否看到别人的网站网址名都不带后缀名比较酷,比如qq空间的地址 ... -
构建高性能J2EE应用的十个技巧[转]
2010-12-12 11:04 758构建高性能的J2EE应用 ... -
session彻底删除和登录的session相关操作【原创】
2010-12-12 11:03 1020一般我们在做登陆的时候,是需要保持登陆者的一些信息的,登陆 ... -
利用jsp把数据导出到Excle【原创】
2010-12-12 10:34 1336jsp页面里面只需要: <%@ page l ... -
javamail乱码问题【转】
2010-12-11 22:34 1031所谓众口难调,但我 ... -
关于Action里面的跳转方式记录【原创】
2010-12-11 11:00 747我一直忘记了,反正常用的就是那两个吧 一个是: ret ... -
得到时间值java.text.SimpleDateFormat【原创】
2010-12-11 10:50 1059有时候在一些查询的后台,时间作为一个条件是必须的,我们要做 ... -
又一次解决了jsp中文乱码【原创】
2010-12-11 10:45 753这次和数据库有关。数据库里面是乱码,页面的也是乱码。 ... -
想在java文件里用request对象怎么办【原创】
2010-12-11 10:43 1312有时候我们想要在java文件里用request对象,不过j ... -
js跳转页面方法大全,onClick,history,location【转】
2010-12-11 10:38 1296<span id="tiao"> ... -
jsp页面缓存不更新问题解决【原创】
2010-12-11 10:37 2326最近做一个平台,在支付之后余额就会被扣除的,支付成果结果页 ... -
session和request set get Attribute的影响【原创】
2010-12-11 10:35 1118在很多情况下我们都需要封装些数据,以便能在页面跳转之间使用到。 ... -
iframe form 和target的讨论【转】
2010-12-11 10:34 1454刷新主页面中的其中一个iframe,其他内容不变 Soluti ... -
return的作用【原创】
2010-12-11 10:32 1011其实我一直对于return这个功能没有一种很明显的感受。反 ... -
防止浏览器缓存的jsp代码【原创】
2010-12-11 10:27 842//response.setHeader("Ca ... -
org.apache.jasper.JasperException: Invalid directive错误的解决【原创】
2010-12-11 10:24 2612很简单,是因为你的jsp页面引入文件的语句也就是那个几个标签可 ... -
jsp清除session的方法【原创】
2010-12-11 10:16 2432很难吗?不难,一点也难 session.removeAt ...
相关推荐
HTML2Canvas可以将HTML元素转化为canvas,而jsPDF则允许我们从canvas生成PDF文件。在JSP页面中,你需要将Highcharts图表所在的HTML部分转换为canvas,然后使用jsPDF将canvas内容转换为PDF。 以下是一个简化的步骤...
本示例将探讨如何使用Java生成HTML文件,这是构建动态网站或自动化报告等任务时常见的需求。通过Java生成HTML,我们可以将数据结构转化为用户友好的网页格式,便于在浏览器中查看。 标题 "java代码生成html文件" 指...
首先,"通过jsp生成PDF文件(包括中文格式)"这一标题暗示了我们需要使用支持中文字符编码的PDF生成库。在描述中提到了两个关键的jar包,它们很可能是用来处理PDF生成的。通常,iText 和 Flying Saucer 是两个广泛使用...
把jsp、文件生成Html静态文件 内附有代码 不懂可以留言
在MyEclipse等集成开发环境中,你可以设置项目配置,使JSP在编译时直接生成HTML文件。这样,每次修改JSP后,对应的HTML文件也会更新,便于理解和维护。 总结一下,JSP生成HTML静态页是优化Web应用性能的一种常见...
通过JSP生成静态HTML,结合Java IO流,能够实现动态内容的高效分发和静态化管理。理解JSP的工作原理和最佳实践,有助于提升Web应用的性能和用户体验。在实际项目中,应根据需求选择合适的静态化策略,如按需生成、...
jsp生成html的源代码文件,放到项目中可以把动态的jsp文件转换成静态的html文档
JSP文件本质上是HTML文件,其中可以插入Java代码。服务器上的JSP引擎在首次请求JSP页面时,会根据JSP的内容生成对应的Java源码文件(默认扩展名为.java)。这个过程称为“预编译”或“翻译”。生成的Java文件通常...
### jsp动态生成html 3种方法 在Web开发领域,动态页面技术是十分重要的一个环节,其中JSP(Java Server Pages)作为一种广泛使用的服务器端脚本语言,它能够实现动态网页的创建与生成。本文将详细介绍JSP动态生成...
JSP是一种动态网页开发技术,它允许我们将Java代码嵌入到HTML页面中,从而实现服务器端的数据处理和动态内容生成。在生成二维码的过程中,JSP主要负责接收前端输入的数据、调用二维码生成库并返回生成的二维码图像。...
本教程聚焦于如何利用JSP生成HTML网页,以提升网页的访问速度。 一、JSP的基本原理 JSP是由Java开发的一种服务器端脚本语言,它与PHP和ASP.NET类似,但基于强大的Java语言。当客户端请求一个JSP页面时,服务器会将...
java/jsp生成静态页面html/htm
**JSP生成静态页面**是一种优化网站性能的技术,它通过将动态内容转化为静态HTML文件,减少服务器处理请求的负担,提高网页的加载速度。这种方式在高流量网站中尤其常见,因为静态页面可以被缓存,减少了数据库查询...
#### 一、使用JSP生成Word文档 在JSP中生成Word文档可以通过设置正确的`content-type`来实现。具体来说,只需要在JSP页面的头部添加以下指令: ```jsp ``` 这样设置后,当用户访问该JSP页面时,如果他们的计算机...
JSP动态生成HTML静态页面的核心思路是,当一个动态页面被首次访问或者内容更新时,服务器不直接返回JSP生成的HTML,而是先将其转换为一个静态HTML文件,然后将这个静态文件返回给客户端。后续的相同请求就直接返回这...
JSP 生成静态 HTML 页面的几种方法 JSP 技术广泛应用于 web 开发领域,其中一个重要的应用场景是生成静态 HTML 页面。静态 HTML 页面相比动态页面具有许多优点,例如加载速度快、搜索引擎友好、减少服务器负载等。...
4. **预览机制**:当用户请求预览时,服务器需要读取JSP文件内容,执行其中的Java代码,生成HTML,然后返回给客户端。 实现JSP在线预览的一般步骤包括: 1. 用户通过前端界面选择或上传JSP文件。 2. 文件通过HTTP...
在这种场景下,"Jsp结合Velocity实现依据Word模板文件生成对应数据文件"的技术方案显得尤为实用。JSP(JavaServer Pages)是用于构建动态Web应用的服务器端技术,而Velocity则是一个强大的模板引擎,它允许开发者将...
在本主题“利用jsp生成图片验证码”中,我们将探讨如何在JavaServer Pages (JSP)上下文中创建一个简单的图片验证码,而无需使用Servlet。首先,我们要明白JSP是Java Web开发中的视图层技术,它允许我们在HTML页面中...
Java JSP 生成 PDF 使用的是一个名为 Flying Saucer 的库,它是一个开源项目,专门用于将 HTML 内容转换为高质量的 PDF 文件。这个过程在 IT 行业中非常重要,因为许多应用程序需要将动态生成的网页内容导出为可打印...