- PR -

Servletから別のServletを呼び出す場合

1
投稿者投稿内容
みーちく
大ベテラン
会議室デビュー日: 2002/08/29
投稿数: 131
投稿日時: 2003-06-10 15:52
こんにちわ。みーちくと申します。

Servletから、別のServletを呼ぶ場合について質問があります。
下記のようなプログラムがあった場合、servletを呼び出す事ができません。
呼び出す方法が間違っているのでしょうか?
以下の4通り試してみたのですが、全てダメでした。

1)req.getRequestDispatcher("/servlet/testb").forward(req, res);
2)req.getRequestDispatcher("../servlet/testb").forward(req, res);
3)getServletContext().getRequestDispatcher("/servlet/testb").forward(req, res);
4)getServletContext().getNamedDispatcher("testb").forward(req, res);

コード:
public class Test_A extends HttpServlet{
  public void service (HttpServletRequest req, HttpServletResponse res) 
    throws ServletException, IOException{
    
    String flg = req.getParameter("flg");
    if(flg.equals("1")){
      // jspを呼び出す
      req.getRequestDispatcher("/Test_jsp/new.jsp").forward(req, res);
    } else if(){
      // servletを呼び出す
      req.getRequestDispatcher("/servlet/testb").forward(req, res);
    }
  }
}

[web.xml]
<web-app>
  <servlet>
    <servlet-name>testa</servlet-name>
    <servlet-class>Sample.Test_A</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>testa</servlet-name>
    <url-pattern>/servlet/testa/*</url-pattern>
  </servlet-mapping>

  <servlet>
    <servlet-name>testb</servlet-name>
    <servlet-class>Sample2.Test_B</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>testb</servlet-name>
    <url-pattern>/servlet/testb/*</url-pattern>
  </servlet-mapping>
</webapp>


宜しくお願い致します。
米山@クロノス
大ベテラン
会議室デビュー日: 2003/06/10
投稿数: 103
お住まい・勤務地: 大阪市淀川区西中島4-13-22 新大阪淀川ビル5F
投稿日時: 2003-06-10 17:32
こんにちは。米山@クロノスです。
req.getRequestDispatcher("testb").forward(req, res);は試しましたか?
そもそも、このweb.xmlの記述では、エラーになってませんか?
みーちく
大ベテラン
会議室デビュー日: 2002/08/29
投稿数: 131
投稿日時: 2003-06-10 18:04
米山@クロノス様

返信ありがとうございました。
>req.getRequestDispatcher("testb").forward(req, res);
こちらも試してみたのですが、どうもうまくいきません。

そこで、public void service() ではなく doPost()にして試した結果
うまくいきました。
下記のコードはちょっとはぶいているのですが、public void init() で
初期化パラメータを取得しております。
そこで、service() としてみたのですが・・・。

>そもそも、このweb.xmlの記述では、エラーになってませんか?
tomcatのバージョンが3.2.3なんですが、うまく動いております。
<servlet>〜</servlet>の間で<init-param>・・・と続いております。

<servlet>
<init-param>
<param-name>jdbcDriver</param-name>
<param-value>xxxx</param-value>
</init-param>
</servlet>

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)