2012-02-22 145 views
1

我在Java上寫博客,現在我有2個servlet模型,首先編寫函數來處理文章,然後使用類別進行操作。當我添加新文章時,我應該在我的表單上的下拉列表中包含所有類別。我如何從我的Servlet ArticleMod調用,函數getCategoryList()已經放在CategoryMod servlet中;來自其他servlet的調用函數

下面是功能代碼:在這個servlet IM

public Category[] getCategoryList() throws Exception { 
    db data = new db(); 
    Connection con = data.OpenConnection(); 

    PreparedStatement statement = con.prepareStatement("SELECT * FROM `category`"); 
    ResultSet result = statement.executeQuery(); 

    int size = 0; 
    if (result != null) 
    { 
     if (result.last()) { 
      size = result.getRow(); 
      result.beforeFirst(); 
     } 
    } 
    Category[] categories = new Category[size]; 
    int i = 0; 
    while(result.next()){ 
     categories[i] = new Category (
       result.getInt(1), 
       result.getString(2), 
       result.getString(3)); 
     i++;   
    } 

    return categories; 
    } 

使用它像

 if (request.getParameter("todo").equals("show_category_list")) { 
     try { 
      Category[] categories = this.getCategoryList(); 

      request.setAttribute("categories", categories); 
      RequestDispatcher dispatcher = request.getRequestDispatcher("category/category_list.jsp"); 
      dispatcher.forward(request, response); 
     } catch (Exception e) { 
       } 
    } 

我如何可以調用其他servlet,它的功能?

回答

1

您可以爲兩個servlet使用父級抽象類,並將共享行爲放在那裏。用於樣品見以下代碼:

public abstract class ParentServlet extends HttpServlet 
{ 
    public Category[] getCategoryList() throws Exception 
    { 
     /** 
      * Your getCategoryList codes 
      */ 
    } 
} 

class ChildServelt_1 extends ParentServlet 
{ 
    @Override 
    public void service(ServletRequest arg0, 
         ServletResponse arg1) throws ServletException, IOException 
    { 
     /* 
     * Do write your business 
     */ 
     super.getCategoryList(); 
    } 
} 
class ChildServelt_2 extends ParentServlet 
{ 
    @Override 
    public void service(ServletRequest arg0, 
         ServletResponse arg1) throws ServletException, IOException 
    { 
     /* 
     * Do write your business 
     */ 
     super.getCategoryList(); 
    } 
} 

當兩個方法都共享行爲它們是可以具有Parent,它是OOP的一個規則。

+0

我的servlet已經是類HttpServlet的子類,一個servlet可以是兩個類的子類嗎?或者我應該通過HttpServlet擴展我的General類,並通過General類擴展我的ServletMods? – 2012-02-22 13:45:34

+0

我自己寫樣品!!!如果你看到它,你就明白你必須有一個'Parent'類來擴展'HttpServlet',然後再擴展'Parnet'的一個或多個'childs'。 – MJM 2012-02-22 13:48:26

+0

抱歉老兄,沒見過......謝謝; D – 2012-02-22 13:51:37

3

將方法移到兩個servlet的公共基類或兩個servlet都可以共享的實用程序類。編寫這兩個servlet以這種方式任意相互依賴將是一個糟糕的設計。

相關問題