トップ JSP/Servlet 環境に依存しないURLの書き方

環境に依存しないURLの書き方(getContextPathメソッド)

概要

このページでは、getContextPathメソッドを用いた環境に依存しないURLの書き方(コードサンプル)を掲載しています。

getContextPathメソッドとは

Servlet コンテナは javax.servlet.http.HttpServletRequest オブジェクトを生成し、 Servlet のサービスメソッド (doGet、doPost 等) に引数で渡します。

getContextPathは、javax.servlet.http.HttpServletRequestのメソッドで、 リクエストされた URI のうち、リクエストのコンテキストを指す部分を返すメソッドです。

getContextPathメソッドを用いることで環境に依存しないURLが記述できます。

動作確認した環境

アプリの構成

□tomcatホームディレクトリ
├□conf
|└◆server.xml
└□webapps
  └□test
    └◆index.jsp

コンテキスト指定(server.xml)

ここでは、同じアプリに複数のコンテキストパスを設定します。

<?xml version='1.0' encoding='utf-8'?>
 <Server …>
   <Service …>
     <Engine …>
       <Host …>

         <Context path="/aaa"
                  docBase="<tomcatホームディレクトリ>/webapps/test"/>
         <Context path="/bbb"
                  docBase="<tomcatホームディレクトリ>/webapps/test"/>
         <Context path="/ccc"
                  docBase="<tomcatホームディレクトリ>/webapps/test"/>

       </Host>
     </Engine>
   </Service>
 </Server>

JSP(index.jsp)

<%@ page language="java"
 contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC
 "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>環境に依存しないURL</title>
</head>
<body>
<a href="<%= request.getContextPath() + "/index.jsp" %>">
<%= request.getContextPath() + "/index.jsp" %></a>
</body>
</html>

動作確認

全く同じソースを表示していますが、環境に合わせてURLが変わってくれます。

戻る

当サイトについて

基礎知識

Apache Tomcat

関連知識

Apache HTTP Server

JSP/Servlet

サイト内のページ