jsp產生靜態新聞頁面(一)也談用JSP實現新郎、sohu新聞系統的技術。

來源:互聯網
上載者:User

(這個和把jsp產生靜態html不同,這個所有的新聞都是靜態

使用了htm模板,不一樣的地方就替換掉了

)

1、首先要一個寫好的htm檔案模板,然後幾個需要替換的地方如新聞標題、新聞內容直接根據輸入的來替換,檔案名稱字就用日期如2000-12-18-1.htm類似的;

<%@ page language="java" contentType="text/html;charset=utf-8" errorPage=""%>
<%@ page import="java.util.*,java.io.*"%>
<%@ include file="../inc/includeBean.jsp"%>
<%
  request.setCharacterEncoding("utf-8");
  String title=request.getParameter("newstitle");
  String newsfrom = request.getParameter("newsfrom");
  String doct = request.getParameter("newsdoct");
  String fileame="";
  int a = 0;
  try{
    String filePath = "",path="";
    filePath = request.getRealPath("/")+"news/modle.html";
    filePath = filePath.replaceAll("////","/");
    String templateContent="";
 
    //讀取hmtl模板檔案
    FileInputStream fis = new FileInputStream(filePath);
    StringBuffer content = new StringBuffer();
    DataInputStream in = new DataInputStream(fis);
    BufferedReader br = new BufferedReader(new InputStreamReader(in, "UTF-8"));
    String line = null;
    while ((line = br.readLine()) != null)
    content.append(line + "/n");
    br.close();
    in.close();
    fis.close();
 
    //替換模板裡面的相關部分
    templateContent = new String(content);
    templateContent=templateContent.replaceAll("###title###",title);
    templateContent=templateContent.replaceAll("###source###",newsfrom);
    templateContent=templateContent.replaceAll("###addtime###",nowTime);
    templateContent=templateContent.replaceAll("###article###",doct);//替換掉模組中相應的地方
    Calendar calendar = Calendar.getInstance();
    fileame = String.valueOf(calendar.getTimeInMillis()) +".html";
 
    //建立新聞頁面存放目錄
    path= request.getRealPath("/")+"news/"+nowTime+"/";
    File d=new File(path);//建立代表Sub目錄的File對象,並得到它的一個引用
    if(!d.exists()){//檢查Sub目錄是否存在
       d.mkdir();//建立Sub目錄
     }
    File f=new File(path,fileame);
    if(!f.exists()){//檢查File.txt是否存在
       f.createNewFile();//在目前的目錄下建立一個名為File.txt的檔案
    }
    fileame = request.getRealPath("/")+"news/"+nowTime+"/"+fileame;//產生的html檔案儲存路徑
   
    //替換後的內容寫入到檔案
    FileOutputStream fos = new FileOutputStream(fileame);
    Writer output = new OutputStreamWriter(fos, "UTF-8");
    output.write(templateContent);
    output.close();
    fos.close();
 
  }catch(Exception e){
    System.out.print(e.toString());
  }
%>

2、資料庫中同時儲存檔案標題、檔案名稱、日期等資訊,新聞內容等其他的資訊就沒有必要保留了;
3、前台調用直接從資料庫中取XXX.htm檔案名稱、檔案標題就行了;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.