【Java】JSPでタグライブラリを使う(JSTL)
こんにちは。エンジニアの新田です!ここでは、システムエンジニアとして働いている私が、システム開発手法や開発言語について紹介していこうと思います。今回は、JSPの標準タグライブラリ「JSTL」について紹介します。Javaについて勉強している方、Webアプリケーションを構築したいと思っている方の参考になれば幸いです!関連記事リンク: 【Java】JSPの基本的な構文/【Java】JSPのアクションタグ
Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!
フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。
こんにちは。エンジニアの新田です!
ここでは、システムエンジニアとして働いている私が、システム開発手法や開発言語について紹介していこうと思います。
今回は、主にJavaサーブレット/JSPについて触れていきます。
Javaについて勉強している方、Webアプリケーションを構築したいと思っている方の参考になれば幸いです!
関連記事:【Java】Webアプリケーションからデータベースへの接続
サーブレットを作成する前に、前提知識として必要な部分について説明します。
一般的にサーブレットを作成する場合は、javax.servlet.http.HttpServletクラスを継承します。
import javax.servlet.http.HttpServlet;
public class SampleServlet extends HttpServlet {
}
Javaのライブラリで、サーブレットに必要な機能(HTTP通信に特化した機能)を実装したクラスが提供されているので、開発者はHttpServletを継承し、メソッドをオーバーライドすることで、 自分たちのサーブレットを作成することができます。
【javax.servlet.http.HttpServlet】
GenericServletを継承した、HTTP通信に特化したサーブ レットクラス
【javax.servlet.GenericServlet】
Servletインターフェースを実装した一般的なサーブレットクラス
init()メソッド
service ()メソッド
doGet()メソッド ※
doPost()メソッド ※
destroy()メソッド
※ service()メソッドから分岐して実行される。
【service ()メソッドからの分岐イメージ】
それでは、実際にサーブレットを作成していきたいと思います。
1.doGetメソッドの宣言
2.java.io.PrintWriterの取得
3.出力内容(レスポンス)の作成
4.サーブレットの公開
HttpServletを継承したクラスを作成し、doGet()メソッドをオーバーライドします。
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// 処理を記入
}
}
java.io.PrintWriterは、レスポンス情報を出力するためのオブジェクトで、getWriter()メソッドで取得します。
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
・
・
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
PrintWriter out = resp.getWriter();
}
}
出力ストリームオブジェクトからレスポンスを出力します。
今回は、PrintWriterの持つprintlnメソッドを利用します。
public void println(String s);
ブラウザへ出力する文字列をHTML形式で指定します。
・・・
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws
ServletException, IOException {
PrintWriter out = resp.getWriter();
out.println("<html>");
out.println("<head></head>");
out.println("<body>");
out.println("<h1>Hello Servlet!</h1>");
out.println("</body>");
out.println("</html>");
}
サーブレットの公開とは、サーブレットをWebに公開して、ユーザーが利用可能な状態にする事です。
URLで指定されるパス(サーブレット名)と実際に実行されるサーブレットの紐づけを行います。
web.xmlに対して公開したいサーブレットとURLの対応 関係を記述します。
Webアプリケーションの定義ファイルのこと。Servletコンテナがこのファイルを解析し、必要な情報を取得したり、定義に従いアプリケーションを動作させる。
デプロイメント・ディスクリプタ(配備記述子)とも呼ばれる。
記述する内容
【サーブレットの情報】
【サーブレットのマッピング情報】
web.xmlの例
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID"
version="2.5">
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
<web-app>
ルート要素
<servlet>
サーブレットの情報を記述する。
<servlet-name>
サーブレットの別名を定義する。
<servlet-class>
サーブレットの(パッケージ名も含めた)クラス名を指定する。
完全修飾名で指定する。
<servlet-mapping>
サーブレットとサーブレットパスの関連を記述する。
<servlet-name>
<servlet>で定義したサーブレットの別名を指定する。
<url-pattern>
サーブレットにアクセスするためのサーブレットパスを定義する。
各要素の関係は以下のようになります。
ここまでの設定で、以下のURLパターンでサーブレットを起動することが可能になります。
http://localhost:8080/[※コンテキストルート]/hello
※コンテキストルートは実行環境に合わせてください。
今回は文字列を出力するだけの簡単なサンプルを例にサーブレットの作成方法を紹介しましたが、webアプリケーションにはパラメータの受け渡しやセッション管理、データベースアクセスなど様々な要素があります。次回以降の記事では、更に踏み込んでサーブレットの実装について紹介していきたいと思います。
関連記事:【Java】Webアプリケーションからデータベースへの接続
【著者】
JavaメインのWebアプリケーション開発に多く携わっています。
Javaの基本的な部分の紹介や、これまで経験したシステム開発手法、新しい技術についても紹介していこうと思います。
そのような方はぜひ、Workteriaサイトをご利用ください!
定期的にご本人に合う高額案件を紹介
リモートワークなど自由な働き方ができる案件多数
専属エージェントが契約や請求をトータルサポート
こんにちは。エンジニアの新田です!ここでは、システムエンジニアとして働いている私が、システム開発手法や開発言語について紹介していこうと思います。今回は、JSPの標準タグライブラリ「JSTL」について紹介します。Javaについて勉強している方、Webアプリケーションを構築したいと思っている方の参考になれば幸いです!関連記事リンク: 【Java】JSPの基本的な構文/【Java】JSPのアクションタグ
こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!そもそもStringとは何?『 String 』... Java言語において文字列のデータ型を指します。基本デ
こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!Stringクラスformatメソッドの文字列整形【java.utilパッケージ】Formatterクラスfo
こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者にも✅、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!文字列を扱う3つのクラス【java.langパッケージ】java.langパッケージの文字列を扱うクラスにはS
こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!プリミティブ型と参照型プログラム開発では型を持った変数を使ってデータのやり取りをしますが、データ型によって仕様