トップ 新規 編集 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

JSPの実際:サーブレットとの連携

サーブレットとの連携

 サーブレットとJSP

Javaのサーバサイド技術の概要

サーブレットとJSPの使い分け

  • Servletはロジック主体、JSPはHTML主体
  • Servletでページ遷移の制御、JSPで実際のページを表示

 JSPと連携するサーブレットの例:ForwardServlet.java

Eclipseでのサーブレットの作成

  • パッケージエキスプローラで右クリックし、Otherを選択する

ファイルが存在しません。

  • ダイアログではWeb以下のServletを選択する

ファイルが存在しません。

  • パッケージ名にservlet、クラス名にForwardServletと入れ、終了する

  • Eclipseでサーブレットを作った場合にはweb.xml内に以下のような形で自動的に設定が追加されるが、Eclipseで作成しなかった場合には手動で追加する必要がある。
1
2
3
4
5
6
7
8
9
10
  <servlet>
    <description></description>
    <display-name>ForwardServlet</display-name>
    <servlet-name>ForwardServlet</servlet-name>
    <servlet-class>servlet.ForwardServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ForwardServlet</servlet-name>
    <url-pattern>/ForwardServlet</url-pattern>
  </servlet-mapping>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package servlet;

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ForwardServlet extends HttpServlet implements Servlet {
    private static final long serialVersionUID = 5857584070245483818L;
    private int index;
    private File[] jspList;
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        if(jspList==null) {
            String webDirPath = getServletContext().getRealPath("/");
            //.jspで終わるファイルをjspListに代入する
            jspList = (new File(webDirPath)).listFiles(new FilenameFilter(){
                @Override
                public boolean accept(File dir, String name) {
                    return name.endsWith(".jsp");
                }
            });
        }
        getServletContext().getRequestDispatcher("/"+jspList[index].getName()).forward(request, response);
        index++;
        if(index>=jspList.length) {
            index=0;
        }
    }      
}

最終更新時間:2009年01月15日 00時15分52秒