社区
Web 开发
帖子详情
高分求jsp生成html静态文件的方法(100)分
ddrisme
2004-08-28 05:06:46
本人想写一个文章系统。想生成静态html文件,节省空间和cpu利用率。
网上都是asp php的文章。求jsp生成html的方法
谢谢了
...全文
412
15
打赏
收藏
高分求jsp生成html静态文件的方法(100)分
本人想写一个文章系统。想生成静态html文件,节省空间和cpu利用率。 网上都是asp php的文章。求jsp生成html的方法 谢谢了
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
scorpio2
2004-12-09
打赏
举报
回复
啊,可以研究一下
catblue
2004-12-09
打赏
举报
回复
//建立代表目前目录位置中a.jsp档的File变量, 并由fileName变量变数引用
common com = new common();
String currday = common.getLocalTimeString1();
String wjName = currday + com.random() +".html";
String path = request.getRealPath("/html");
File fileName = new File(path, wjName);
if(fileName.exists())
{
fileName.delete();
//输出目前所在的目录路径
}
else
{
//在目前的目录下建立一个名为wjName的文字档
fileName.createNewFile();
//输出目前所在的目录路径
}
//文件建立成功,开始写文件
FileWriter fw = new FileWriter(path + "\\"+wjName); //建立FileWrite对象,并设定由fw对象变量引用
FileReader fr = new FileReader(path + "\\"+strhtml); //建立FileReader变量,并设定由fr变量变数引用
System.out.println("123--->"+strhtml);
int c = fr.read();
String sHead = "";
while(c != -1) {
sHead += (char)c;
c = fr.read();
}
fr.close();
fw.write(sHead);
fw.write("<p class='tbtitle' align='center'>");
fw.write(BT+"</p><p>");
fw.write(NR);
fw.write("</p>");
fr = new FileReader(path + "\\foot.jsp"); //建立FileReader变量,并设定由fr变量变数引用
c = fr.read();
String sFoot = "";
while(c != -1) {
sFoot += (char)c;
c = fr.read();
}
fr.close();
fw.write(sFoot);
fw.close();
//生成前台静态页面文件
String Link = wjName;
//生成4位随机数的方法
public String random(){
String temp = String.valueOf((int)(java.lang.Math.random()*10000));
System.out.println("temp----->"+temp);
return temp;
}
epson1980
2004-12-09
打赏
举报
回复
学习
benwang6
2004-10-07
打赏
举报
回复
我也想用 pcdll(.net) 的方法,
originalPath 可以用127.0.0.1访问
我看大家好像都用模板里做标记,
然后用内容替换标记的方法,
pcdll(.net)的方法又简单又方便怎么很少见人用呢?
是不是这种方法有没有什么弊病?
请高手指点
mickeylm
2004-08-30
打赏
举报
回复
帮你顶
ddrisme
2004-08-30
打赏
举报
回复
千堆雪: 你好啊。看样子是高手
我们做个朋友吧! 我的qq号20687026
对了你的网站怎么进不去阿??
cceyjames
2004-08-30
打赏
举报
回复
给分给分,快给分,哈哈
cceyjames
2004-08-30
打赏
举报
回复
-_-!偶是菜鸟.....网站服务器这今天不稳定.....
qq:2128402
whirlsun
2004-08-29
打赏
举报
回复
CSDN论坛中,回复时网页中是局部刷新吗?如果是的话,怎么做的?
cceyjames
2004-08-29
打赏
举报
回复
可参考我网站http://www.95ren.com
cceyjames
2004-08-29
打赏
举报
回复
一、模板?
jsp无法做,只能通过java io控制来输出html。在输出之前,你需要读取该文章的所有信息,然后将信息全部读入到io,最后统一存储成为一个html文件。
存储的方式多样,我没用什么模版,自己直接用了9个*.io的文件(全部是html和javascrip代码)来实现自动生成的。
二、局部刷新?
其实在他的html里面包括javascript代码,代码里面嵌入了jsp代码(因为html不能运行jsp代码,所以只能放在javascript里面引用jsp文件),这样就实现了html的动态。
xiangbo520
2004-08-29
打赏
举报
回复
我也正在找这个啊!收藏!!
一点晴
2004-08-28
打赏
举报
回复
完整的方法都在这了,看懂了再修改自己用:
JSP直接生成HTML文件
摸版是这样定义的:
news.template
<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>
一个生成HTML的类:
import java.io.*;
public class WriteHtml
{
public WriteHtml()
{
}
public static void save(String s, String s1, String s2)
throws WriteFileException
{
try
{
a(s1);
FileOutputStream fileoutputstream = new FileOutputStream(s1 + s2);
byte abyte0[] = s.getBytes();
fileoutputstream.write(abyte0);
fileoutputstream.close();
}
catch(IOException ioexception)
{
throw new WriteFileException();
}
}
private static void a(String s)
{
File file = new File(s);
if(!file.exists())
file.mkdirs();
}
}
一个读取摸版的类:
import java.io.*;
public class ReadTemplates
{
private static String _fldif = null;
private static Object a = new Object();
public ReadTemplates()
{
}
public static String getTlpContent(String s)
throws ReadTemplateException
{
if(_fldif == null)
synchronized(a)
{
if(_fldif == null)
try
{
System.out.println("+++++++++++++");
_fldif = a(s);
}
catch(ReadTemplateException readtemplateexception)
{
throw new ReadTemplateException("模板信息读取失败。");
}
}
return _fldif;
}
private static synchronized String a(String s)
throws ReadTemplateException
{
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 ioexception)
{
throw new ReadTemplateException();
}
return s1;
}
}
jsp文件:
<%@ page contentType="text/html; charset=gb2312"%>
<%@ include file="/inc.jsp"%>
<%
String[] flag = {"<$title$>","<$date$>","<$author$>","<$content$>"};
String title=request.getParameter("title");
String content=request.getParameter("content");
String editer="admin";
//Session.getAttribute("s_userName");
int classid=Integer.parseInt(request.getParameter("class"));
String filePath = "";
filePath = application.getRealPath("./adminroot/news.template");
String templateContent;
try{
templateContent = ReadTemplates.getTlpContent(filePath);
}catch(ReadTemplateException 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("操作失败!");
}%>
这些代码我在JAVA版已经贴了N次了。
pcdll
2004-08-28
打赏
举报
回复
static final String originalPath = 要生成静态页面的原jsp,用http形式;
static final String filePath = 需要放的地方,用操作系统路径;
FileWriter file = null;
java.io.InputStream l_urlStream;
java.net.URL l_url;
java.net.HttpURLConnection l_connection;
java.io.BufferedReader l_reader;
String sCurrentLine;
String sTotalString;
sCurrentLine = "";
sTotalString = "";
l_url = new java.net.URL(originalPath);
l_connection = (java.net.HttpURLConnection) l_url.openConnection();
l_connection.connect();
l_urlStream = l_connection.getInputStream();
l_reader = new java.io.BufferedReader(new java.
io.InputStreamReader(l_urlStream));
while ( (sCurrentLine = l_reader.readLine()) != null)
sTotalString += sCurrentLine + "\n";
file = new FileWriter(filePath);
file.write(sTotalString);
file.close();
Elvewyn
2004-08-28
打赏
举报
回复
就是用StreamWriter把内容写入到文件里吧。不知道是不是还有别的好方法?
基于SpringBoot+Vue的量化评比系统设计与实现
前后端
分
离架构是当前Web应用开发的主流模式,SpringBoot与Vue的组合凭借低门槛和高效协作成为众多中小型项目的首选。SpringBoot通过自动配置简化Spring生态的搭建,内嵌服务器与MyBatis-Plus等集成提升后端开发效率;Vue则以渐进式设计和平滑上手曲线,配合Element Plus实现动态表单与权限控制。两者通过RESTful接口通信,天然适合多角色、多流程的业务场景。在量化评比、综合评
分
、赛事评审等需要规则化打
分
的应用中,这一架构能够将主观评价转化为可配置、可计算、可追溯的客观
SpringBoot+Vue企业资产管理系统开发实战:从数据库到部署全流程
企业级管理系统开发中,前后端
分
离架构凭借职责清晰、调试便捷等优势成为主流选择。SpringBoot以约定大于配置的理念简化后端搭建,Vue组件化开发则高效支撑表格、表单、弹窗等典型管理界面。而资产全生命周期管理作为企业内部数字化建设的基础场景,核心在于资产状态流转的闭环设计与数据一致性保障。从数据库字段规划、状态机设计、逻辑删除策略,到基于JWT的权限控制与事务处理,再到前端Axios拦截器、ECharts统计看板,直至Nginx部署,围绕一个完整的企业资产管理系统开发案例,详细拆解了此类项目的全流程落地思
SpringBoot+Vue图书管理系统毕业设计工程交付包
图书管理系统是高校计算机专业常见的毕业设计选题,其本质是面向真实软件工程实践的综合能力训练载体。它涉及前后端
分
离架构设计、RESTful接口开发、数据库建模与事务管理、权限控制与状态机业务逻辑等核心原理。采用SpringBoot可显著降低框架整合成本,提升开发效率;Vue则支撑组件化前端构建与良好用户体验。该技术组合具备部署轻量、演示稳定、技术展示维度丰富等工程价值,广泛适用于课程设计、毕设开发及Java全栈入门实践场景。本文详解的是一套含源码、数据库、答辩PPT、使用文档与演示视频的完整交付方案。
SSM框架+MySQL实战:农场管理系统数据库设计与库存流水实现
Java Web开发中,SSM框架(Spring、SpringMVC、MyBatis)作为经典的
分
层架构,将业务逻辑、请
求
分
发与数据持久化清晰解耦,配合MySQL数据库的高可靠性,成为中小型信息管理系统的首选技术组合。其核心价值在于通过事务控制、动态SQL和索引优化,解决多角色协作下的数据一致性与查询性能问题。以农场管理系统为例,从田块档案、农资出入库到种植计划与销售记录,均需围绕数据库表设计和库存流水模型展开,确保每一笔数据变更可追溯。文章结合真实项目,详解了SSM整合MySQL的选型依据、9张核心表结构
SpringBoot2+Vue3竞赛管理系统开发实践:从数据库设计到部署上线
在前后端
分
离架构日益普及的今天,如何高效构建一个多角色、多状态流转的管理系统成为Java Web开发者必须掌握的技能。SpringBoot2凭借稳定的生态与丰富的资料,成为中小型项目的首选后端框架;Vue3组合式API配合Element Plus则大幅提升了前端页面开发效率。本文从通用概念出发,介绍MyBatis-Plus如何简化单表CRUD,MySQL8.0在字符集与认证机制上的关键变化,以及JWT+拦截器实现轻量级权限校验的原理。在此基础上,以大学生竞赛管理系统为工程案例,剖析竞赛表、报名表、评
分
表的设
Web 开发
81,108
社区成员
341,721
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章