この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:4
ページ更新者:atom
更新日時:2026-05-13 04:57:19

タイトル: コンテキストパスの取得

JSPでコンテキストパス(アプリケーションのベースパス)を取得する方法を説明します。Webアプリ内のリソースを絶対URLで指す際に必須の処理です。

基本:EL式で取得

以下のコードを実装することでJSP側でコンテキストパスを取得することが可能。

${pageContext.request.contextPath}

これがJSPで最も使われる書き方です。例えば /myapp としてデプロイされている場合、${pageContext.request.contextPath}/myapp を返します。

典型的な利用例

CSS・JS・画像のパスを安全に書く際に使います。











ユーザー一覧

スクリプトレットで取得する書き方

古い書き方ですが、スクリプトレットでも取得できます。新規実装ではEL式を推奨。

<%= request.getContextPath() %>

JSTL の c:url を使う書き方

JSTLが使える環境では も選択肢です。コンテキストパスが自動補完され、セッションIDのURL書き換え(URL rewriting)にも対応します。

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

ユーザー一覧

取得結果の例

デプロイ状況contextPathの値
ROOT.war としてデプロイ""(空文字)
myapp.war としてデプロイ/myapp
独自パス指定 (server.xml)指定したパス

関連する取得

取得対象書き方
コンテキストパス${pageContext.request.contextPath}
リクエストURI${pageContext.request.requestURI}
リクエストURL${pageContext.request.requestURL}
サーバー名${pageContext.request.serverName}
ポート${pageContext.request.serverPort}
プロトコル${pageContext.request.scheme}

注意点

  • 絶対パスのスラッシュに注意: ${pageContext.request.contextPath} は先頭にスラッシュを含むので、続けて書く相対パスは /css/... のように / で始める
  • ROOT配下にデプロイすると空文字になる。${pageContext.request.contextPath}/css/.../css/... になり問題ないが、自前で連結処理する場合は注意
  • リバースプロキシ経由のときは、外部URLとコンテキストパスがズレることがある

関連