3.9 相対URLの指定方法
Webページのデザインや電子フォームのデザインの説明で、FNSシステム機能を呼出すためにFNSシステム所定のURLの参照方法について述べましたが、そこではhttps://・・・から始まるいわゆる絶対URLを使用しています。しかし、相対URLを使用すれば、もっと簡単にFNSシステムの機能を呼出すことができ、Webページや電子フォームの移行性を良くする利点があります。そこで、本節では相対URLの使い方について解説します。
絶対URLは、URLのすべての要素を作成者が明示的に指定し、相対URLではURLの一定の要素を省略して指定し、残りはブラウザが補う方式です。相対URLを使用する場合、次ぎのようにURLを二つの部分に分けて捉えます。
ベースURL+相対URL
ベースURLの指定方法にはBASEタグを用いる方法とデフォルトのベースURLを用いる方法の二通りがあります。BASEタグを用いる方法ではベースURLを任意に設定できますが、デフォルトのベースURLを用いる方がより簡単であるため、こちらを用いた相対URLの指定方法について説明します。
相対URLの解説をはじめる前に、FNSシステムにおけるサーブレットについて復習しておきます。FNSシステムの機能はサーブレットと呼ぶプログラムモジュールで構成されています。サーブレットとしてはMfUsPage、MfMyMenu、・・・などがあります。これらのサーブレットを呼出すための絶対URLは、例えば、
https://www.domain/zone/servlet/MfUsPage
のように指定します。Webページのデザインや電子フォームのデザインの説明ではこのような絶対URLを使用していました。すべてのサーブレットは、
https://www.domain/zone/servlet/
で示されるフォルダーservletに置かれていると解釈されます。従って、サーブレットを呼出すためのURLとしてhttps://www.domain/zone/servlet/<サーブレット名>が使われるのです。
ところで、デフォルトのベースURLとは何を意味しているのでしょうか。すべてのWebページはhttps://・・・から始まる絶対URLを持っています。例えば、利用者画面のトップWebページindex.htmの絶対URLは、
https://www.domain/zone/servlet/ MfUsPage/index.htm
です。この例のWebページindex.htmの場合、デフォルトのベースURLは、
https://www.domain/zone/servlet/ MfUsPage/
です。つまり、現在のWebページが属するパスということになります。相対URLはこのデフォルトのベースURLを起点としたアドレスです。
グループの管理者は利用者画面、運用者画面、あるいは管理者画面を登録できますが、各画面はそれぞれ次ぎのパス:
https://www.domain/zone/servlet/ MfUsPage/ (利用者画面)
https://www.domain/zone/servlet/ MfUsPage/ (運用者画面)
https://www.domain/zone/servlet/ MfKnPage/ (管理者画面)
に置かれます。
例えば、利用者画面にindex.htm、page1.htm、page2.htm、page3.htmの3つのWebページファイルがあり、page2.htmとpage3.htmはフォルダーfolderに収められていると仮定します。
folder/page2.htm /page3.htm
index.htm page1.htm
各Webページの絶対URLはそれぞれ次ぎの通りです。
index.htm https://www.domain/zone/servlet/ MfUsPage/index.htm
page1.htm https://www.domain/zone/servlet/ MfUsPage/page1.htm
page2.htm https://www.domain/zone/servlet/ MfUsPage/folder/page2.htm
page3.htm https://www.domain/zone/servlet/ MfUsPage/folder/page3.htm
Webページindex.htmからWebページpage1.htmへリンクする場合、index.htmのデフォルトのベースURLはhttps://www.domain/zone/servlet/ MfUsPage/ですから、
<a href=”page1.htm”>
を指定すれば、デフォルトのベースURLが補われhttps://www.domain/zone/servlet/ MfUsPage/ page1.htmへリンクできます。つまり、
<a href=”https://www.domain/zone/servlet/ MfUsPage/page1.htm”>
と指定した場合と同義になります。page2.htmやpage3.htmへリンクする場合、フォルダーfolderがありますから、
<a href=”folder/page2.htm”>
<a href=”folder/page3.htm”>
のように指定します。
Webページpage2.htmからWebページpage3.htmへリンクする場合、page2.htmのデフォルトのベースURLはhttps://www.domain/zone/servlet/ MfUsPage/folder/ですから、
<a href=”page3.htm”>
を指定すれば、デフォルトのベースURLが補われhttps://www.domain/zone/servlet/ MfUsPage/folder/page3.htmへリンクできます。index.htmやpage1.htmにリンクする場合はどうでしょうか。index.htmやpage1.htmはWebページpage2.htmの一つ上位のパスにありますので、その旨指定する必要があります。それは、
<a href=”../index.htm”>
<a href=”../page1.htm”>
のように「../」で一つ上位のパスを指定します。この例ではfolderをスキップしましたが、更に上位ならば、「../../」のように重ねて指定し更に上位のパスを指定します。
先に、サーブレットの絶対URLは、
https://www.domain/zone/servlet/<サーブレット名>
であることを述べましたが、管理者が登録した各画面も既に察知の通り、特定のサーブレット内に置かれていますので、相対URLを使用して他のサーブレットを呼出すには上位のservletまでパスを遡る必要があり、必要なだけ「../」を指定します。
グループの管理者は電子フォームを登録できますが、電子フォームは次ぎのパス:
https://www.domain/zone/servlet/ MfFormPool
に置かれますので、PDFフォームやHTMLフォームのデフォルトのベースURLは、
となります。従って、各PDFフォームやHTMLフォームの送信先で指定するサーブレットはサーブレット名を指定するだけで足ります。https://www.domain/zone/servlet/