13

Java 6 を使用しています。JSP とサーブレットに関する知識はほとんどありません。

次のコードを使用して、アプリケーションが実行されているブラウザー名を取得しています。

String browserName = requestProvider.get().getHeader("User-Agent");

また、次のコードを使用して、アプリケーションが実行されているマシンの IP アドレスを取得しています。

String ipAdd = requestProvider.get().getRemoteAddr();

どちらの場合もrequestProvider、型の参照変数ですProvider<HttpServletRequest>。そして、決してそうではないことを確信していNULLます。

問題は、両方の値 ( browserName and ipAdd) NULL を取得する場合があることです。私はテストケースを持っていないので、時々書いています。

私の質問は、これらの値が NULL になる可能性がある場合、Java ではどのような場合ですか?

この問題を回避するには、コーディング時にどのような注意を払う必要がありますか?

毎回 IP アドレスとブラウザ名を取得する別の方法はありますか?

4

2 に答える 2

1

ヘッダーから直接アクセスすると機能するため、user-agent を小文字で使用してみてください。

String browserName = requestProvider.get().getHeader("user-agent");

IPアドレスを取得する別の方法は

String ip = requestProvider.get().getHeader("True-Client-IP"); これは、アカマイの整数化がある場合に機能します。

于 2014-02-19T09:39:51.697 に答える