絞り込み条件を変更する
検索条件を絞り込む
有料ブログの投稿方法はこちら

すべてのカテゴリ

58 件中 1 - 58 件表示
カバー画像

MicroProfile でクラウドネイティブアプリケーション開発 3 - JSON 対応 -

この記事では前回記事の続きとしてJSON データを扱うREST アプリケーションを作成する。このアプリケーションでは HTTP POST リクエストでJSON データを保存し、HTTP GET リクエストで保存済みJSONデータを取得することができる。前回作成した example アプリケーションを元にソースコードの追加、編集を行う。ソースコードの追加(Name.java)Name クラスを Name.java で定義する。Name クラスはフィールドとして id と name を持っている。それぞれについてゲッターとセッターのメソッドを定義している。アプリケーションが保持するデータはこの Name クラスのインスタンスの集合として表される。ソースコードの編集(NamesResources.java)NamesResources クラスの定義を次のように変更する。NamesResources.java主な変更点:・ApplicationScoped アノテーションをクラス定義に付加したこれにより、スコープを ApplicationScoped (アプリケーションスコープ)に設定して、このリソースクラスのインスタンスがアプリケーションで1つのみ生成されるようにしている。これによって、names 変数を static にしなくても異なるリクエスト間でデータが保持されるようになる。・names を Map から Set<Name> タイプに変更したデータの集合を HashSet<Name> として扱うため。・Produces と Consumes のアノテーシ
0
カバー画像

MicroProfile でクラウドネイティブアプリケーション開発 2 (*再投稿)

* 画面キャプチャの貼り付けに失敗していたため再投稿しています。学習の続き(RESTful ウェブサービスのサンプル)この記事では、前回と同様に Open Liberty のスターターアプリケーションを元にしてサンプルとなる RESTful ウェブサービスを作成する。今回の内容は MicroProfile というより Jakarta EE RESTful ウェブサービスの仕様に関するものが中心となる。まずは前回と同じように、openliberty.io/start/ のページからプロジェクトファイルをダウンロードする。それぞれの入力値は下の画像の通り。IDE は IntelliJ IDEA 2023.3.2 (Community Edition) を使用している。ダウンロードしたZIPファイルを example ディレクトリに展開して、IDE で開く。Java のソースファイル NamesResource.java を追加する。下の画像のようにNamesResourceクラスを定義する。(package と import 宣言の部分は画像から除いている。)(NamesResouce.java)HashMap<Integer, String> タイプの static フィールドである names が、このウェブリソースが保持するデータとなっている。 static としているのは、NameResource クラスのインスタンス間でこのデータを共有するため。(リソースクラスのインスタンスはそれぞれの HTTP リクエストに対して生成されることに注意)RestApplica
0
カバー画像

MicroProfile でクラウドネイティブ アプリケーション開発 1

MicroProfile とはこの記事では Java でマイクロサービスアプリケーションをつくるためのAPI 仕様を定義している MicroProfile について学習する。Eclipse ファウンデーションの公式サイトによると、"MicroProfile®プロジェクトは、エンタープライズJavaをマイクロサービスアーキテクチャに最適化することを目的としている。" (URL: projects.eclipse.org/projects/technology.microprofile)MicroProfile と互換性のある Java ランタイム(アプリケーションを実行するサーバー)としては、例えば下記などが存在する。・Open Liberty (IBM)・Payara Micro (Payara Services Ltd)・Quarkus (Red Hat)MicroProfile 自体の公式サイトは下記URL でアクセスできる。URL:  microprofile.io Jakarta EE との関係MicroProfile には Jakarta EE の仕様の一部が含まれている。(例えば MicroProfile の 6.1 は Jakarta EE 10 コアプロファイルを含む。)従って、Jakarta EE でのアプリケーション作成の知識はそのまま活用することができる。Open Liberty 上で動作するアプリケーションの開発ここではアプリケーションサーバーとして Open Liberty を使うことにする。Open Liberty のアプリケーションプロジェクトを生
0
カバー画像

Jakarta EE 10 の学習 - Jakarta RESTful ウェブサービス -

