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

JSPの基本:暗黙オブジェクト(request以外)

暗黙オブジェクト(request以外)

 session

  • 認証処理などセッション単位でのパラメータの受け渡しに使われる
  • ログインしたのちの利用者情報を保持しておいたり、タイムアウトでログアウトするような場合の処理にも用いられる。

session処理の例:session.jsp

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
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
<%
    request.setCharacterEncoding("UTF-8");
    if(request.getParameter("removeName")!=null) {
        session.removeAttribute("user");
    }
    String user = request.getParameter("user");
    if(user!=null&&user.length()>0) {
        user = request.getParameter("user");
        session.setAttribute("user",user);
    } else {
        user = (String) session.getAttribute("user");
    }
%>
<body>
    あなたの名前は
    <%
    if(user==null||user.length()==0) {
            out.println("まだ入力されていません。");
    } else {
            out.println(user+"ですね。");
    }
    %>
    <br />
    <form action="<%=request.getRequestURI() %>">
        <input type="text" name="user" />
        <input type="submit" value="入力" />
        <input type="submit" name="removeName" value="名前を消去" />
    </form>
</body>
</html>

 application

  • ウェブアプリケーション全体でのパラメータの受け渡しに使われる
  • アプリケーションサーバ全体に関わるような設定を行う場合に使う?

applicationスコープの例:counter2.jsp

  • カウンタの値をapplicationに設定しておき、ページが呼び出されるたびに、getAttributeで呼び出し、1プラスし、再びsetAttributeで設定している。アプリケーションで共有であるため、他のページからも同じ手法でカウンタの値は取得できる。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<%@page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%
    int counter=0;
    Object object = application.getAttribute("counter");
    if(object!=null) {
        counter = ((Integer) object).intValue();
    }
    counter++;
    application.setAttribute("counter",counter);
%>
<HTML>
    <BODY>
    あなたは<%=counter %>番目の訪問者です。
    </BODY>
</HTML>

applicationオブジェクトの利用例:application.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>applicationオブジェクトから取得可能な情報</title>
</head>
<body>
    このJSPファイルが実行されたサーバは
    <%=application.getServerInfo() %>
    <br />
    このJSPファイルの配置された場所は
    <%=application.getRealPath(request.getRequestURI()) %>
    <br />
    "abc.jpg"という名前のファイルのMimeType(拡張子から判別されるため、実際にはないファイルでも可能)は
    <%=application.getMimeType("abc.jpg") %>
    <br />
    "abc.pdf"という名前のファイルのMimeType(拡張子から判別されるため、実際にはないファイルでも可能)は
    <%=application.getMimeType("abc.pdf") %>
    <br />
    "abc.xls"という名前のファイルのMimeType(拡張子から判別されるため、実際にはないファイルでも可能)は
    <%=application.getMimeType("abc.xls") %>
</body>
</html>

 page

  • JSPページ内でのパラメータ受け渡しのために用意されている。あまり使わない。

 pageContext

  • JSPに関する様々な情報を取得できる暗黙オブジェクト。
  • 例えば、pageContext.getRequest()はrequestと同等である。

 out

  • outオブジェクトは出力関係を扱い、HTML中に埋め込みたい文字列をprintあるいはprintlnなどで出力させると同時に、出力バッファの操作にも用いられる。

outの例

1
2
3
4
5
6
7
8
9
10
<%@ page contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
<body>
<% String str="Hello World!";
    out.println("out.println()で出力:"+str+"<br />");
%>
<%="JSPエクスプレッションで出力:"+str+"<br />" %>
</body>
</html>

 response

response.addCookie()

  • クッキーを設定するときに用いられる

response.sendRedirect()

  • ほかのページにリダイレクトする場合に用いる
  • <jsp:forward>とほぼ同じ処理となる

 exception

  • エラーページでエラーの内容を取得するために用いられる。

 課題

  1. この回の課題1はやっていない
  2. applicationオブジェクトにある属性に値をセットするsetAttribute.jspとある属性の値を取得するgetAttribute.jspを作成する。(/kadai/06-01setAttribute.jsp、/kadai/06-02getAttribute.jsp)
  3. 1.で作成したjspのスコープを修正すること(page,request,session)でその動作が変わることを確認する。

最終更新時間:2008年05月19日 11時48分51秒