3

アプリケーションを localhost のポート 8080 で実行しています。ベース URL は次のとおりです: http://localhost:8080/EMSApplication/otherparts ...

http://localhost:8080/EMSApplicationの部分をHttpServletRequestどのように抽出できますか?

現在、私はこれをやっています:

String schema = request.getScheme();
String serverName = request.getServerName();
int serverPort = request.getServerPort();
String contextPath = request.getContextPath();
String path = schema + "://" + serverName + ":" + serverPort + contextPath;
System.out.println(path);

ここで request は のインスタンスですHttpServletRequest

この手順は正しいですか?

他に情報を取得する方法はありますか?

私が自分のアプリケーションをホストし、URL がhttp://my.domain.com/EMSApplication/otherpartsであると言った場合、前述の手順コードは機能しますか?


私が見つけた別の方法:

String requestUrl = request.getRequestURL().toString();
String contextPath = request.getContextPath();
String path = requestUrl.substring(0, requestUrl.indexOf(contextPath) + contextPath.length());

これが必要な場所:

HttpServletRequest request = (HttpServletRequest) getRequest().getContainerRequest();
String requestUrl = request.getRequestURL().toString();
String contextPath = request.getContextPath();
String path = requestUrl.substring(0, requestUrl.indexOf(contextPath) + contextPath.length());          
submitLink.add(new WebMarkupContainer("submitImage").add(new AttributeModifier("src", path + "/ASSETS/css/images/login-btn.png")));

の src を指定する必要がある Wicket アプリケーションを開発しています<img/>

4

1 に答える 1

2

どちらでも構いませんが、私は前者の方が好きです。頭に浮かぶ直接的なものは何もありませんが、この値が必要な理由を説明した場合は、そうかもしれません。

于 2012-04-30T18:28:10.903 に答える