2011-02-02 9 views
0

URLに後続の疑問符があるかどうかを確認する方法はありますか?これは理論的には空でない空のクエリ文字列であり、疑問符は空のクエリ文字列ではありません。しかしどちらの方法でも、私のWebアプリケーションはrequest.getQueryString() == nullになっています。Java Web:末尾の疑問符と空のクエリ文字列を含むURLを検出する

このようなものについてはどのように

答えて

0
String url = request.getRequestURL().toString(); 
if(url.indexOf("?")== -1){//it doesn't} 
+1

たりしても 'url.endsWith( "?")' –

+1

@Johanまたは '含まれています( "?");' –

+0

* "' getRequestURL() ': は、URLに要求を行うために使用されるクライアントを再構築します。返されたURLには...が含まれていますが、クエリ文字列パラメータ**は含まれていません。 "* [The API Docs](http://download.oracle.com/javaee/1.4/api/javax/servlet/ http/HttpServletRequest.html#getRequestURL()) –

0

: -

boolean hasTrailingQuestionMark = "GET".equals(request.getMethod()) && request.getParameterNames().hasMoreElements(); 

私は間違っているかもしれないが、リクエストがGETであり、それはパラメータを持っているなら、私たちは安全に末尾に疑問があると仮定することができると思いますURIの後ろに印をつけます。 http://server/bla?param=1:私は、コードをテストし

UPDATE

、このアプローチは、あなたがパラメータを持っている場合にのみ機能します。ただし、ちょうどhttp://server/bla?がある場合、この条件は失敗します。後者のURL署名を取得しようとしているのかどうかはわかりません。

+0

申し訳ありませんが、後ろに疑問符がある場合でも、falseを返します。しかし、良いアイデア。 –

+0

「http:// server/bla?param = 1'」のように、疑問符の後にパラメータがありますか?または、次のようなパラメータを使用しないでください: 'http:// server/bla?'? – limc

+0

パラメータなし。 URL全体の唯一の疑問符である末尾の疑問符があるときを検出しようとしています。 –

関連する問題