2017-05-19 15 views
0

jspページでは、通常、コードが表示されます。javaのWebページでパスとベースパスを使用する方法は?

< % String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>

私はこの方法を使用して、静的リソースを取得:

<script type="text/javascript" src="<%=path%>/js/jquery-1.9.1.min.js"></script> 

を私は他の方法を使用してもOKであることがわかります。

<script type="text/javascript" src="<%=basePath%>/js/jquery-1.9.1.min.js"></script> 

何が違うのですか?basePathのみを使用する必要がありますか、それとも同じ効果がありますか? (静的)なリソースを取得するためにbasepathを使用し

/mycontext 

はシンプルで機能します。すなわちpathが唯一のコンテキストパスであるのに対し、

答えて

1

basePathはあなたの絶対パスたとえば、Webアプリケーション

http://example.net:8080/mycontext/ 

ですネットワークトポロジ/セットアップ。アプリケーションがbasePathを使用するロードバランサの背後にあるシナリオでは、リクエストがJSPと同じホストおよびポートに移動するため、ロードバランシングの考え方が損なわれます。

ロードバランサ、ファイアウォール、またはWebサーバーの背後にWebアプリケーションがある可能性があるので、より複雑なネットワーク設定では、どのURLがユーザーに表示されているかわからないため、basePathアプローチを使用することはお勧めしません。

+0

したがって、バスパスよりも経路を使用する方が良いですか? – flower

+0

@flower基本パスを使用する理由がない限り、コンテキストパス(つまり、パス変数)を使用することをお勧めします。 – andih

関連する問題