
JSPは、HTMLの中に、Javaコードを埋めていく技術ですが、基礎知識をまとめておきます。
特徴
JSPもサーブレット
JSPは、実行時に、一旦サーブレットに変換されます。
サーブレットとの違い
コンパイル、web.xmlへの登録も不要
Tomcatでは、JSPのソースを書き換えたとしても、再びアクセスした際に、JSPのソースファイルのタイムスタンプの比較が行われて、もし日付が新しければ、自動変換されるという処理になっています。
JSPは、ブラウザから直接呼び出さないようにすること
JSPは、サーブレットからフォワードされて動くこと前提に作られるので、直接実行させないようにしましょう。(直接呼び出されると不具合の原因になります。)
直接呼び出されないようにする対策
利用者が直接リクエストすることができない、WEB-INFディレクトリ配下にJSPを配置しましょう。
暗黙オブジェクト
JSPでは、いくつかの暗黙オブジェクトというオブジェクトが定義されていて、宣言せずに実行できる。
下記の例で言えば、「out」というのが「暗黙オブジェクト」になる。
例:<%
out.println("test");
%>
out.println("test");
%>
暗黙オブジェクトの種類
種類 | スコープ | 説明 |
---|---|---|
request | リクエスト | HttpServletRequestクラスを表す暗黙オブジェクト |
response | リクエスト | HttpServletResponseクラスを表す暗黙オブジェクト |
session | セッション | Sessionクラスを表す暗黙オブジェクト |
pageContext | ページ | 他の暗黙オブジェクトへのアクセスするメソッドを提供します。(ページスコープにオブジェクト格納の目的も使われる。) |
application | アプリケーション | アプリケーションコンテキストを示します。 |
out | ページ | JSP特有のクラス(javax.servlet.jsp)で、出力用のオブジェクトです。 |
config | ページ | サーブレットでいう所のgetServletConfigに相当します。 |
page | ページ | JSPページ自体のインスタンスを指します。Javaの文法で言う所のthisと同じです。 |
exception | ページ | <%@page isErrorPage="true"%>を使用した場合に使用するJSPの特有の例外です。 |
なお、「スコープ」については下記の記事でも解説しています。
JSPには、どんなコードを書くか?
- 基本は、HTMLタグの値の埋め込みのみに活用する。
- コメントが必要なほど長いコードは書かない。(時には、必要な場面もある。)
この記事へのコメントはありません。