[Java]URLのクエリを動的に制御するなら、連想配列などを活用して綺麗にプログラムをコーディングしたいものです。いうのもリファラー情報を画面遷移先のページにも引き継ぎたい場合、クエリ要するにGET関数をidとvalueを取得してURLにセットする必要があります。URLのクエリとは?http://jisakupc-technical.info/?search=自作PC&sortType=asc上記の黄色いマーカーを引いた部分の事です。遷移先ページにリクエストパラメータとして送信する際に利用しますね。HTMLの概念ではdataTypeはGET形式になります。GoogleやYahooなどの検索結果のページのやたら長いURLもクエリが使われています。クエリは基本、利用者に対してサーバで送信しているパラメータを明示的に公開したいときに最適です。逆に言えば見せたくない値まで表示したらセキュリティー的には脆弱になるので注意が必要。私がやりたいのはリファラー情報の引き継ぎ。サイトのアクセス解析を行ないたいときにこのクエリが重要なんですが、プログラム上で「リダイレクト処理」などを実装した場合、指定先のURLを記述するだけでは引き継ぎができません。「?」から始まる形式に変換して追記してやらなくてはいけません。Javaならどうせ、便利なメソッドやクラスがあるだろう、と思い調べましたが残念ながら見つかりませんでした・・・。クエリ文字列を連想配列で組み立てる方法いろいろ検討した結果以下の方法にたどり着きました。クエリ文字を組み立てる方法1.StringBufferを使う2.StringJoinerを使う3.StringJoinerを使う(応用編)※注意点としてはStringJoinerはJava8以降に対応しています。私が使っている開発環境はまだJava7なので、利用できず・・・。早いところJava8に移行した方がいいんでしょうが、ちょっと悩んでます。1.StringBufferを使う一番初歩的に使うであろうクラスがStringBufferです。StringBuilderはStringBufferの継承クラスなだけで、わざわざ使う必要がないです。いうのもStringBuilderと比べて処理速度が遅いです。継承しているわけですし当たり前と言えば当たり前。いっても大差はほぼないといっても良いでしょう。数万、数十万ループ処理に使うとなるとわずかに差が出るのでStringBufferを推奨します。間違っていたらすみません。2.StringJoinerを使うStringJoinerはaddした文字列に対してその間に、コンストラクタ引数に区切り文字として定義するクラス。文字列の配列を区切り文字を付加して1つの文字列に連結していくイメージになります。動的にadd関数に追加した文字列を連結していく仕組みなのでその点では異なりますね。クエリ部だけで「”&”」を区切り文字として文字列を生成し、http://から始まるパスに対して最終的に「”?”」を区切り文字としてURLを生成します。“search=Java&sortType=asc”3.StringJoinerを使う(応用編)もっと楽しようぜ!ということで簡易型をご用意。HttpServletRequestクラスを利用しリダイレクトresponse.sendRedirect(url);System.out.println(url.toString());StringJoinerクラスの特性を有効利用し、2番目のソースコードよりも行数を削減してコーディングしました。やっていることは基本同じです。インスタンスの引数を1つだけでなく、3つ定義しています。引数は区切り文字の「”&”」。要するに連結した文字列の先頭に入る文字列。要するに連結した文字列の末尾に入る文字列。今回は必要ないので空文字を定義。今回のサンプルコードでは既に固定でクエリ文字列として追加したい文字列情報をMapで宣言していました。アクセスしたURLに対してリクエストパラメータを取得してこのMapに組み込む方法を簡単にご紹介します。サーブレットではお馴染みのHttpServeretRequestクラスを使います。リファラー情報が含まれるクエリ文字列もこのクラスに内包されるため、単純に欲しいパラメータを取得するだけでOKです。SAStrutsの記述になってしまいますが、イメージ的には以下のようになります。null;}}あとはご紹介した3つの方法のうち、ひとつを使えばうまくいくと思います。最新の記事よっきパソコンが大好きな青年。職業はプログラマ/SE。フリーランスとしてウェブサイトの構築・保守の業務に従事。専門学校とパソコンスクールで講師も担当。幼少期からパソコンが大好きで、趣味がそのまま仕事に転じた。自作PCの魅力に惹かれたのは学生時代の頃。自作PC専門ブログで、お得な情報を紹介しています。最終更新日:2017年10月23日コメントを残す返信をキャンセルする。published)サイト上に表示された文字を入力してください。業:IT系の講師/フリーランスJavaやPHPなどを中心にWEB系エンジニアとして活動しています。自作PCの魅力にハマり、何台も組み立て経験は豊富。自作PCアドバイザー的なこともやってるので、気軽にご相談下さい!!趣味でホームページ制作をしています。お仕事の依頼をしてみませんか?WordPressテーマ・プラグイン開発、自作PC組立代行などお仕事の依頼はこちらでお願いします。Reserved.このページの先頭へ。