Jakarta EE で RESTful ウェブサービスを開発する方法について学習する。仕様書としては "Jakarta RESTful Web Services 3.1" が対応する。Jakarta REST サンプルアプリ hello のビルドこの記事では The Jakarta EE Tutorial (eclipse-ee4j.github.io/jakartaee-tutorial/) のサイトで使われている Jakarta RESTのサンプルアプリケーションのひとつである hello をビルドして実行してみる。これまでと同様に、サンプルアプリが含まれるプロジェクトは、下記のGitHub リポジトリから git clone で取得している。github.com/eclipse-ee4j/jakartaeeNetBeans IDE で hello プロジェクトを開く。 (tutorial/jarxs/hello ディレクトリを選択)Javaソースファイルとしては下記の2つのファイルが含まれている。HelloApplication.javaHelloWorld.java プロジェクトをビルドするとサーバーにデプロイされる。Launch をクリックしてアプリを起動させる。hello アプリの動作curl コマンドでGET リクエストを送信するとレスポンスが text/html で返ってくる。$ curl -i localhost:8080/hello/helloworld(レスポンスヘッダ)HTTP/1.1 200 OKServer: Eclipse GlassFish 7
0
カバー画像

Brouilleur de signal : un outil pointu pour la gestion du campus ou une servitude pour la liberté des étudiants ?

Avec le développement de la technologie moderne, les téléphones portables sont devenus un élément indispensable de la vie quotidienne des gens. Sur le campus, les étudiants ne font pas exception, ils ont besoin de téléphones portables pour se connecter avec leur famille et leurs amis, accéder aux ressources d'apprentissage et même aux divertissements. Cependant, l'utilisation des téléphones portables a également entraîné des effets négatifs, tels que la dépendance au téléphone portable, la dépendance au téléphone portable et d'autres problèmes. Pour résoudre ces problèmes, certaines écoles ont commencé à utiliser des brouilleur www.jammer-home.com de signal pour limiter l'utilisation du télé
0
カバー画像

法人向けIT系技術講師【自己紹介/80~90年代ディスコ大好き】

初めまして、都内在住の「ままどおる」と申します。個人事業主として、法人向けにIT系技術研修(通年制)を営んでおります。(2024年3月17日現在) 先述した事業を主催しているビジネスパートナー(X社)の業務委託として、下記の業務に携わって4年間目です。・X社が主催する技術研修の企画制作 (テキスト作成や改訂を含む)・X社が主催する技術研修の主任講師 (実機演習の添削を含む)・X社が主催する技術研修の運営業務・他社が主催する技術研修の講師 (X社経由、時期によって頻度変わる)新卒(地方工科系大学卒)から20数年間、ITインフラ系のエンジニア(上場企業の正社員)として動きましたが、その当時から技術講師を経験しました。ちなみに会社員時代の主たる業務は、販売商品の品質管理(リリースコントロールなど)と設計・構築・保守でしたが、技術教育は必要に応じて随時実施しました。(年20回くらい)会社員時代の技術教育では、協力会社向けと販売代理店向け(IT系専門商社に勤務したので、プロダクト販促と品質管理目的が強かった)の両方を扱いました。個人事業主として研修業務に携わって4年目(2024/3)年収は、会社員時代の2倍以上に跳ね上がりました。かろうじて所得税の税率が1段あがる所得に届いてませんが、もしギリギリで届いちゃったら悲しいという別な悩みを抱えてます。1段あがるのであれば、正直もっと爆上げしたいです。爆上げの取り組みとして、1、業種転換を図る企業様向けの動向調査をする。 主たる事業の業種をIT系に転換したい企業が、どんな業種を主な 事業として動いていて、どういう理由で転換したいかを知りたいです
0
カバー画像

【Java入門】 Webアプリケーション 座学

【Java入門】 Webアプリケーション 座学
0
カバー画像

最近Javaの勉強に全集中してます!

