- 论坛徽章:
- 0
|
1.作者:仓木泽
为了减轻服务器压力,将原来的文章管理系统由JSP文件的从数据库中取数据显示改为由jsp生成静态html文件后直接访问html文件。下面是一个简单的示例
1.buildhtml.jsp
模板文件
2. template.htm
###title###
###title###
作者:###author###
###content###
2. 作者 :xxx(不好意思给忘了)
","","",""};
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;
fileinputstream.read(abyte0);
fileinputstream.close();
s1 = new String(abyte0);
}
catch(IOException e)
{
System.out.println("ioexception error"+e.getMessage());
}
return s1;
}
}
Untitled Document
作者: 发布时间:
下面是我整理的方法:
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;
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());
}
}
}
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/39124/showart_322081.html |
|