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

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

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

    lyyb2001

    只是為方便自己找記錄而已
    posts - 57, comments - 27, trackbacks - 0, articles - 5
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 ::  :: 管理

    Struts 框架的一大優(yōu)勢(shì)在于它允許開(kāi)發(fā)人員根據(jù)實(shí)際需要來(lái)擴(kuò)展框架,定制客戶(hù)化的功能。
    Struts1.1
    框架提供了動(dòng)態(tài)插入和加載組件的功能,這種組件被稱(chēng)為 Struts 插件。 Struts 插件實(shí)際上就是一個(gè) Java 類(lèi),它在 Struts 應(yīng)用啟動(dòng)時(shí) Struts 框架調(diào)用每個(gè)插件的 init ()方法進(jìn)行初始化,在插件的初始化階段可以完成一些初始化的操作,如建立數(shù)據(jù)庫(kù)連接,和遠(yuǎn)程系統(tǒng)建立連接 , 在當(dāng)前的應(yīng)用范圍內(nèi)加入插件類(lèi)自身的實(shí)例等。在應(yīng)用關(guān)閉時(shí) Struts 框架會(huì)調(diào)用每個(gè)插件的 destroy() 方法, destroy() 方法可以用來(lái)完成釋放資源的任務(wù),如關(guān)閉數(shù)據(jù)庫(kù)連接,斷開(kāi)與遠(yuǎn)程的連接等。任何作為插件的 Java 類(lèi)都應(yīng)該實(shí)現(xiàn) org.apache.struts.action.PlugIn 接口。 PlugIn 接口包括兩個(gè)方法
    ????public interface PlugIn {
    ??????? /**
    ??????? *
    當(dāng) struts 應(yīng)用啟動(dòng)時(shí),下面的方法將被調(diào)用執(zhí)行
    ??????? */
    ??????? public void init(ActionServlet servlet, ApplicationConfig config)
    ????????????? throws ServletException;

    ?????? /**
    ?????? *
    當(dāng) struts 應(yīng)用關(guān)閉時(shí),將調(diào)用下面的方法,以釋放資源。
    ?????? */
    ??????? public void destroy();?
    ????}
    現(xiàn)在我們用 PLUGIN 實(shí)現(xiàn)日志的創(chuàng)建
    < plug-in className = "net.skycity.search.SearchEnginePlugIn" >

    ??? <!-- 日記索引文件存放的目錄 -->

    ??????? < set-property property = "logIndexPath" value = "/WEB-INF/log_index" />

    ??????? <!-- 中文分詞器 -->

    ??????? < set-property property = "analyzerClass" value = "org.apache.lucene.analysis.standard.StandardAnalyzer" />

    </ plug-in>
    SearchProxyPlugIn.java
    package net.skycity.search;

    ?

    import java.io.File;

    import java.io.IOException;

    import javax.servlet.ServletException;

    import org.apache.log4j.Logger;

    import org.apache.lucene.analysis.Analyzer;

    import org.apache.lucene.analysis.standard.StandardAnalyzer;

    import org.apache.lucene.index.IndexWriter;

    import org.apache.struts.action.ActionServlet;

    import org.apache.struts.action.PlugIn;

    import org.apache.struts.config.ModuleConfig;

    ?

    public class SearchEnginePlugIn implements PlugIn{

    ??? private static Analyzer analyzer;//設(shè)置lucene要用的切詞方法。

    ??? protected static ActionServlet servlet = null;

    ??? protected static String logIndexPath = "/WEB-INF/log_index";//日志索引文件存放目錄

    ??? protected String analyzerClass;

    ??? protected Logger log = Logger.getLogger(SearchEnginePlugIn.class);

    ??? /**

    ???? * 初始化

    ???? */

    ??? public void init(ActionServlet servlet, ModuleConfig config) throws ServletException{

    ??????? SearchEnginePlugIn.servlet = servlet;

    ??????? if(analyzerClass==null)

    ??????? ?? analyzerClass = StandardAnalyzer.class.getName();

    ??????? try{

    ??????? ?? analyzer = (Analyzer)Class.forName(analyzerClass).newInstance();

    ??????? }catch(Exception e){

    ??????? ?? servlet.log("Initialize Analyzer Failed.",e);

    ??????? }

    ??? }

    ??? /**

    ???? * 容器停止時(shí),銷(xiāo)毀

    ???? */

    ??? public void destroy() {

    ??? ?? IndexWriter indexWriter;

    ?????? try {

    ?????????? indexWriter = getLogIndexWriter();

    ?????????? indexWriter.close();

    ?????? } catch (IOException e) {

    ?????????? e.printStackTrace();

    ?????? }

    ??? }

    ??? /**

    ???? * 得到日記索引的Writter

    ???? * @return

    ???? * @throws IOException

    ???? */

    ??? protected static IndexWriter getLogIndexWriter() throws IOException{

    ??????? String logPath = getLogIndexPath();

    ??????? File rp = new File(logPath);

    ??????? if(!rp.exists())

    ??????????? rp.mkdirs();

    ??????? File segments = new File(logPath + File.separator + "segments");

    ??????? boolean bCreate = !segments.exists();

    ??????? return new IndexWriter(logPath,analyzer,bCreate);

    ??? }

    ??? /**

    ???? * 得到日記索引所在的絕對(duì)路徑

    ???? * @return

    ???? */

    ??? public static String getLogIndexPath() {

    ??? ?? if(logIndexPath.toUpperCase().startsWith("/WEB-INF"))

    ??? ?????? return servlet.getServletContext().getRealPath(logIndexPath);

    ??? ?? return logIndexPath;

    ??? }

    ??? public void setLogIndexPath(String indexPath) {

    ??????? logIndexPath = indexPath;

    ??? }

    ??? public static Analyzer getAnalyzer() {

    ??????? return analyzer;

    ??? }

    ??? public String getAnalyzerClass() {

    ?????? return analyzerClass;

    ??? }

    ??? public void setAnalyzerClass(String analyzerClass) {

    ?????? this.analyzerClass = analyzerClass;

    ??? }

    }



    Lyyb2001
    主站蜘蛛池模板: 亚洲AV成人潮喷综合网| 在线看亚洲十八禁网站| 久久精品国产亚洲Aⅴ香蕉| 亚洲一区二区中文| 日韩亚洲国产二区| 91视频国产免费| 亚洲精品久久无码av片俺去也 | 4480yy私人影院亚洲| 国产成人精品曰本亚洲79ren| 天天操夜夜操免费视频| 曰批视频免费40分钟试看天天| 成在线人视频免费视频| 色费女人18女人毛片免费视频| 久久久久亚洲?V成人无码| 浮力影院第一页小视频国产在线观看免费 | 天天干在线免费视频| 18女人毛片水真多免费| 免费国产成人18在线观看| 国产精品免费观看视频| 亚洲av网址在线观看| 成人最新午夜免费视频| 成人福利免费视频| 三年片在线观看免费大全电影| 亚洲xxxx18| 亚洲一区二区三区无码国产| 亚洲高清美女一区二区三区| 久久国产精品亚洲综合| 国产亚洲精品美女久久久| 日韩版码免费福利视频| 久久99久久成人免费播放| 亚洲a视频在线观看| 亚洲午夜电影在线观看高清 | 456亚洲人成影院在线观| 亚洲国产中文在线二区三区免| 亚洲精品视频在线观看视频| 在线观看免费国产视频| 日本午夜免费福利视频| 国产成人免费a在线视频app| 四虎永久免费影院| 亚洲成aⅴ人片久青草影院| 亚洲人成人网站在线观看|