☕
[Servlet]Echo機能の実装+リクエストパラメータについて
◆はじめに
Echo機能の実装です。
本記事で紹介するプログラムを作成した後に、
以下のURLへアクセスします。
テキストボックスに文字列を入力し、
「送信」ボタンを押します。
すると、送信した文字列がServletで画面上に返却されます。
リクエストパラメータに関しては、
本記事の最後の方に、書いています。
それでは、どうぞ。
◆実行環境について
※本記事では、eclipseは以下のバージョンを使用しています。日本語化はしていません。
◆事前準備
①ローカルサーバー(Tomcat)
プロジェクトを動かすためのローカルサーバーを用意します。
本記事では、Tomcat8.5を使用しています。(任意)
ローカルサーバーの立て方は以下の記事を参考にしてください。
②動的Webプロジェクトの作成
動的Webプロジェクトを用意します。
プロジェクト名は、「InputFunction」で作成。(任意)..EchoFunctionが良かったかも
以下のようなディレクトリ構造になります。
また、プロジェクトファセットと
サーバーランタイムは以下のように設定されています。
また、今回は、タグライブラリ(JSTL)を使用します。
libraryの追加が必要ですので、
以下の記事を参考にして下さい。
また、Eclipse2022-03以降の場合、
動的Webプロジェクトをそのまま作成すると、フォルダ構造が違います。
揃えたい方は、以下の記事を参考にするといいでしょう。
③今回使用するファイルの作成
●「src」内に、「パッケージ(パッケージ名:input)(任意)」を作成
●「パッケージ(input)」内に、「EchoServlet.java」を作成
●「WebContent」のフォルダ内に、「echo.jsp」を作成
以上のような、フォルダ構成になります。
作成したファイルにソースコードを追加していきます。
それでは、手順をご覧ください。
◆手順
①ソースコード
・「echo.jsp」に記述するコード
ブラウザに表示される入力ボックスと送信ボタンなど記述します。
JSTLを使用しているため、@taglibの箇所などエラーが出ると思いますが、
②でライブラリの追加などして解消します。
echo.jsp
<%@page language="java" contentType = "text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page isELIgnored= "false" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<title>入力機能</title>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<h3>入力機能</h3>
<form action="echo">
<br />入力してください : <input type="text" name="m" /><br />
<input type="submit" /> <br />
</form>
<br />
<c:if test="${not empty message}">
入力された文字は、「${ message }」です。
</c:if>
</body>
・「EchoServlet.java」に記述するコード
EchoServletの内容を記述します。
@WebServlet("/echo")は、アクセスする際のURIです。
EchoServlet.java
package input;
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
@WebServlet("/echo")
public class EchoServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
String message = request.getParameter("m");
System.out.println(message);
request.setAttribute("message",message);
RequestDispatcher dispatcher = request.getRequestDispatcher("echo.jsp");
dispatcher.forward(request, response);
}
}
②タグライブラリ
以下の記事を参考にして入れてください
③Webブラウザからアクセスし、Echo
以下のURLから、アクセスします。
以下のような画面が出たら、
Echoさせる文字を入力します。
そして、「送信」ボタンを押しましょう。
送信した文字列が表示されたら成功です。
また、Eclipseのコンソールにも、
以下のように、出力されているでしょう。
URLにも/echoの後に、「?m="入力文字列"」が表れていると思います。
これを、リクエストパラメータといいます。
このリクエストパラメータは、
以下のコードが関係しています。
echo.jsp
<input type="text" name="m" />
EchoServlet.java
String message = request.getParameter("m");
request.setAttribute("message",message);
RequestDispatcherについては、
調べてみてください。
◆さいごに
いかがだったでしょうか?
ServletでEcho機能の実装についてでした。
リクエストパラメータについても書きました。
URLに付与されるのはdoGetが関係しています。
でも、見えないほうがスッキリしてますし良くないですか?
非表示でする方法はあります。
続きで、記事を書いたので、
よければどうぞ。
doGetではなくて、doPostを使っています。
それでは!
◆参考
本記事は、以下の書籍を大いに参考にしています。
より詳しく知りたい方は、どうぞ。
Discussion