こんにちは!最近ブログの投稿を怠っていたゆるかわイラストmameです!(o^^o)私は、今「Java」というプログラミング言語の勉強をしていて、4月ごろにJavaBronzeという資格取得に向けて頑張っています!最初の方は、「Java難しい・・・うぅ・・・」となっていたのですが、無事勉強へのやる気スイッチも入り、テキストをサクサクと進めています!Javaの勉強をするにあたって、コマンド捜査の勉強もちょっとずつ始めているのですが、わからないことがたくさんで日々奮闘中です!笑考えても考えてもわからない問題が出てきて頭が爆発しそうになったら、イラストレーターを開いてイラストを描き始める。というルーティーンが出来上がりつつあります… イラストの練習もできて一石二鳥ですね!笑みなさんからのイラストのご依頼、どしどしお待ちしております〜!楽しくイラストを描くことは、誰にも負けないと思います!笑気になった方はぜひこちらをご覧ください!▼
0
カバー画像

Java Android ファイル名で判別して、データを削除(実装版 function)2021

** * log ディレクト が 存在している かつ 、ファイルがあって、ファイル名が TN- から始まっていたら、 * 全削除する。 */private void File_Del() {    //************************** ファルダ 作成 **************************    String path = getApplicationContext().getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS).getPath() + "/log/";    String r_path = getApplicationContext().getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS).getPath();    //************************* フォルダ リネーム用 **********************    //Calendarクラスのオブジェクトを生成する    Calendar cl = Calendar.getInstance();    // SimpleDateFormatクラスを使用して、パターンを設定する    SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd" + "_" + "HHmmss");    csv_date_01 = sdf.format(cl.getTime());    String re_
0
カバー画像

Javaプログラミング これだけはやっておけ! 「トレース力」

0
カバー画像

Javaの未来はどうなるのか 学ぶべきか!?

0
カバー画像

エンジニアの気まぐれダイアリー

みなさん、如何お過ごしでしょうか??ブログ第2回目です。。【1回目からだいぶ間が空いてすみません。。。】今日は仕事の事を少しお話したいと思います。。実は来年度に仕事の役職が上がります。。。今まで仕事は食べて行ければそれでいいくらいでしたが、やはり年齢を重ねてくるとそうもいかなくなります。。。。【あまり気が進みませんでしたが。。。】ほんと日本で仕事をしていると役職上がってもあまりいい気分ではないです。。。【僕はそう感じています。】給料もたいして上がらないし責任だけ押し付けられる。。。。。まあ、嘆いても仕方まいですよね。。。でも仕事自体は嫌ではないので何とかなるかなあと思いながら新年度を迎えるしかなさそうです。。。愚痴っぽくなってしまいましたが同じ境遇の人も、上をめざしている人も仕事は体/心を壊さない程度に頑張りましょう!とりとめのないブログになってしまいましが、次回はプログラムの話をしたいと思いますのでまた、今度。。。では次回で!!
0
カバー画像

[Python入門] 四則演算 202000816

0
カバー画像

[Python入門] コメントについて 202000815

0
カバー画像

[Python入門] とりあえず、はじめてみた![環境構築編](202000619)

0
カバー画像

[Java入門] プログラムの学び方 (202000611)

0
カバー画像

[Javascript入門] 3分で計算機をつくろう (202000618)

0
カバー画像

Jakarta EE 10 の学習 - address-bookの理解5 ContactFacadeクラス -

この記事では address-book アプリケーションの ContactFacade クラスの内容を理解する。ContactFacade クラスこのクラスは Enterprise Bean の1つのタイプであるステートレスセッションビーン(Stateless Session Bean) として Stateless アノテーションで指定されている。このクラスにはCONTACT データベーステーブルの操作を実行するためのメソッドが定義されている。インスタンスの生成と破棄はアプリケーションサーバーによって管理され、メソッドの実行時に必要なインスタンスが用意される。Enterprise Bean は主にアプリケーションのロジック部分を担当するクラスとして使用される。 ステートレスセッションビーンはインスタンスのメソッド実行の前後でインスタンスの状態が保たれない。複数のメソッド実行の間でインスタンスの状態を保ちたい場合はステートフルセッションビーンを使用する。 (Statefull アノテーションで指定する)address-book アプリケーションでは、このクラスは ContactController クラス定義内で EJB アノテーションを使ってオブジェクトへの参照をインジェクトして使用されている。因みにこのクラスを Enterprise Bean とせずに、CDI Managed Bean を使うこともできる。ただしその場合にはデータベースとのトランザクションに必要なトランザクションコンテキストが作られないため、クラス定義に Transaction アノテーションを付加する必要が
0
カバー画像

Jakarta EE 10 の学習 - address book の理解4 Contact クラス -

この記事では Contact.java ファイルの内容を理解する。このファイルでは Contact クラスを Entity クラスとして定義している。Contact クラスContact クラスの定義内容は下記のような構成になっている。// パッケージ宣言とインポート宣言 // Entity アノテーションpublic class Contact implements Serializable {// static メンバ変数宣言// インスタンスメンバ変数宣言// getter と setter メソッドの定義// オーバーライドするメソッドの定義(hashCode, equals, toString)}Entity アノテーションはこのクラスを Entity クラスとして指定するために付加されている。Serializable インターフェースの実装は必須という訳ではない。このアプリケーションでも特に必要ではないと思われる。static メンバとして serialVersionUID が定義されているが、static 変数はインスタンス変数ではないのでデータベーステーブルの列としては使われない。(シリアル化や serialVersionUID の意味についてはJava のテキストやドキュメント等を参照のこと)Persistent フィールドEntity クラスのインスタンスメンバ変数で、Persistent フィールドまたは Persistent プロパティとして指定された変数のみがデータベーステーブルの列とマップされる。Persistent フィールドを指定するには、マッピ
0
カバー画像

Jakarta EE 10 の学習 - address book の理解3 Persistence Unit -

この記事では address-book アプリケーションで使用している Jakarta Persistence についての概要と設定内容を理解する。Jakarta Persistence を使ってアプリケーションでリレーショナルデータベースを利用するには下記のような準備が必要となる。・Entity クラスの定義・Entity マネージャインスタンスの作成・Persistence Unit の設定Entity クラスの定義Entity はデータベースのテーブルを Java のクラスとして表現するもので、このクラスのそれぞれのインスタンスメンバ変数がテーブルの各列に対応する。つまり、Entity クラスの1インスタンスはデータベーステーブルの1行のデータと対応する。Jakarta Persistence での Entity クラスの指定は、 基本的にはJava クラスの定義に jakarta.persistence パッケージの Entity アノテーションを付加することで行われる。このアプリケーションでは、Contact クラスが Entity クラスとして指定されている。デフォルトではクラス名がマップ先のテーブル名として使われるので、CONTACT という名前のテーブルが使われることになる。ソースコードレベルの詳細は次回以降の記事で説明する。Entity マネージャインスタンスの作成Entity クラスのインスタンスを作って各フィールドの値を更新しても、それだけではデータベースとの同期は行われない。データベースとの同期を行うためには Entity マネージャインスタンスの必要な
0
カバー画像

Jakarta EE 10 の学習 - address-book の理解2 Faces ページ-

この記事では address-book アプリケーションに含まれるJakarta Faces ページファイル(xhtml ファイル)の内容について理解を進める。index.xhtmlこのファイルは address-book アプリケーションのトップページに対応する。内容としては見出しと List.xhtml へのリンクがあるだけのページとなっている。<h:head> のサブエレメントとして h:outputStylesheet タグが下記のように使われている。    <h:outputStylesheet library="css" name="jsfcrud.css"/>このエレメントはレスポンスHTMLページでは下記のような link エレメントになる。<link rel="stylesheet" href="/address-book/jakarta.faces.resource/jsfcrud.css.xhtml?ln=css">index.xhtml 以外の他のFaces ページでも同じように h:outputStylesheet タグでCSS ファイル(jsfcrud.css)が指定されている。List.xhtml へのリンクは下記の h:link タグで記述されている。    <p><h:link outcome="/contact/List"                      value="Show All Contact Items"/></p> この <h:link>
0
カバー画像

Jakarta EE 10 の学習 - address-book の理解1 -

前回の記事でビルドと実行を試みた address-book アプリケーションのソースファイルの理解を複数回に分けて進めていく。今回はこのプロジェクトのディレクトリ構成とリソースバンドル等について説明する。プロジェクトディレクトリの構成address-book プロジェクトを開いたときのディレクトリ構成は下の画像のようになっている。ディレクトリのルートに pom.xml ファイルがあることから、このプロジェクトが Maven プロジェクトであることが分かる。(pom.xml はプロジェクト管理ツールである Apache Maven で使われるプロジェクトの設定ファイル)この pom.xml ファイルでは下記のように packaging エレメントで war が指定されている。  <packaging>war</packaging>結果としてこのプロジェクトをビルドすると address-book.war という WAR アーカイブファイルが生成される。プロジェクトの各ファイルがWAR ファイルの中でどのように配置されるのかを確認しておく。mavenの下記のページに情報がある。URL:  maven.apache.org/plugins/maven-war-plugin/usage.htmlプロジェクトの各ディレクトリからのWAR ファイルでの配置先は下記の通りに整理できる。src└── main    ├── java/        --> コンパイルされて /WEB-INF/classes/ 以下に配置される    ├── resources/ 
0
カバー画像

Jakarta EE 10 の学習 - Jakarta Persistence でDB接続1 -

Jakarta PersistenceJakarta Persistence API を使うとウェブアプリケーションからリレーショナルデータベースへの接続が可能になる。この記事では Jakarta Persistence の学習のための題材として、Jakarta EE Tutorial に掲載されているサンプルアプリケーションである address-book を取り上げる。address-book アプリケーションこのアプリケーションでは氏名、生年月日、電話番号、メールアドレスの情報をフォームで入力してデータベースに保存することができる。保存されたデータはリスト表示して確認することができる。Jakarta EE Tutorial のページeclipse-ee4j.github.io/jakartaee-tutorial/#running-the-persistence-examples対応する github リポジトリgithub.com/eclipse-ee4j/jakartaee-examples/Netbeans IDE 19 でビルド今回の記事ではJava ソースファイルの詳細な理解は後にして、まずはアプリケーションのビルドと実行を試してみる。上記のリポジトリからローカルにクローンしてある前提で進める。Netbeans IDE を起動し、File > Open Project から jakartaee-examples/tutorial/persistence/address-book を選択してプロジェクトを開く。GlassFish サーバーの起動Service
0
カバー画像

Jakarta EE 10 - ファイルアップロードでDropboxへ保存 -

uploadfile アプリJakarta Faces アプリケーションの例として、フォームからファイルをアップロードしてサーバー側で保存できるシンプルなウェブアプリを作ってみる。具体的な機能は下記の通り。1. ブラウザでアクセスするとフォームから選択したファイルをアップロードできる。 2. アップロードしたファイルは /tmp ディレクトリに保存される。3. 同時にそのファイルがDropbox のストレージにアップロードされる。サーバー側でのファイルの保存は一時ファイルとして行うだけで、ストレージとしては Dropbox を利用する。使用するDropbox アカウントは事前に作成しておく。Java プログラムで Dropbox の API を利用するには、Dropbox の Java SDK を使えば良い。API でのアクセスに必要なアクセストークンも事前に取得しておく。(パーミッション設定でファイルの書き込みができるようにする必要がある)NetBeans IDE で uploadfile プロジェクトをつくる。ディレクトリ構成は下の画像のようになっている。(resources ディレクトリは空になっている。 glassfish-web.xml も特に使用しておらず、中身は空になっている。)target ディレクトリはプロジェクトをビルドすると作られるディレクトリなので、最初は存在しない。pom.xml ファイル<dependencies> エレメントのみ記載する。ここではプロジェクトで必要なライブラリを指定している。uploadfile アプリでは下記の2つを使
0
カバー画像

Jakarta EE 10 の学習 - Jakarta Faces (hello1の理解)-

hello1 のソースファイルこの記事では hello1 プロジェクトのソースファイルの内容を理解する。対象とするのは下記のファイルとする。・webapp/WEB-INF の中の web.xml・webapp の中の index.xhtml と response.xhtml・src/main/java の下にある Hello.javahello1 ディレクトリのルートにある pom.xml は、プロジェクト管理ツールとして使用している Maven で使う設定ファイルなのでここでは説明を省く。web.xmlJakarta Face のアプリケーションは、Jakarta サーブレットの仕様が定めるウェブアプリケーションに対する要求にも従う。そのため、hell1 プロジェクトにもウェブアプリケーションのリソース配置を記述するXML ドキュメントである web.xml ファイルが含まれている。hello1 の web.xml ファイルで使われているエレメントをそれぞれ説明していく。    <context-param>        <param-name>jakarta.faces.PROJECT_STAGE</param-name>        <param-value>Development</param-value>    </context-param>context-param エレメントではアプリケーションの設定に使う各パラメータの値の設定を行う。使用できるパラメータ名はJakarta Faces
0
カバー画像

Jakarta EE 10 の学習 - Jakarta Faces (hello1)-

Jakarta FacesJava でのウェブアプリケーションの作成に Jakarta Faces フレームワークを使うと、ロジックとプレゼンテーションの記述の分離をJSPを使う場合よりもさらに進めることが可能になる。この記事では Jakarta EE 10 に対応する Jakarta Faces のバージョン4.0 を扱う。Faces の古いバージョンでは、JSPをプレゼンテーションの記述に使用することができたが、 Faces 2.0 で非推奨となり、4.0 でサポートが削除されている。フェースレット(Facelets)新しいバージョンのJakarta Faces ではJSPに置き換わるものとして設計された、フェースレット(Facelets) というページ宣言言語の使用を推奨している。フェースレットでは普通 XHTML ファイルをウェブページとして使用する。このページはコンポーネントタグと呼ばれるタグを使って構成される。サンプルアプリケーション(hello1)この記事では、Jakarta Faces の学習の出発点として、公式のチュートリアルページに掲載されている hello1 というアプリケーションを採用し、ビルドとブラウザでの表示を試みる。このチュートリアルは Jakarta EE 9 に対応した内容だが、いくつかの修正点を除けばバージョン10 でもそのまま利用できる。URL:  eclipse-ee4j.github.io/jakartaee-tutorial下記の github のリポジトリにこのチュートリアルのソースファイルが置かれている。URL:  github.
0
カバー画像

Jakarta EE 10 の学習 - NetBeans IDE でプロジェクト管理 -

IDE でプロジェクト管理これまでの記事ではウェブアプリのディレクトリやファイルを手動で作成してきたが、ここでは Apache NetBeans IDE 19 を使ってプロジェクトの作成、ビルド、実行などの操作を行う方法を扱う。具体的にはウェブアプリプロジェクトのプロトタイプとして maven-archetype-webapp を使用する。File メニュー > New Project から進み、カテゴリ: "Java with Maven" の "Project from Archetype" を選択。maven-archetype-webapp を探す。バージョンは 1.4 を使う。プロジェクト名などの情報を適宜入力して Finish ボタンでプロジェクト生成を完了する。ここではプロジェクト名を webapp としている。ソースファイルとしては index.jsp と web.xml ファイルが含まれている。ディレクトリ構造は標準的な maven プロジェクトの構成となっている。WAR アーカイブファイルの生成Run メニュー > Build Project をクリックするか、または画面左のツリー表示でプロジェクト名を右クリック > Build でプロジェクトをビルドできる。(または金づちのアイコンをクリックでも良い)ビルドすると target ディレクトリがつくられ、その中に webapp ディレクトリと webapp.war ファイルが含まれている。アプリケーションサーバーの起動画面左の Services タブの Servers ツリーをクリックで展開
0
カバー画像

Jakarta EE 10 の学習 - JSP 2 (JSPエレメント)-

JSPエレメントJSPページはJSPエレメントと、テンプレートデータから構成される。JSPエレメントにはディレクティブ、スクリプティング、アクションの3種類のタイプがある。1. ディレクティブエレメントディレクティブエレメントはJSPページ全体についての設定を定義するのに使う。標準シンタックスでは下記のような書き方をする。<%@ directive attr="value"  %>使用できるディレクティブには page, taglib, include の3つがある。ディレクティブエレメントについての注意としては、・page ディレクティブは基本的にはファイルの先頭に置く。・<%@ の後と %> の前のスペースは任意。つまり下記のように書いても良い。<%page language="java"%>各ディレクティブの詳細についての説明は今後の記事でそのディレクティブを使用するときに行う予定。2. スクリプティングエレメントスクリプティング要素は宣言、スクリプトレット、表現の3種類に分類される。JSP 2.0以降ではスクリプティング要素の代替として、エクスプレッション ランゲージ(EL)が導入されている。この説明は別の機会に行うとして、ここでは扱わない。宣言<%!  (ここで宣言する) %>Java の変数、メソッドの宣言を行う。宣言すると他のスクリプティング要素で使用できる。例えば、整数変数 i を宣言、初期化するには  <%! int i = 0; %>  とする。スクリプトレット<% (実行するコード) %&g
0
カバー画像

Jakarta EE 10 の学習 - JSP 1 -

Jakarta Server Pages (JSP)Jakarta EE の中には Jakarta Server Pages (JSP) という仕様が含まれている。JSPを利用すると、動的コンテンツを持つウェブページをサーブレットを使うよりも簡単に作成することが可能となる。バージョンとしては、Jakarta EE 10 には JSP 3.1 が対応する。この仕様ではJSPページと呼ばれるテキストドキュメントを使って、リクエストに対するレスポンスの生成方法を記述する。JSPページは簡単にいうと、HTML等の静的データからなるテンプレートに、動的コンテンツを含めるために特殊なタグやJavaコードを埋め込んだもの、と考えると良いかも知れない。JSPページファイルの拡張子は慣習として .jsp を使う。ウェブコンポーネントウェブアプリにはサーブレットや静的ファイルだけではなく、JSPのファイルもコンポーネントとして含めることができる。これらのコンポーネントのことをウェブコンポーネントと呼ぶ(他にも可能なコンポーネントはあるが、ここでは触れない)。この記事では簡単な JSPページを使ったウェブアプリを作成してみる。サーブレットとの関係JSPページは、ウェブアプリケーションの中で使用される前に対応するサーブレットクラス変換される。このクラスをJSPページ実装クラスという。このクラスのインスタンスがリクエストオブジェクトを受け取り、レスポンスオブジェクトを更新する。要するにJSPは内部的な仕組みとしてサーブレットを利用している、ということ。JSPページの文法/規則JSPページを記述する文法に
0
カバー画像

Jakarta EE 10 の学習 - サーブレットアプリ 2 -

前の記事で作成したアプリのソースコードなどの中身を詳しく理解する。ウェブアプリケーションのディレクトリ構成その前に、ウェブアプリのディレクトリ構成についてのルールを確認しておく。ディレクトリのルート(SimpleServlet/ ) がドキュメントルートとなり、基本的にはこの下に置かれたファイルが公開の対象となる。WEB-INF ディレクトリはこの例外であり、公開対象となるのは WEB-INF/lib ディレクトリの中に置かれた JAR ファイルのMETA-INF/resources ディレクトリに含まれるファイルだけである。従って、公開対象でないファイルは全てこの WEB-INF ディレクトリ中に格納することになる。サーブレットやそれ以外のクラスファイル(.class) は WEB-INF/classes ディレクトリに置く。(または WEB-INF/lib 内の JAR ファイルに含める)web.xml ファイルJakarta EE アプリケーションをデプロイする際の設定を定める XMLファイルを"デプロイメント デスクリプタ(Deployment Descriptor)" という。 ウェブアプリケーションの場合は web.xml ファイルを使う。今使用している web.xml の中で使われているエレメントをそれぞれ簡単に確認する。<web-app>: ウェブアプリケーションで使うルートエレメント<servlet>: サーブレットの定義  <servlet-name>: サーブレットの名前  <servlet-class>:
0
カバー画像

Jakarta EE 10 の学習 - サーブレットアプリ1 -

シンプルサーブレットJakarta EE 10 には Jakarta Servlets 6.0 が含まれている。この記事ではこのJakarta Servlet API のクラスを利用した簡単なアプリを作成し、アプリケーションサーバーにデプロイする。といってもどう始めて良いか分からないので、教材となる資料を準備。"Java EE to Jakarta EE 10 Recipes" という本の github リポジトリ:github.com/Apress/javaEE-to-jakartaEE10-recipesにあるコードを参考にする。Web モジュールの作成下記画像のSimpleServlet ディレトリがここで作成する Web モジュールの完成形。これをアプリケーションサーバーであるGlassFish にデプロイすることになる。以下で作成方法について説明していく。ここではIDE もビルドマネージャーも使わず、最低限のツールのみで手動で行う。まずは画像の通りディレクトリツリーを作成しておく。そして中に配置するソースファイルの準備に進む。Java ソースファイルのコンパイルSimpleServlet.java をコンパイルして SimpleServlet.class を生成する。$ javac -cp <GlassFishのインストールパス>/glassfish/modules/jakarta.servlet-api.jar SimpleServlet.javaソースファイルで Servlet API のクラスを使用しているので、-cp オプションでクラスパスにこのA
0
カバー画像

Jakarta EE 10 の学習 - Jakarta EE アプリケーション -

Jakarta EE アプリケーションの構成Jakarta EE アプリケーションのアーカイブファイルはEAR (Enterprise archive) ファイルである。アプリケーションは一つ以上のモジュールからなり、さらに各モジュールは一つ以上のコンポーネントからなる。一つのモジュールはそれぞれのコンポーネントをアーカイブした JAR, WAR, RAR ファイルである。Jakarta EE モジュールの種類:1. Enterprise bean (EJB)モジュール (JAR)2. Web モジュール (WAR)3. アプリケーションクライアント モジュール (JAR)4. リソースアダプタ モジュール (RAR)サーバーへのインストールアプリケーションをアプリケーションサーバーにデプロイする方法には下記の2つの形式がある。・モジュールベース: 各モジュールをそれぞれサーバーにデプロイ・アプリケーションベース: モジュールをひとつのアーカイブ(EAR)にまとめてデプロイ従って、シンプルなウェブアプリケーションの場合はWeb モジュールのWARファイルのみをサーバーにデプロイすれば良い。Web アプリケーションWeb アプリケーションの作成にはWeb モジュールを使う。可能なコンポーネントとしてはJakarta サーブレット、JSP(JakartaServer Pages)などがある。サーブレットはリクエストを処理してレスポンスを返す Java のクラスのこと(Jakarta Servlet API)で、典型的には HTTP のリクエストに対してレスポンスを返すプログラムのた
0
カバー画像

Jakarta EE 10 の学習 - アプリケーションサーバー -

Jakarta EE アプリケーションはアプリケーションサーバーにデプロイされるので、まずは使用するサーバーソフトを決定し、基本的な仕様を理解しておきたい。アプリケーションサーバーの選択とインストールここでは Eclipse GlassFish を使うことにする(バージョンは 7.x 系)。公式サイト: glassfish.org開発リポジトリ: github.com/eclipse-ee4j/glassfishインストールは公式サイトからダウンロードして行うか、またはNetBeans IDE から行うこともできる。Eclipse GlassFish でのアプリケーションデプロイメントの基本GlassFish の管理操作には asadmin を使用する。これは GlassFish のインストールディレクトリの glassfish/bin/ ディレクトリに置かれているユーティリティで、例えばドメインをスタートさせるときは下記のようなコマンドを使用する。asadmin start-domain <ドメイン名>GlassFish ドメイン/インスタンス/仮想サーバGlassFish にはドメインという概念があり(注意: IPアドレスと対応するインターネットドメインのことではない)、これは異なる組織、管理者の間でひとつのGlassFish サーバーを共有することを可能とする管理の単位のようなもの。このGlass Fish ドメインは GlassFish インスタンスのグループからなる。GlassFish インスタンスとは、GlassFish が動作しているホスト上のひとつの
0