2012-04-19 38 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