Java ServletとJSPの連携(フォーム情報によりページ遷移を変更する)

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の編集

[code lang=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);
}
}
[/code]

WebContentフォルダの下にservletフォルダを作成する

デフォルトプロジェクトを右クリック→新規→JSPをクリック。
新規 JavaServerPage ウインドウが開くと下記の通りに記入する。

ファイル名</th>
<td class=des>hedder.jsp</td>
</tr>

</div>

完了ボタンを押下

hedder.jspの編集

[code lang=html]
<%@ page pageEncoding="Windows-31J" %>
<div align="center">
<h1>JSP サーブレット演習</h1>
</div>

<hr />

[/code]

デフォルトプロジェクトを右クリック→新規→JSPをクリック。
新規 JavaServerPage ウインドウが開くと下記の通りに記入する。

ファイル名</th>
<td class=des>fotter.jsp</td>
</tr>

</div>

完了ボタンを押下

fotter.jspの編集

[code lang=html]
<%@ page pageEncoding="Windows-31J" %>

<hr />

<div align="center">

Copyright 2010 All Rights Reserved.

</div>
[/code]

デフォルトプロジェクトを右クリック→新規→JSPをクリック。
新規 JavaServerPage ウインドウが開くと下記の通りに記入する。

ファイル名</th>
<td class=des>input.jsp</td>
</tr>

</div>

完了ボタンを押下

input.jspの編集

[code lang=html]
<%@ 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" %>

[/code]

デフォルトプロジェクトを右クリック→新規→JSPをクリック。
新規 JavaServerPage ウインドウが開くと下記の通りに記入する。

ファイル名</th>
<td class=des>success.jsp</td>
</tr>

</div>
完了ボタンを押下

success.jspを下記の通りに記入

[code lang=html]
<%@ 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" %>

[/code]

デフォルトプロジェクトを右クリック→新規→JSPをクリック。
新規 JavaServerPage ウインドウが開くと下記の通りに記入する。

ファイル名</th>
<td class=des>error.jsp</td>
</tr>

</div>

完了ボタンを押下

error.jspの編集

[code lang=html]
<%@ 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" %>

[/code]

Tomcatを立ち上げ、Webブラウザより<a href=http://localhost:8080/HelloServlet/servlet/input.jsp>http://localhost:8080/HelloServlet/servlet/input.jsp</a>にアクセスする。

<img src="入力画面></p

入力欄に「はやと」と入力し送信ボタンを押下する。

"実行結果画面></p

成功画面に遷移しました。

再度 Webブラウザより<a href=http://localhost:8080/HelloServlet/servlet/input.jsp>http://localhost:8080/HelloServlet/servlet/input.jsp</a>にアクセスする。
入力欄を未入力とし送信ボタンを押下する。

<img src="エラー画面></p

エラー画面に遷移しました。

これで JSPとJavaサーブレットで画面の遷移が出来ました。

※ <a href=http://mergedoc.sourceforge.jp/>MergeDoc Project</a>よりEclipse 3.5 Galileo Pleiades All in Oneを使用しています。

</ol>

The following two tabs change content below.
渋谷でWebエンジニアをしています。 株主優待目的で日本株からはじめ、投資信託・米国株の流れで投資しています。 最近は懸賞もハマってます(笑) 旅の思い出ログ、投資運用ログ、株主優待ログが中心のブログです。 どうぞ、よろしくお願いします!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

About Us

Sed gravida lorem eget neque facilisis, sed fringilla nisl eleifend. Nunc finibus pellentesque nisi, at is ipsum ultricies et. Proin at est accumsan tellus.

Featured Posts