jsp IO流生成静态页面 html实例



jsp IO流生成静态页面 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$>&nbsp;&nbsp;发布时间:<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(“操作失败!”);

}%>