高分求jsp生成html静态文件的方法(100)分

ddrisme 2004-08-28 05:06:46
本人想写一个文章系统。想生成静态html文件,节省空间和cpu利用率。
网上都是asp php的文章。求jsp生成html的方法
谢谢了
...全文
409 15 打赏 收藏 转发到动态 举报
写回复
用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把内容写入到文件里吧。不知道是不是还有别的好方法?
内容概要:本文介绍了一种用于电磁暂态(EMT)研究的第四类全变流器型风力发电系统的通用Simulink仿真模型,旨在构建一个能够准确反映实际风电系统动态特性的简化通用模型。该模型涵盖了风力机、传动链、发电机、全功率变流器及其控制策略等关键组成部,重点突出系统在电网故障、风速波动等复杂工况下的动态响应能力,适用于风电并网电磁暂态析、新型电力系统稳定性评估及高比例可再生能源接入场景的研究。模型设计兼顾准确性与仿真效率,便于研究人员快速搭建和调试,推动风电系统建模与控制技术的发展; 适合人群:具备一定电力系统理论基础和MATLAB/Simulink仿真能力,从事新能源发电、电力电子变换、风电并网控制及相关方向的研究生、科研人员及工程技术人员; 使用场景及目标:①开展风电系统在电网扰动下的电磁暂态仿真析;②研究全功率变流器风电机组的动态行为与控制特性;③支撑新型电力系统中高渗透率风电接入的稳定性与电能质量评估,服务于学术研究、课程教学与工程项目前期仿真验证; 阅读建议:建议读者结合文中提供的模型结构与参数设置,在Simulink环境中动手复现并调试仿真模型,通过设置不同运行工况(如三相短路、低电压穿越、风速突变等)观察系统响应,深入理解全变流器风电机组的建模方法、控制逻辑与动态特性,进而拓展应用于更复杂的多机并网或综合能源系统仿真场景。
源码下载地址: https://pan.quark.cn/s/d18200fd2664 在基于Ubuntu的系统中,针对TCP与UDP网络进行排错对于开发人员及系统维护者而言是日常工作中的关键环节。为了能够迅速地识别并解决网络层面的故障,挑选出合适的辅助工具显得尤为必要。提及的"适用于ubuntu的TCP/UDP排错资源"很可能是指向`mNetAssist`这款应用,从压缩文件清单中包含一个名为`mNetAssist-released.deb`的条目来看,这通常表明该文件是为Debian或Ubuntu平台设计的软件安装包。`mNetAssist`作为一个功能全面的网络监控与排错软件,能够协助用户对TCP/IP网络连接进行检测、剖析以及调试。接下来,我们将对这款软件的各项特性以及其在Ubuntu系统上的安装与运用方法进行详尽的阐述。 为了部署`mNetAssist`,首先需要确认Ubuntu系统已经更新至最新状态,并且已经配置了`apt`软件包管理机制。在终端界面中输入下列指令来执行软件包的安装流程: ```bash sudo apt update sudo apt install dpkg ``` 接着,将`mNetAssist-released.deb`软件包文件传输到Ubuntu系统的某个文件夹内,例如`~/Downloads`目录,随后利用`dpkg`指令进行安装操作: ```bash cd ~/Downloads sudo dpkg -i mNetAssist-released.deb ``` 在安装阶段若遭遇依赖性难题,可能需要借助`apt-get`来处理: ```bash sudo apt-get install -f ``` 完成安装后,用户可以通...
内容概要:本文探讨了Hash算法在芯片行业,特别是网络处理器(NPU)中的性能优化实践,聚焦于如何通过硬件流水线设计实现纳秒级高速哈希查找。文章析了传统软件哈希方案在高带宽场景下的局限性,提出基于硬件描述语言或高层次综合(HLS)的设计方法,采用CRC32等硬件友好型哈希函数、并行多路哈希、流水线化解耦以及双端口存储结构等核心技术,实现低延迟、无阻塞的数据包处理。通过C++风格的HLS代码示例,展示了从算法选择到资源优化的完整硬件加速逻辑,并深入剖析了循环展开、位宽控制、内存映射和流水线调度等关键实现细节。最后展望了可编程交换机、P4语言支持及TCAM与哈希混合架构等未来发展方向。; 适合人群:具备数字电路基础、熟悉Verilog/SystemVerilog或HLS的芯片设计工程师,以及从事网络芯片、FPGA加速、高性能路由设备研发的技术人员(工作年限1-5年为宜);也适合对硬件加速算法感兴趣的研究人员。; 使用场景及目标:①掌握如何将哈希算法高效映射到硬件逻辑中以满足线速转发需;②理解流水线设计、资源约束优化、读写冲突规避等在实际芯片项目中的应用;③为开发高性能网络处理器中的流表/路由表查找单元提供技术参考与实现范例。; 阅读建议:学习时应结合HLS工具(如Xilinx Vitis HLS)进行代码仿真与综合,重点关注#pragma指令对硬件结构的影响,并对比不同哈希算法在资源占用与时序表现上的差异,深入理解“空间换时间”的硬件优化本质。
内容概要:本文系统研究了基于粒子群优化(PSO)、灰狼优化(GWO)、鲸鱼优化(WOA)、哈里斯鹰优化(HHO)、蜣螂优化(DBO)和麻雀搜索算法(SSA)六种智能优化算法在无人机三维路径规划中的应用,并在Matlab平台上实现了相应的仿真代码。研究构建了复杂的三维地形与障碍物环境模型,设计了包含路径长度、飞行时间、能耗及安全性等多维度的成本函数,通过定义合理的适应度函数与飞行约束条件,对各类算法的路径搜索能力、收敛速度与规划质量进行了全面对比析。通过仿真实验验证了各算法在静态复杂环境下的性能表现,旨在为实际无人机任务中优化算法的选择提供科学依据和技术支持。; 适合人群:具备一定Matlab编程基础,从事智能优化算法、无人机路径规划、自动化控制及相关领域研究的研究生、科研人员或工程技术人员。; 使用场景及目标:① 掌握主流群智能优化算法在无人机三维路径规划中的建模与实现方法;② 对比析不同算法在相同复杂环境下的性能差异,为算法选型提供量化依据;③ 为后续研究动态环境路径规划、多无人机协同任务配等问题奠定理论与技术基础; 阅读建议:建议读者结合提供的Matlab代码逐模块析算法实现流程,重点关注适应度函数的设计、障碍物规避策略的实现以及多目标成本函数的权衡机制,同时可通过调整参数设置或引入新型优化算法进行扩展实验,以深化对算法性能的理解与实际应用能力。

81,111

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