时间:2021-05-18
主要原理请参考http://blog.hunan2s.com/article.asp?id=233
经过一翻调试,成功了。。呵
附上源码。。
JDK1.5+ECLIPSE+TOMCAT5.0.28+MYSQL5.0
数据库TEST ,表名news
字段: idint自动增长 ,Titlevarchar(20),Contentvarchar(200),Authorvarchar(10)
makeFile.jsp
<%
Connectionconn=DBconn.getConnection();
Statementstmt=conn.createStatement();
ResultSetRs=stmt.executeQuery("select*fromnews");
System.out.println("success");
%>
<%
StringfilePath=request.getRealPath("/")+"template.htm";
System.out.println(filePath);
StringtemplateContent;
FileInputStreamfileinputstream=newFileInputStream(filePath);
intlenght=fileinputstream.available();//available()返回可以不受阻塞地从此文件输入流中读取的字节数。
bytebytes[]=newbyte[lenght];
fileinputstream.read(bytes);//read(byte[]b)从此输入流中将最多b.length个字节的数据读入一个字节数组中。
fileinputstream.close();
//templateContent=newString(bytes);
Stringtitle;
Stringcontent;
Stringauthor;
while(Rs.next())
{
templateContent=newString(bytes);//如果不用这句,则替换一次之后,templateContent中就没有#**#标志了。所以要重新生成
title=Rs.getString("Title");
content=Rs.getString("Content");
author=Rs.getString("Author");
out.println(title+"********"+content+"****"+author);
out.print("以下是模板内容:<br>"+templateContent+"<br>以下是置换以后的html内容<br><hr>");
templateContent=templateContent.replaceAll("#title#",title);
templateContent=templateContent.replaceAll("#author#",author);//替换掉模块中相应的地方
templateContent=templateContent.replaceAll("#content#",content);
//根据时间得文件名
Calendarcalendar=Calendar.getInstance();
Stringfileame=String.valueOf(calendar.getTimeInMillis())+".html";
fileame=request.getRealPath("/")+"Html/"+fileame;//生成的html文件保存路径
out.print(templateContent);
FileOutputStreamfileoutputstream=newFileOutputStream(fileame);//建立文件输出流
bytetag_bytes[]=templateContent.getBytes();
fileoutputstream.write(tag_bytes);
fileoutputstream.close();
}
if(conn!=null)
{
conn.close();
}
if(stmt!=null)
{
stmt.close();
}
%>
//数据库连接文件
importjava.sql.*;
publicclassDBconn{
publicDBconn(){
//TODOAuto-generatedconstructorstub
}
publicstaticConnectiongetConnection()
{
Connectionconn=null;
try{
Class.forName("org.gjt.mm.mysql.Driver");
conn=DriverManager.getConnection("jdbc:mysql://"+"localhost"+"/"+"test"+
"?useUnicode=true&characterEncoding=GB2312","root","111111");
}
catch(Exceptione)
{
e.printStackTrace();
}
returnconn;
}
}
// 模板文件
template.htm
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/>
<title>#title#</title>
</head>
<body>
<tablewidth="380"height="107"border="0"cellpadding="0"cellspacing="1"bgcolor="#FFCC99">
<tr>
<tdheight="16"bgcolor="#FFCC99"><divalign="center">#title#</div></td>
</tr>
<tr>
<tdbgcolor="#FFFFFF">#content#</td>
</tr>
<tr>
<tdheight="13"align="right"bgcolor="#FFFFFF">#author#</td>
</tr>
</table>
</body>
</html>
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在JSP页面中动态生成图片验证码MyJsp.jsp在jsp页面生成验证码--将该文件保存为pic.jsp,该文件负责生成图片!如果要在其他的页面显示该图片只需要
南宁网站建设企业网站建设为什么选择动态网页设计呢?众所周知,网站主要分为静态页面和动态页面。静态网页用HTML语言制作,动态网页用ASP、PHP、JSP等语
jsp页面元素构成jsp页面组成部分有:指令,注释,静态内容,表达式,小脚本,声明。jsp指令page指令:通常位于jsp页面的顶端,同一个页面可以有多个pag
济南网站建设谈谈简单ASP生成静态页实时显示生成进度代码!生成静态页面当需要生成很多页面时,往往会觉得浏览器速度慢,耗费大量时间。事实上,每个静态页面都是在
一般网站制作的三种做法:动态网站、静态网站、伪静态网站。网站建设中的伪静态到底是什么呢?伪静态页面就是用一套程序,可以将动态页面生成出静态页面。目前网络公司做的