2017-12-31 77 views
0

私はいくつかのドメイン名ABC.comでプロダクションを行っています。私のコードでは、私はいくつかのアクションgetServletContext()。getContextPath()からドメイン名を返す方法

response.sendRedirect(request.getServletContext().getContextPath() + "/time"); 

に基づいて、他のページにユーザーをリダイレクトしています。しかしによって、それ以上のローカルホストにリダイレクト:8080 //時間 をこれに代えて、私はそれがABCにリダイレクトします。 co.jp/time

どうすればいいですか?私の心に来て簡単な解決策は、私は生産のため、代わりに

request.getServletContextを()を使用して、いくつかの環境変数を設定しなければならないことである。getContextPath()

、私は環境変数値ieを使用します。 ABC.com

答えて

1

あなたのサーバーに到達できるドメインが本当に必要な場合は、環境変数の方法だけが常に動作します(たとえば、サーバーの前にプロキシがあっても)。 )

0

アプリケーションが上記のドメインから操作されている場合、これはあなたが望むドメインで動作するはずです。今はおそらくあなたのローカルホスト上の開発環境を使用している可能性があります。つまり、サーブレットはlocalhost:8080で動作しており、そのパスとしてパスされます。アプリケーションをデプロイするときにはうまくいくはずです。

開発環境で実行しているにもかかわらず、本番バージョンにリダイレクトする必要がある場合は、URLを構成変数でソートする必要があります。私は.confファイルを使用して、実行時にそれらのファイルを読むことを好んでいます。

問題を引き起こす可能性がある小さな問題は二重スラッシュです。パスまたはURLはスラッシュで終了し、2番目のパスを追加する必要はありません。単に+ "time"を実行するだけで十分です。

関連する問題