1

私はTomcat/Javaの初心者です。私は単純なWebアプリケーションを持っていますが、アプリケーションがローカル開発で実行されているのか、ライブで展開されているのかによって<welcome-file>、異なるものを示したいと思います。web.xml

今私は持っています:

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
</welcome-file-list>

ローカル開発の場合は、開発用とデプロイされたライブアプリケーション用<welcome-file>web.xmlなりたいと思います。理由は、私がローカルであるかライブであるかによって、異なるロードをしたいということです。index-dev.htmlindex-live.html*.css*.js

この設定を実現する方法はありますか?

4

3 に答える 3

1

オプションとして:ウェルカムページとしてjspファイルを作成します。

そのjspファイルで、現在のクライアントの場所(ローカルコンピューターかどうか)を分析し、関連するページに転送します。

追加の編集:

jspには事前定義されたrequestオブジェクトがあります。

次のように、クライアントIPを取得するために使用します。

<%
    String remoteIp = request.getRemoteAddr();
%>

次の方法で取得できるローカルホストアドレスと比較してください。

<%
    InetAddress address = InetAddress.getLocalHost();
    String localhostIp = address.getHostAddress();
%>

そしてjsp:forward、関連するページに転送するために使用します。

<%
    // getting jsp (servlet) client ip
    String remoteIp = request.getRemoteAddr();

    // getting local ip
    InetAddress address = InetAddress.getLocalHost();
    String localhostIp = address.getHostAddress();

    // checking and forwarding
    if(localhostIp.equals(remoteIp)){
%>
     <jsp:forward page="localhost.html"/>
<%}else{%>
    <jsp:forward page="remote.html"/>
<%}%>

追加の編集:

localhostIpにIPアドレスのみが含まれていることを確認してください。含まれていない場合は、Stringメソッドを使用して、内部にip-addressを含むサブストリングを取得してください。

于 2012-09-20T12:33:40.627 に答える
1

ヘッダーページを作成します(ウェルカムページを含むすべてのページに含まれます)。<c:if>あなたのために簡単なチェックをするためにを書いてください。サーブレット仕様は、マシンのIPアドレスの要求に基づいて異なるウェルカムページをサポートしているとは思いません。理想的には、どのWebアプリも、アクセスされた場所から同じページを提供することを想定しています。

于 2012-09-20T12:41:11.833 に答える
1

Liveには、TomcatにプロキシリダイレクトするApachehttpdが常に存在する必要があります。

これには複数の長所があります。

  • Tomcatがダウンしている場合は、「しばらくお待ちください/後で戻ってきてください」を定義できますinfo.html
  • awstatsを使用すると、トラフィックを分析できます
  • Tomcatを放電するためのライブJS/CSSディレクトリを定義できます

よろしく

于 2012-09-20T12:49:08.610 に答える