質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.49%

Webサイトの内部URLリンクのクエリー部分のみを取得する方法(Java)

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 402

score 0

前提・実現したいこと

急ぎです、よろしくお願いします!
javaでjsoupライブラリ付き
追加ボタンを押した時に、task_list.jspにあるaタグのhref属性である相対パスのクエリストリング(nomalNum=1)と
コメント入力内容を同時にサーブレットで取得したいです。

流れ
①画像(サンプル画像)をクリックして、モーダルウィンドウ (コメント入力フォーム)[jQueryとCSSを使用]が開く
②コメント入力後、追加ボタンを押してComment.javaへ遷移
[この時、画像(サンプル画像)のhref属性である相対パスのクエリストリング(nomalNum=1)と
コメント入力内容を同時にComment.javaへ送信したい]

発生している問題・エラーメッセージ

Malformed URL:task_list.jspというエラーが出る

該当のソースコード

task_list.jsp

<!--①画像(サンプル画像)をクリックして、モーダルウィンドウ (コメント入力フォーム)が開く-->
<a class="modal-open" href="Comment?nomalNum=1"><img src="sample.png" alt="サンプル画像"></a>

<!--②コメント入力後、追加ボタンを押してComment.javaへ遷移
[この時、ノーマルタスクのhref属性である相対パスのクエリストリング(nomalNum=1)と
コメント入力内容を同時にComment.javaへ送信したい]-->
<div class="content">
    <!-- 「modal」がモーダルウィンドウ全体の部分 -->
    <div class="modal js-modal">
        <!-- モーダルウィンドウを表示している時に背景をクリックしてもモーダルウィンドウを閉じられるようにしている-->
        <div class="modal__bg js-modal-close"></div>
        <!-- 「modal__content」のなかにモーダルウィンドウで表示したいコンテンツを入れる。-->
        <div class="modal__content">
            コメント入力フォーム
            <form action="Comment" method="post">
                <!-- 入力フォーム -->
                <textarea name="comment" rows="5" cols="40"></textarea><br>
                <!-- 追加ボタン -->
                <input type="submit" name="submit" value="追加">
            </form>
            <!-- モーダルウィンドウを閉じるリンク-->
            <a class="js-modal-close" href="">閉じる</a>
        </div>
    </div>
</div>


モーダルウィンドウ に関してのCSSです。

@charset "UTF-8";
/*全称セレクタ:*(アスタリスク)は全ての要素を対象とするセレクタ */
*{
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}
.content{
    margin: 0 auto;
    padding: 40px;
}
/*モーダルウィンドウ全体をラップする「modal」は、jQueryで表示・非表示を操作するので、
初期の状態は「display:none」にしておく。*/
.modal{
    display: none;
    height: 100vh;
    position: fixed;
    top: 0;
    width: 100%;
}
/*モーダルウィンドウ を閉じるための背景要素になる。ブラウザの高さと幅に合わせている*/
.modal__bg{
    background: rgba(0,0,0,0.8);
    height: 100vh;
    position: absolute;
    width: 100%;
}
/*モーダルウィンドウのコンテンツを画面の縦横センサーに配置している部分*/
.modal__content{
    background: #fff;
    left: 50%;
    padding: 40px;
    position: absolute;
    top: 50%;
    transform: translate(-50%,-50%);
    width: 60%;
}


モーダルウィンドウ に関してのjQueryです。

$(function(){
    //「js-modal-open」をクリックしたら「fadeIn」でモーダルウィンドウを表示する
    $('.js-modal-open').on('click',function(){
        $('.js-modal').fadeIn();
        return false;
    });

    //「js-modal-close」をクリックしたら「fadeOut」で非表示にする
    $('.js-modal-close').on('click',function(){
        $('.js-modal').fadeOut();
        return false;
    });
});


Comment.java

//指定したURLのHTML情報を取得
Document doc = (Document) Jsoup.connect("task_list.jsp").get();
Elements links = ((Element) doc).getElementsByTag("a").select("[href]");
for (Element link : links) {
 //hrefの値を取得して、コンソールに出力
  System.out.println(link.attr("href"));
}
//コメント入力内容を取得
String comment = request.getParameter("comment");

試した事

Comment.javaで
request.getParameter(“nomalNum”)で取得しようと試しましたが、nullで返ってきました。
今回は
①画像(サンプル画像)をクリックして、モーダルウィンドウ (コメント入力フォーム)[jQueryとCSSを使用]が開く
②コメント入力後、追加ボタンを押してComment.javaへ遷移
[この時、画像(サンプル画像)のhref属性である相対パスのクエリストリング(nomalNum=1)と
コメント入力内容を同時にComment.javaへ送信したい]
という流れでしたいと考えていますので、追加ボタンを押した時にはrequest.getParameterではクエリストリング の値が保持されずnullになったのでは?と考えております。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • mochi600

    2020/11/07 19:09

    お待たせしてしまい、申し訳ないです。
    反映させましたが、jsファイルのコードはもう少し時間がかかりそうなので、必要であればもうしばらくお待ちください。
    こちらでの内容と一部相違がありますが、質問本文を優先してください。
    質問本文の全ての編集を終わらせてから、こちらでの追記内容を編集させていただきます。

    キャンセル

  • m.ts10806

    2020/11/07 19:44

    ん、JS?

    キャンセル

  • mochi600

    2020/11/07 20:31 編集

    JavaScriptファイルの事です、すみません。以後気をつけます。
    モーダルウィンドウ 関連はjQueryとCSSを使用しているので、必要であれば参考にしてください。
    jspの方も新たに修正させていただきました。

    キャンセル

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.49%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る