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

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

新規登録して質問してみよう
ただいま回答率
85.48%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

0回答

1432閲覧

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

mochi600

総合スコア0

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/11/07 07:47

編集2020/11/07 12:03

前提・実現したいこと

急ぎです、よろしくお願いします!
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

html

1<!--①画像(サンプル画像)をクリックして、モーダルウィンドウ (コメント入力フォーム)が開く--> 2<a class="modal-open" href="Comment?nomalNum=1"><img src="sample.png" alt="サンプル画像"></a> 3 4<!--②コメント入力後、追加ボタンを押してComment.javaへ遷移 5[この時、ノーマルタスクのhref属性である相対パスのクエリストリング(nomalNum=1)と 6コメント入力内容を同時にComment.javaへ送信したい]--> 7<div class="content"> 8 <!-- 「modal」がモーダルウィンドウ全体の部分 --> 9 <div class="modal js-modal"> 10 <!-- モーダルウィンドウを表示している時に背景をクリックしてもモーダルウィンドウを閉じられるようにしている--> 11 <div class="modal__bg js-modal-close"></div> 12 <!-- 「modal__content」のなかにモーダルウィンドウで表示したいコンテンツを入れる。--> 13 <div class="modal__content"> 14 コメント入力フォーム 15 <form action="Comment" method="post"> 16 <!-- 入力フォーム --> 17 <textarea name="comment" rows="5" cols="40"></textarea><br> 18 <!-- 追加ボタン --> 19 <input type="submit" name="submit" value="追加"> 20 </form> 21 <!-- モーダルウィンドウを閉じるリンク--> 22 <a class="js-modal-close" href="">閉じる</a> 23 </div> 24 </div> 25</div>

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

CSS

1@charset "UTF-8"; 2/*全称セレクタ:*(アスタリスク)は全ての要素を対象とするセレクタ */ 3*{ 4 box-sizing: border-box; 5 margin: 0; 6 padding: 0; 7} 8.content{ 9 margin: 0 auto; 10 padding: 40px; 11} 12/*モーダルウィンドウ全体をラップする「modal」は、jQueryで表示・非表示を操作するので、 13初期の状態は「display:none」にしておく。*/ 14.modal{ 15 display: none; 16 height: 100vh; 17 position: fixed; 18 top: 0; 19 width: 100%; 20} 21/*モーダルウィンドウ を閉じるための背景要素になる。ブラウザの高さと幅に合わせている*/ 22.modal__bg{ 23 background: rgba(0,0,0,0.8); 24 height: 100vh; 25 position: absolute; 26 width: 100%; 27} 28/*モーダルウィンドウのコンテンツを画面の縦横センサーに配置している部分*/ 29.modal__content{ 30 background: #fff; 31 left: 50%; 32 padding: 40px; 33 position: absolute; 34 top: 50%; 35 transform: translate(-50%,-50%); 36 width: 60%; 37}

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

jQuery

1$(function(){ 2 //「js-modal-open」をクリックしたら「fadeIn」でモーダルウィンドウを表示する 3 $('.js-modal-open').on('click',function(){ 4 $('.js-modal').fadeIn(); 5 return false; 6 }); 7 8 //「js-modal-close」をクリックしたら「fadeOut」で非表示にする 9 $('.js-modal-close').on('click',function(){ 10 $('.js-modal').fadeOut(); 11 return false; 12 }); 13});

Comment.java

java

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/11/07 08:15

Comment.java 」は何ものでしょうか。 リクエストを受け付けるコントローラなのでしたらrequest.getParameterで取得できるはずですが。
m.ts10806

2020/11/07 08:36

<form action="Comment?nomalNum=1" method="post"> にするとか、hiddenに持たすとか 工夫次第で幾らでも楽に渡せるように思いますが・・・
mochi600

2020/11/07 11:33 編集

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

2020/11/07 09:13

m.ts10806様 追記ありがとうございます。参考にさせていただきます!
m.ts10806

2020/11/07 09:20

結構考えているところがありそうなので、質問本文に反映してもらえますか? そうすると、より良いアドバイスもつきやすくなると思います。
m.ts10806

2020/11/07 09:20

まあ、聞いた感じJsoupとか文字列解析の出番ではなさそうですけどね。
mochi600

2020/11/07 10:09

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

2020/11/07 11:52 編集

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問