<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    zs7456

    haha!
    隨筆 - 4, 文章 - 1, 評(píng)論 - 31, 引用 - 0
    數(shù)據(jù)加載中……

    jsp生成靜態(tài)頁(yè)面遇到的一些問(wèn)題

    看見(jiàn)別人網(wǎng)站上都是靜態(tài)頁(yè)面,心里癢癢的,昨天晚上自己試著寫(xiě)了一下
    不過(guò)只能寫(xiě)出非常簡(jiǎn)單的一部分,在靜態(tài)頁(yè)面里分頁(yè)還不會(huì)做,還有待研究

    NewsForm.java
      1/*
      2 * Generated by MyEclipse Struts
      3 * Template path: templates/java/JavaClass.vtl
      4 */

      5package com.news.form;
      6
      7import javax.servlet.http.HttpServletRequest;
      8import org.apache.struts.action.ActionErrors;
      9import org.apache.struts.action.ActionForm;
     10import org.apache.struts.action.ActionMapping;
     11
     12/** 
     13 * MyEclipse Struts
     14 * Creation date: 05-12-2008
     15 * 
     16 * XDoclet definition:
     17 * @struts.form name="newsForm"
     18 */

     19public class NewsForm extends ActionForm {
     20    /*
     21     * Generated fields
     22     */

     23
     24    /** title property */
     25    private String title;
     26
     27    /** content property */
     28    private String content;
     29
     30    /** author property */
     31    private String author;
     32
     33    /** id property */
     34    private Integer id;
     35    
     36    /** type property */
     37    private String type;
     38
     39    /*
     40     * Generated Methods
     41     */

     42
     43    /** 
     44     * Method validate
     45     * @param mapping
     46     * @param request
     47     * @return ActionErrors
     48     */

     49    public ActionErrors validate(ActionMapping mapping,
     50            HttpServletRequest request) {
     51        // TODO Auto-generated method stub
     52        return null;
     53    }

     54
     55    /** 
     56     * Method reset
     57     * @param mapping
     58     * @param request
     59     */

     60    public void reset(ActionMapping mapping, HttpServletRequest request) {
     61        // TODO Auto-generated method stub
     62    }

     63
     64    /** 
     65     * Returns the title.
     66     * @return String
     67     */

     68    public String getTitle() {
     69        return title;
     70    }

     71
     72    /** 
     73     * Set the title.
     74     * @param title The title to set
     75     */

     76    public void setTitle(String title) {
     77        this.title = title;
     78    }

     79
     80    /** 
     81     * Returns the content.
     82     * @return String
     83     */

     84    public String getContent() {
     85        return content;
     86    }

     87
     88    /** 
     89     * Set the content.
     90     * @param content The content to set
     91     */

     92    public void setContent(String content) {
     93        this.content = content;
     94    }

     95
     96    /** 
     97     * Returns the author.
     98     * @return String
     99     */

    100    public String getAuthor() {
    101        return author;
    102    }

    103
    104    /** 
    105     * Set the author.
    106     * @param author The author to set
    107     */

    108    public void setAuthor(String author) {
    109        this.author = author;
    110    }

    111
    112    /** 
    113     * Returns the id.
    114     * @return Integer
    115     */

    116    public Integer getId() {
    117        return id;
    118    }

    119
    120    /** 
    121     * Set the id.
    122     * @param id The id to set
    123     */

    124    public void setId(Integer id) {
    125        this.id = id;
    126    }

    127
    128    public String getType() {
    129        return type;
    130    }

    131
    132    public void setType(String type) {
    133        this.type = type;
    134    }

    135}

    NewsAction.java
     1/*
     2 * Generated by MyEclipse Struts
     3 * Template path: templates/java/JavaClass.vtl
     4 */

     5package com.news.action;
     6
     7import java.io.FileInputStream;
     8import java.io.FileNotFoundException;
     9import java.io.FileOutputStream;
    10import java.io.IOException;
    11import java.util.Calendar;
    12
    13import javax.servlet.http.HttpServletRequest;
    14import javax.servlet.http.HttpServletResponse;
    15import org.apache.struts.action.Action;
    16import org.apache.struts.action.ActionForm;
    17import org.apache.struts.action.ActionForward;
    18import org.apache.struts.action.ActionMapping;
    19
    20import com.news.Tools.Chinese;
    21import com.news.dao.NewsDao;
    22import com.news.form.NewsForm;
    23
    24/** 
    25 * MyEclipse Struts
    26 * Creation date: 05-12-2008
    27 * 
    28 * XDoclet definition:
    29 * @struts.action path="/news" name="newsForm" input="/news_add.jsp" scope="request" validate="true"
    30 * @struts.action-forward name="news_add_ok" path="/news_add_ok.html"
    31 */

    32public class NewsAction extends Action {
    33    /*
    34     * Generated Methods
    35     */

    36
    37    /** 
    38     * Method execute
    39     * @param mapping
    40     * @param form
    41     * @param request
    42     * @param response
    43     * @return ActionForward
    44     * @throws IOException 
    45     */

    46    public ActionForward execute(ActionMapping mapping, ActionForm form,
    47            HttpServletRequest request, HttpServletResponse response) throws IOException {
    48        NewsForm newsForm = (NewsForm) form;
    49        NewsDao nd = new NewsDao();
    50        Chinese c = new Chinese();
    51        String title = c.toChinese(newsForm.getTitle());
    52        String author = c.toChinese(newsForm.getAuthor());
    53        String content = c.toChinese(newsForm.getContent());
    54        
    55        String filePath = "";
    56        String template = "module/template.htm";
    57        filePath = request.getRealPath("/")+template;
    58           System.out.println(filePath);
    59        String templateContent="";
    60        FileInputStream fileinputstream = new FileInputStream(filePath);//讀取模塊文件
    61            int lenght = fileinputstream.available();
    62            byte bytes[] = new byte[lenght];
    63        fileinputstream.read(bytes);
    64        fileinputstream.close();
    65        templateContent = new String(bytes);
    66        templateContent=templateContent.replaceAll("###title###",title);
    67        templateContent=templateContent.replaceAll("###content###",content);
    68        templateContent=templateContent.replaceAll("###author###",author);//替換掉模塊中相應(yīng)的地方
    69     // 根據(jù)時(shí)間得文件名
    70        Calendar calendar = Calendar.getInstance();
    71        String filename = String.valueOf(calendar.getTimeInMillis()) +".html";
    72        filename = request.getRealPath("/")+"Html/news/"+filename;//生成的html文件保存路徑
    73        FileOutputStream fileoutputstream = new FileOutputStream(filename);//建立文件輸出流
    74        byte tag_bytes[] = templateContent.getBytes();
    75        fileoutputstream.write(tag_bytes);
    76        fileoutputstream.close();
    77        String url = "Html/news/"+String.valueOf(calendar.getTimeInMillis())+".html";
    78        String type = c.toChinese(newsForm.getType());
    79        
    80        nd.addNews(title, author, content,url,type);
    81        return mapping.findForward("news_add_ok");
    82    }

    83}


    template.html
     1<html>
     2<head>
     3<title>###title###</title>
     4<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
     5</head>
     6<body>
     7標(biāo)題:###title###<br/>
     8作者:###author###<br/>
     9內(nèi)容:###content###<br/>
    10</body>
    11</html>


    還有部分文件就不貼出來(lái)了

    這個(gè)確實(shí)能夠把剛添加的數(shù)據(jù)變成.html文件,也能記錄在數(shù)據(jù)庫(kù)中,只要再寫(xiě)一個(gè)新的頁(yè)面去讀取數(shù)據(jù)庫(kù)里存放的路徑就能找到相對(duì)應(yīng)的文件,不過(guò)還有一點(diǎn)沒(méi)做好,我不知道怎么刪除,如果在管理新聞信息的時(shí)候,我把數(shù)據(jù)庫(kù)里的某一條記錄給刪除掉了,那么在服務(wù)器上想對(duì)應(yīng)的某一個(gè)文件就要跟著刪除,這個(gè)確實(shí)不知道怎么實(shí)現(xiàn)了。我有想過(guò)在生成html文件的時(shí)候把它在服務(wù)器的實(shí)際路徑也給記錄到數(shù)據(jù)庫(kù)中去,然后刪除的時(shí)候可以直接找到這個(gè)路徑并且刪除文件,因?yàn)檫€沒(méi)時(shí)間試,所以不知道實(shí)現(xiàn)起來(lái)是否有困難。
    在生成的靜態(tài)頁(yè)面中分頁(yè)也是件麻煩事,判斷用戶(hù)是否登陸也不知道怎么用,畢竟是靜態(tài)頁(yè)面,它不能處理邏輯。。。哪個(gè)高手知道的,希望能幫小弟解決

    posted on 2008-05-14 13:45 zs7456 閱讀(2647) 評(píng)論(10)  編輯  收藏

    評(píng)論

    # re: jsp生成靜態(tài)頁(yè)面遇到的一些問(wèn)題  回復(fù)  更多評(píng)論   

    直接用像 Velocity 或 Freemarker 那樣的 java 成熟的模板技術(shù)會(huì)簡(jiǎn)單些。
    2008-05-14 14:54 | 隔葉黃鶯

    # re: jsp生成靜態(tài)頁(yè)面遇到的一些問(wèn)題  回復(fù)  更多評(píng)論   

    首先要定制規(guī)則,靜態(tài)頁(yè)面必須嚴(yán)格按照一定的規(guī)則來(lái)管理,這樣路徑可能動(dòng)態(tài)的拼出來(lái)了。
    靜態(tài)分頁(yè)建議參考一下sohu的列表頁(yè),做的是增量發(fā)布,可能需要仔細(xì)研究

    判斷用戶(hù)是否登陸也不知道怎么用?為什么靜態(tài)頁(yè)面還要判斷用戶(hù)登錄情況?如果確實(shí)要的話,可以用ajax
    2008-05-14 18:36 | bjsuo

    # re: jsp生成靜態(tài)頁(yè)面遇到的一些問(wèn)題  回復(fù)  更多評(píng)論   

    @bjsuo
    因?yàn)橛行┬畔⒈仨氁獣?huì)員登陸后才能看的到,就像交友網(wǎng)站一樣,用戶(hù)在不注冊(cè)登陸的情況下就看不到別人的聯(lián)系方式等信息了
    所以想在靜態(tài)頁(yè)面里判斷用戶(hù)是否登陸了,用ajax太麻煩了,請(qǐng)問(wèn)還有其他的方式解決嗎?
    2008-05-14 18:41 | zs7456

    # re: jsp生成靜態(tài)頁(yè)面遇到的一些問(wèn)題  回復(fù)  更多評(píng)論   

    @隔葉黃鶯

    這玩意值得研究
    2008-05-14 18:42 | zs7456

    # re: jsp生成靜態(tài)頁(yè)面遇到的一些問(wèn)題  回復(fù)  更多評(píng)論   

    呵呵.轉(zhuǎn)到這里看了一下,我以前也整過(guò)類(lèi)似的東西,感覺(jué)如果用那種方法整的話,再改一下,分頁(yè)可能實(shí)現(xiàn)了,具體只有想法,沒(méi)有整,呵呵,希望你看后能激發(fā)一點(diǎn)靈感出來(lái)http://www.tkk7.com/wyz191/archive/2008/04/17/120937.html#193892
    2008-05-15 08:23 | java_蟈蟈

    # re: jsp生成靜態(tài)頁(yè)面遇到的一些問(wèn)題  回復(fù)  更多評(píng)論   

    @zs7456
    只是純靜態(tài)頁(yè)面是不行的,首先你可以生成一個(gè)靜態(tài)頁(yè)面,頁(yè)面內(nèi)嵌一個(gè)動(dòng)態(tài)頁(yè)面,在動(dòng)態(tài)頁(yè)面里判斷是否登錄了,如果沒(méi)有登錄就輸出腳本,讓頁(yè)面跳到注冊(cè)頁(yè)或者其它頁(yè),如果登錄了就什么都不做了。
    還有一個(gè)不好的方法,就是用cookie,但這樣做不好
    2008-05-15 09:20 | bjsuo

    # re: jsp生成靜態(tài)頁(yè)面遇到的一些問(wèn)題[未登錄](méi)  回復(fù)  更多評(píng)論   

    @bjsuo
    謝謝,我正準(zhǔn)備使用這種方法呢,只是現(xiàn)在還沒(méi)開(kāi)始實(shí)現(xiàn)
    2008-05-15 09:23 | zs7456

    # re: jsp生成靜態(tài)頁(yè)面遇到的一些問(wèn)題  回復(fù)  更多評(píng)論   

    頁(yè)面的靜態(tài)化非常有價(jià)值,還節(jié)省服務(wù)器資源
    2008-05-16 12:23 | 網(wǎng)上買(mǎi)書(shū)

    # re: jsp生成靜態(tài)頁(yè)面遇到的一些問(wèn)題  回復(fù)  更多評(píng)論   

    你這根本不叫生成靜態(tài)頁(yè)面,簡(jiǎn)直扯淡,這是靜態(tài)頁(yè)面嗎?
    2008-05-19 11:24 | wangsoft

    # re: jsp生成靜態(tài)頁(yè)面遇到的一些問(wèn)題  回復(fù)  更多評(píng)論   

    解決靜態(tài)頁(yè)面權(quán)限訪問(wèn)(是否登陸)的一種思想
    用filter
    1. 需要登陸后才能訪問(wèn)的*.html文件,放在一個(gè)文件夾里(如 hasLogin 文件下)

    2. 一般的靜態(tài)頁(yè)面,不要放在hasLogin 文件夾里

    3. 在web.xml里配置filter

    <filter>
    <filter-name>Test</filter-name>
    <filter-class>包名.類(lèi)名如(IsLoginFilter)</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>Test</filter-name>
    <url-pattern>/hasLogin/*.html</url-pattern>
    </filter-mapping>

    4. 在 類(lèi) IsLoginFilter (implements Filter)做相應(yīng)的處理就行了

    5. OK
    2008-08-03 10:05 | 273914440

    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 国产一区二区三区免费看| 亚洲一区影音先锋色资源| 亚洲最大福利视频| 久久WWW免费人成—看片| 大地资源免费更新在线播放| 亚洲av无码片在线播放| 精品女同一区二区三区免费播放 | 伊人免费在线观看高清版| 在线看片人成视频免费无遮挡| 亚洲电影一区二区三区| 成人久久久观看免费毛片| 女人张开腿等男人桶免费视频| 亚洲成熟xxxxx电影| 久久久精品视频免费观看| 在线观看亚洲免费视频| 亚洲午夜久久久精品电影院| 性xxxx视频免费播放直播| 伊人亚洲综合青草青草久热| 国产亚洲欧美在线观看| A级毛片内射免费视频| 亚洲一区二区三区日本久久九| 亚洲精品黄色视频在线观看免费资源| 精品免费久久久久久成人影院| 亚洲国产成人手机在线电影bd| 久久永久免费人妻精品| 曰韩亚洲av人人夜夜澡人人爽| 深夜特黄a级毛片免费播放| 岛国片在线免费观看| 亚洲人成网站日本片| 99re免费99re在线视频手机版| 久久精品九九亚洲精品天堂| 一个人看的免费高清视频日本| 四虎免费久久影院| 亚洲国产精品成人AV在线| 欧美日韩国产免费一区二区三区| 亚洲色图校园春色| 无码人妻精品中文字幕免费| 亚洲妇熟XXXX妇色黄| 女人隐私秘视频黄www免费| 中文字幕亚洲综合久久菠萝蜜| 免费人妻精品一区二区三区|