免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 951 | 回复: 0
打印 上一主题 下一主题

JSP生成HTML文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-15 17:06 |只看该作者 |倒序浏览

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
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP