練習問題
8.7 練習問題
本章で習った内容をもとに練習問題を解いてください。
問1 次の設問①~⑤について○か×で答えなさい。
設問
① Web画面からデータを送るには、フォームと呼ばれるHTMLの仕組みを利用する。
② データをURLの後ろに付けて送信するため、送信できるデータ量に制限があるのはPOST送信である。
③ POST送信はリンクからしか送ることができない。
④ サーブレットではPOST送信された場合doPost()、GET送信された場合doGet()メソッドが実行される。
⑤ 出力用の文字エンコーディングを指定すれば送信データの文字エンコーディングは必要ない。
問2 以下に示す実行結果になるような、ソースコードの空欄①~⑥に入るものを選択肢より選びなさい。
実行結果
選択肢
post get getParameter setCharacterEncoding job doPost doGet
ソースコード
➢ practice0801.jsp① 親フォルダの入力または選択 :web_basic/view/ch08exercise
② ファイル名 :practice0801.jsp
③ アクセスURL :http://localhost:8080/web_basic/view/ch08exercise/practice0801.jsp
<%@page contentType= "text/html; charset=UTF-8" %> <html> <head> <title>practice0801</title> </head> <body> <form action="<%= request.getContextPath() %>/Practice0801Servlet" method=" ① "> あなたの職業はなんですか?<br> <input type="text" name=" ② "> <input type="submit" value="送信"> </form> </body> </html>
➢ Practice0801Servlet.java① ソース・フォルダ :web_basic/WEB-INF/src
② パッケージ :ch08exercise
③ 名前 :Practice0801Servlet
④ スーパークラス :javax.servlet.http.HttpServlet
⑤ アクセスURL :practice0801.jspからの画面遷移でアクセスされる
➢ web.xml
<servlet> <servlet-name>Practice0801ServletMapping</servlet-name> <servlet-class>ch08exercise.Practice0801Servlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Practice0801ServletMapping</servlet-name> <url-pattern>/Practice0801Servlet</url-pattern> </servlet-mapping>
問3 問2で作成したプログラムをもとに、仕様に沿った入力チェックを追加したプログラムを作成しなさい。
仕様
①何も入力されずアクセスされた場合、「何も入力されていません」とメッセージを表示する。
②ダイレクトアクセスされた場合、「フォームからアクセスしてください」とメッセージを表示する。
ソースコード
① 親フォルダの入力または選択 :web_basic/view/ch08exercise
② ファイル名 :practice0802.jsp
③ アクセスURL :http://localhost:8080/web_basic/view/ch08exercise/practice0802.jsp
① ソース・フォルダ :web_basic/WEB-INF/src
② パッケージ :ch08exercise
③ 名前 :Practice0802Servlet
④ スーパークラス :javax.servlet.http.HttpServlet
⑤ アクセスURL :practice0802.jspからの画面遷移でアクセスされる