Java ServletとJSPの連携(フォーム情報によりページ遷移を変更する)の手順を備忘録。
仕様説明
フォームに名前を入力した場合→成功ページへ遷移
フォームに名前を未入力の場合→エラーページへ遷移
JSPページにinclude()ディレクティブを使い全ページにヘッダとフッタを付ける。
スポンサードリンク
手順スタート
デフォルトプロジェクトを右クリック→新規→サーブレットをクリック。
新規サーブレット ウインドウが開くと下記の通りに記入および選択をする。
Javaパッケージ</th>
<td class=des>servlet</td>
</tr>
クラス名</th>
<td class=des>JspServlet</td>
</tr>
スーパークラス</th>
<td class=des>javax.servlet.http.HttpServlet</td>
</tr>
</div>
完了ボタンを押下
SessionServlet.javaの編集
package servlet; import java.io.IOException; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * サーブレット処理 */ public class JspServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * コンストラクタ */ public JspServlet() { super(); } /** * doGet * * @param request * @param response */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // エンコーディング response.setContentType(text/html; charset=Windows-31J); request.setCharacterEncoding(Windows-31J); // フォームデータより名前を取得 String name = request.getParameter(yourName); // サーブレットコンテキストを取得 ServletContext sc = getServletContext(); // 次に遷移するページ(初期値) String nextPage = /servlet/success.jsp; // 未入力チェック if (name.length() == 0) { nextPage = /servlet/error.jsp; } // ページ遷移 sc.getRequestDispatcher(nextPage).forward(request, response); } }
WebContentフォルダの下にservletフォルダを作成する
デフォルトプロジェクトを右クリック→新規→JSPをクリック。
新規 JavaServerPage ウインドウが開くと下記の通りに記入する。
ファイル名</th>
<td class=des>hedder.jsp</td>
</tr>
</div>
完了ボタンを押下
hedder.jspの編集
<%@ page pageEncoding="Windows-31J" %> <div align="center"> <h1>JSP サーブレット演習</h1> </div> <hr />
デフォルトプロジェクトを右クリック→新規→JSPをクリック。
新規 JavaServerPage ウインドウが開くと下記の通りに記入する。
ファイル名</th>
<td class=des>fotter.jsp</td>
</tr>
</div>
完了ボタンを押下
fotter.jspの編集
<%@ page pageEncoding="Windows-31J" %> <hr /> <div align="center"> Copyright 2010 All Rights Reserved. </div>
デフォルトプロジェクトを右クリック→新規→JSPをクリック。
新規 JavaServerPage ウインドウが開くと下記の通りに記入する。
ファイル名</th>
<td class=des>input.jsp</td>
</tr>
</div>
完了ボタンを押下
input.jspの編集
<%@ page language="java" contentType="text/html; charset=windows-31j" pageEncoding="windows-31j"%> Webブラウザから入力処理 <%@ include file="/servlet/hedder.jsp" %> <h1>お名前を入力してください。</h1> <form action="/HelloServlet/JspServlet" method="get"><input name="yourName" type="text" /> <input type="submit" value="送信" /></form><%@ include file="/servlet/fotter.jsp" %>
デフォルトプロジェクトを右クリック→新規→JSPをクリック。
新規 JavaServerPage ウインドウが開くと下記の通りに記入する。
ファイル名</th>
<td class=des>success.jsp</td>
</tr>
</div>
完了ボタンを押下
success.jspを下記の通りに記入
<%@ page language="java" contentType="text/html; charset=windows-31j" pageEncoding="windows-31j"%> <% String getName = request.getParameter("yourName"); String name = new String(getName.getBytes("8859_1"), "JISAutoDetect"); %> 入力成功! <%@ include file="/servlet/hedder.jsp" %> <h2>入力成功!</h2> <%= name %>さん、ご入力ありがとうございました。 <%@ include file="/servlet/fotter.jsp" %>
デフォルトプロジェクトを右クリック→新規→JSPをクリック。
新規 JavaServerPage ウインドウが開くと下記の通りに記入する。
ファイル名</th>
<td class=des>error.jsp</td>
</tr>
</div>
完了ボタンを押下
error.jspの編集
<%@ page language="java" contentType="text/html; charset=windows-31j" pageEncoding="windows-31j"%> <% String title = "未入力です。 "; %> <%= title %> <%@ include file="/servlet/hedder.jsp" %> <h2><%= title %></h2> <a href="/HelloServlet/servlet/input.jsp">こちら</a>から入力して下さい。 <%@ include file="/servlet/fotter.jsp" %>
Tomcatを立ち上げ、Webブラウザより<a href=http://localhost:8080/HelloServlet/servlet/input.jsp>http://localhost:8080/HelloServlet/servlet/input.jsp</a>にアクセスする。
<img src=
入力欄に「はやと」と入力し送信ボタンを押下する。
成功画面に遷移しました。
再度 Webブラウザより<a href=http://localhost:8080/HelloServlet/servlet/input.jsp>http://localhost:8080/HelloServlet/servlet/input.jsp</a>にアクセスする。
入力欄を未入力とし送信ボタンを押下する。
<img src=
エラー画面に遷移しました。
これで JSPとJavaサーブレットで画面の遷移が出来ました。
※ <a href=http://mergedoc.sourceforge.jp/>MergeDoc Project</a>よりEclipse 3.5 Galileo Pleiades All in Oneを使用しています。
</ol>
最新記事 by hayato (全て見る)
- 🎬「ミッション:インポッシブル/デッドレコニング PART ONE」感想: アクションがバチバチ!🎬今年28作品目 - 2023年8月28日
- 💖ディズニー最新作「マイ・エレメント」: 恋に落ちる2人の魅力的なキャラクター!🎞️今年27作品目 - 2023年8月27日
- 🎬 宮崎駿最新作「君たちはどう生きるか」鑑賞✨ 豪華声優陣‼️😊今年26作品目🎉 - 2023年8月16日
コメントを残す