0

パスを次のようにしたいとします /Servlet1?id=34/Servlet2

Servlet1 で受け取った id パラメータに応じて Servlet2 にアクセスしたいのですが、そうしようとすると、システムは Servlet1 のサービス メソッドのみにアクセスし、Servlet2 にはアクセスしません。

パスが/Servlet1?id=34/Servlet2の場合は Servlet1 のコードをスキップして Servlet2 に移動したい、それ以外の場合はパスが/Servlet1?id=34の場合にサーブレット 1 でコードを実行する

別のサーブレットの子孫のようなサーブレットにアクセスする場合、そのようなアプローチをいつ使用するかはわかりません。私が間違った概念を取っている場合は、親切に修正するか、それを機能させるための解決策を提案してください

編集:ユーザーが/Servlet1?id=34と入力すると、まったく別のページが表示され、ユーザーが/Servlet1?id=34/Servlet2と入力すると、Servlet1 で指定されたIDに基づいて別のページが表示されます。

問題は、ユーザーがパス/Servlet1?id=34/Servlet2を入力したときに Servlet1 で取得する URI が/ Servlet1のみであることです。つまり、Servlet2 は URI のどこにもありません。

4

1 に答える 1

0

RequestDispatcher("\servlet2")forward(req,res)メソッド fromを使用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);
        }
}

}

于 2012-04-19T05:05:03.750 に答える