2012-04-19 36 views
0

假設我想有路這個樣子的 /Servlet1?ID = 34/Servlet2如何訪問僅Servlet2如果路徑是/ Servlet1/Servlet2

我要訪問在Servlet1收到的ID參數Servlet2根據,但是當我嘗試做Servlet1的系統訪問服務方法而不去Servlet2

我只想跳過Servlet1的代碼,並在我的路徑爲/Servlet1?id = 34/Servlet2否則在Servlet 1中運行代碼時,路徑爲/Servlet1?id = 34

我不確定什麼時候使用這種方法,在哪裏訪問一個Servlet,它就像是另一個Servlet的後代。如果我採取任何概念錯誤好心正確或者提出一些解決方案,使其工作

編輯:如果用戶輸入/Servlet1 ID = 34那麼它顯示了一個完全不同的頁面,當用戶進入/Servlet1?id = 34/Servlet2我想根據Servlet1中指定的id顯示不同的頁面。

問題是URI,我在Servlet1獲得當用戶輸入路徑/Servlet1?ID = 34/Servlet2只有/Servlet1即Servlet2是無處URI讓我怎麼識別Servlet的用戶正在尋找對於?

+0

請Servlet1一個檢查,如果(ID == 34)然後重定向到servlet2。 – ray 2012-04-19 05:05:54

回答

0

使用RequestDispatcher("\servlet2")forward(req,res)方法從Servlet1將控制轉發到Sertvlet2

編輯:

public class Servlet1 extends HttpServlet{ 

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

    String id= request.getParameter("id"); 
    /* 
    * You can do any processing here. 
    * We will simply output the value of name parameter on server console. 
    * 
    */ 


     if(id.equals("32")){ 
     RequestDispatcher rd = 
      getServletContext().getRequestDispatcher("\Servlet2"); 
      rd.forward(request, response); 
     } 
} 

}

+0

但是,我將如何識別用戶何時想訪問Servlet2以及何時訪問Servlet1。因爲當我的路徑是**/Servlet1/Servlet2 ** – Abhi 2012-04-19 05:07:56

+0

時,我在Servlet1中接收的URI是**/Servlet1 **,所以您必須在jsp/html頁面中設置一些參數並將其發送到Servlet,比如servlet1。在servlet1中檢索參數,並根據參數值將控制轉發給Servlet2或Servlet3。 – Nishant 2012-04-19 05:13:02

+0

這意味着servlet本身無法識別用戶是否想訪問同一個servlet或位於其下的任何servlet? – Abhi 2012-04-19 05:15:18