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

すべてのカテゴリ

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
カバー画像

Jakarta EE 10 の学習 - はじめに -

Jakarta EE とはEE は Enterprise Edition のこと。 Java で "エンタープライズアプリケーション" を作成するための仕様を定めているのが Jakarta EE というもの。(公式サイト: jakarta.ee) Jakarta EE の APIを利用するとJavaを使ってアプリケーションサーバーの下で動作するサーバーサイドアプリケーション、クラウド上で動作するクラウドネイティブアプリケーションをつくることができる。名称変更の歴史Java の エンタープライズエディションの名称は J2EE --> Java EE --> Jakarta EE という変遷を経ている。 (参考: www.baeldung.com/java-enterprise-evolution)開発環境JDK: Java の開発環境としては支障がない限り JDK 17 (OpenJDK) を使用プロジェクト管理/ビルドツール: Apache Maven (バージョン3.9.4など) IDE: Apache NetBeans IDE 19前提となるJava の基本やMaven については既知のものとして特に解説なしで進める。尚、OS は Linux を使用している。コメント: 記事内の情報は著者が個人的に調べた範囲で理解しているものです。必要に応じて訂正する場合があります。著者・投稿者: ENARTS05編集履歴:2023/9/26 作成2023/9/27 一部訂正
0
カバー画像

こんなプログラマはいつまでも"初心者"①

煽り強めのタイトルを覗いてくださり、まことにありがとうございます。本職でも副業でも様々な方のプログラムを拝見しますが、中でも"初心者"様のプログラムは質が異なります。この「こんなプログラマはいつまでも"初心者"」シリーズの記事では私がどんなプログラムを"初心者"様作であると判断するのかを紹介いたします。あくまで一個人意見に過ぎませんが、ご自身のプログラムと照らし合わせ、改善の一助となれれば幸いでございます。命名が適切でない命名はプログラミングにおける最重要要素の一つです。変数、関数、クラス等プログラム内に留まらず、DBのテーブル名、カラム名、ファイル名、プロジェクト名までもが重要です。ほとんどのプログラミング言語で、これら名前は何であろうとプログラムは動作します。a.pyという名前のファイルにBというクラスが定義されていて、Bクラスはcというメンバ変数とdというメンバメソッドを持つ、という構成でももちろん問題なく動作します。このようなプログラムを書いた"初心者"様は満足げにエディタを閉じることでしょう。多くの"役に立つ"プログラムにおいて、1度書いて終わりということはございません。時間が経てばプログラムを使う場面の事情が変わり、修正が必要になるかもしれません。業務なら、プログラムが誰かの手に渡ることもあるでしょう。そうなった時、未来の"初心者"様や"初心者"様からプログラムを受け取った方は、プログラムを見るや否やきっとこう言うでしょう。「なんだこのくそみたいなコードは」プログラムが動作するかどうかはもちろん大切なことですが、プログラムが読みやすいかどうかはそれ以上に重要です。な
0
カバー画像

こんな質問に…「java v11.0.2 がパッケージかソースか知りたいです。」

いろんな質問の依頼事項がありますが、依頼者さんが結局何を求めているのか把握しきれないことが多々あります。「java v11.0.2 がパッケージ(Amazon LINUXなど)かソースか知りたいです。 上記のパッケージとソースという意味も分かっていないので 丁寧に教えていただける方、ご提案お願い致します。」 …という質問がありました。私の回答例は以下のような感じです。有識者の方、それは違うんじゃない?ってつっこみどころがあったら教えてください。↓ 回答は 『どちらでもない』 となると思います。 上記ご質問で ①java ②java v11.0.2 ③Amazon ④LINUX ⑤パッケージ ⑥ソース という単語がでてきています。 これらをご説明させていただきます。 ①java 正式には「Java」と、先頭大文字のようです。 これは、プログラミング言語とプラットフォームを指しています。 ・プログラミング言語について。 C#,Phythonなどと並ぶものです。 プログラムが書いている英語みたいなコンピュータへの指令文です。 ・プラットフォームについて かつては、いろいろな会社が独自の規格でパソコンをつくっていて、規格ごとにことなるプログラムを書かなくてはなりませんでした。 今でもwindows、mac、Android端末などいろいろな規格があります。同じことをするプログラムを作るにも、それぞれの規格にあう言語を覚え、それぞれにプログラムを書くと大変です。 そこで、まずそれぞれの規格用のJavaプラットフォームが提供され、プログラムは規格の違い(WindowsやMac、アンドロイ
0
カバー画像

CUIのゲーム作りを振り返る

作ってみた感想は、「ゲームが単調」です。演出が無いので変化に乏しく、ゲームというよりは作業している感じがしますね。Javaプログラミング入門の題材として考えたものなので、そう感じるのは当然だと思います。また、ゲーム起動時にランキングを毎回表示していますが、プレイヤー名が表示されず、Goldも全て0だから表示する意味はあるのか?と思われる方もいらっしゃるかもしれません。確かに現状では意味がありません。ですが、このゲームは改良できる余地がたくさんあるのです! 私が思いついた改良点は、①ランキングをDBに保存すれば、ゲーム起動時にこれまでのTop 5の記録が 表示できるようになる。ネットワーク通信しないのであれば、ファイルに ランキングを保存でも良いかもしれない。②予想を入力後、2個目の乱数が表示されるまでに一定時間待たされる(数秒) ように演出すれば、試合をしている雰囲気になりそう。効果音もあると なお良いと思う。③勝った時、負けた時の演出について。勝った時はGoldが増えるのを画像で 演出したり、Goldがじゃらじゃらするのを効果音で表現する。 負けた時もGoldが減る画像や、効果音などで表現する。④せっかく1〜13で乱数を生成しているので、これをトランプに置き換えて 対戦相手(コンピュータ)をディーラーにしたら、より試合っぽくなりそう。 トランプやディーラーの画像を追加して、勝ち負けでディーラーの顔が 変化したら、リアリティが増して良い。これらが浮かびました。CUIは文字だけになってしまうので、どうしても演出に限界があります。もしグラフィカルな演出をしたい場合は、GUIで作る開
0
カバー画像

CUIのゲーム作りに挑戦(Java), 製造

1.プログラミング前回の内部設計を基に、プログラミングします。・ModelBS.java・ViewBS.java・ControllerBS.javaの3ファイルを作ってみたので、下記に貼り付けます。文字色が黒のみなので見にくいと思いますが、ご了承ください。----------------------- ModelBS.java ------------------------------import java.util.*;public class ModelBS { //----------- // メンバ変数 private long lGold = 10; // 所持Gold private int iPlayTimes = 0; // 挑戦回数 private int iWinningStreak = 0; // 連勝 private long[] lOdds =  {0,2,4,8,16,32,64,128}; // 賭け率(倍率) private ArrayList<String[]> arrayTop5; // ランキング //--------------- // コンストラクタ public ModelBS() {  // ランキングを初期化  ArrayList<String[]> ranking = new ArrayList();  for(int i=0; i<5; i++) {   String[] strPlayerInfo = {"","0"}; // [0]:プレイヤー名、[1]:
0
カバー画像

CUIのゲーム作りに挑戦(Java), 内部設計

前回、外部設計を行いましたので、それを基に内部設計をしていきます。内部設計は、システム内部の処理やデータ入出力の動きが分かるように設計する工程です。システムを複数人で開発する場合、チーム内で設計者とプログラマーが別々であったり、プログラミング工程を外注するケースもあります。そのため、他の人がこの内部設計を見てプログラムを作れるものでなければなりません。今回は全工程を1人でできる内容ですので、簡易的に設計します。内部設計における成果物には、クラス図やシーケンス図などがありますので、一例としてそれらの作り方を見ていきましょう。1.クラス図JavaやC++など、オブジェクト指向のプログラミング言語で開発する場合、クラス図を作成するとクラス間の関係性や、どんなデータや処理を持っているのかが分かりやすくなります。例えば、先日紹介しました「三角形と正方形の面積を計算」するJavaのプログラムでは、クラス図は下記のようになります。三角形と正方形のクラスがそれぞれ面積を計算する操作(=処理)を持ち、図形クラスを継承しているのが分かります。(上図では、getterやsetterの処理は省略し、プログラム起動によって処理開始するMainクラスも省略しています)また、ここではクラス図の書き方についての詳細は省略します。UML(Unified Modeling Language)やクラス図で調べてみてください。それでは、今回のBig or Smallゲームを設計してみましょう。これは人によって作り方が異なりますので、正解は1つではありません。もし私が設計するなら、クラスはこう作るだろうという一例を載せ
0
カバー画像

CUIのゲーム作りに挑戦(Java), 要件定義 と 外部設計

1.趣旨祝・成人の日。ご成人おめでとうございます。みなさんがこれから活躍できるよう応援し、ご多幸を願っています。さて、今日からゲーム作りに挑戦してみます。プログラミング上達のコツは、理屈から入らず、自分で作ってみることです。作ったプログラムを動かしてみて、思った通りに動かなかったら原因を調べて・・・の繰り返しでスキルは磨かれていきます。本を読むだけでは、プログラミング言語を「使いこなす」ことはできませんので、今回のような挑戦がみなさんのプログラミングのきっかけになっていただけると嬉しいです。まずはどんなゲームを作るか決めます。ソフトウェアの機能や仕様をまとめたものを要件定義といい、ゲームに限らず情報システムやソフトウェアの開発で最初に行う作業です。これまでに紹介したJavaの開発技法であれば、CUIのゲームを作れると思ったので、下記に要件をまとめました。また、今回は日本の利用者向けのゲームを作りますので、日本語のみでブログを書いていきます。2.要件定義① 1 〜 13の中でランダムな数字が表示される。その数字を除いた1 〜 13の中で、次に出てくる数字がそれよりも大きいか小さいかを予想するゲーム。大きいと予想する場合は「b」を入力し、小さいと予想する場合は「s」を入力。他の文字を入力した場合は、メッセージで警告された後に再入力する。② 10 Goldを所持した状態でゲームスタート。0 Goldからbetできる。betするGoldが所持Goldよりも多い場合は、メッセージで警告された後に再入力する。0未満や数字以外を入力された場合も、警告された後に再入力する。③ 予想が当たれば、
0
カバー画像

Programming with Java, part 10

1.About logI think that the purpose of outputting the log is as follows.・To confirm whether the process was performed when testing the program.・To log a message when an error occurs and use it for investigation.・To record the processing date and time and access status to check for hacking."Log4j" is a representative Java log output, and it isone of the Java logging frameworks. But I think theLogger class in the java.util.logging package is moresuitable for beginners. So let's take a look at theLogger class this time.2.java.util.logging.LoggerThe following program explains how to output logsusing the Logger class.-------------------------- LogTest.java -------------------------------------imp
0
カバー画像

Programming with Java, part 9

1.About FileWriter classThis time I will talk about file output. There is a class calledFileWriter in the java.io package, so let's first see how touse this class.----------------------- WriteTest.java -------------------------------------import java.io.*;public class WriteTest {    public static void main(String[] args) throws Exception {        FileWriter fw = null;        try {            File file = new File("c:¥¥test¥¥test.txt");            fw = new FileWriter(file);            fw.write("Hello world");        } catch(FileNotFoundException e) {            System.out.println(e);        } catch (IOException e) {            System.out.println(e);        } finally {             // Close the
0
カバー画像

Programming with Java, part 8

1.About BufferedReader classThis is a continuation of the previous file input. TheFileReader class is inefficient because it reads charactersfrom the file one by one. The java.io package provides aBufferedReader class that reads line by line from a file,so let's see how to use this class with the following program.----------------------- ReadTest2.java -------------------------------------import java.io.*;public class ReadTest2 {    public static void main(String[] args) throws Exception {        BufferedReader br = null;        try {            File file = new File("c:¥¥test¥¥sample.txt");            FileReader fr = new FileReader(file);            br = new BufferedReader(fr);            St
0
カバー画像

Programming with Java, part 7

About file inputSince it is common to manage data with a DB, it is themainstream to acquire or register data in a DB using SQL.It will be introduced in another time.In addition, there are also scenes where you perform fileoperations from Java, such as receiving a file (CSV file, etc.)from the outside and importing it into the DB, or outputtingthe contents of the DB to a file and providing it to the outside.This time, I will talk about the file input.There are the following two types of file input / output in Java.・Byte stream・Character stream8 bits = 1 byte, and the byte stream inputs / outputs filesbyte by byte. The character stream inputs / outputs filescharacter by character. This time,
0
カバー画像

Programming with Java, part 6

1.Classes for character stringThere are many situations where you handle characters.Classes are provided in Java that are useful in suchcases, so I will introduce some of them.(1)StringThe first is the String class in the java.lang package.When you use the class of java.lang package, it is notnecessary to write "import java.lang.*;". This is becauseit is implicitly imported at compile.Also, String can create an object without new.    String strTmp = "test";If you enclose the string in double quotes like this,it will be treated as an object.Next, I will introduce the methods that I often use in String.①equalsCompares strings to each other and returns true if they match,false if they don't. Fo
0
カバー画像

Programming with Java, part 5

1.About Map of collection classFollowing List, this time I will introduce Map from the utility "java.util". You store a combination of key and value in Mapas one data. You use the key if you want to retrieve thevalue from the Map.Map also has several classes, so I will explain about"HashMap", "TreeMap", and "LinkedHashMap" in this time.(1)HashMapThis is a standard Map. You cannot register the duplicatekeys. Also, the elements (key and value sets) are notarranged in the order in which they were registered.To use it, specify the type as shown below when you new.For example,  HashMap<String,String> map = new HashMap<String,String>();or  HashMap<Integer,String> map = new HashMa
0
カバー画像

Programming with Java, part 4

1.About List of collection classI will talk about frequently used collection classes from theutility "java.util" provided by Java. This time about List.In the List, the elements are arranged in order.If you want to use an array, you need to specify the numberof elements in advance, but in the case of List, you can useList without specifying it.There are two types of List, "ArrayList" and "LinkedList".The program below uses ArrayList.------------------------- ListTest.java -----------------------------------------import java.util.*; public class ListTest {  public static void main(String args[]) throws Exception{   ArrayList<String> list = new ArrayList<String>();   // Measureme
0
カバー画像

Programming with Java, part 3

About inheritanceTriangle is a kind of figure, so I created a parent classof Triangle class. That is the Figure class below.------------------------ Figure.java ----------------------------public class Figure {  // Member variables  private int iArea;  // getter  public int getArea() {   return this.iArea;  }  // setter  public void setArea(int area) {   this.iArea = area;  } } ------------------------------------------------------------------------------------------- Triangle.java ----------------------------public class Triangle extends Figure{  // Member variables  private int iBottom;  private int iHeight;  // Constructor  public Triangle(int bottom, int height) {   this.iBottom = bott
0
カバー画像

Programming with Java, part 2

1.About stdinTriangle.java I created yesterday could only calculatethe area of a triangle with a base of 6 and a height of 4.Let's improve it so that we can calculate the arearegardless of the value of the base and height.The improved program is as follows.----------------------------- Triangle.java ------------------------------import java.util.Scanner;public class Triangle {    public static void main(String[] args) throws Exception {        System.out.println("How long is the bottom?");        Scanner sc = new Scanner(System.in);        int iBottom = sc.nextInt();           // Input the bottom.        System.out.println("How long is the height?");        int iHeight = sc.nextInt();       
0
カバー画像

Programming with Java, part 1

A happy new year! I look forward to working with youagain this year. I hope I can do the following things this year.■Plans・Programming with Java・I will try to make a Big or Small game with Java.・Measures for the Fundamental Information Technology Engineer Examination (around March)In summary, I will introduce programming with Javalittle by little from today. First, take a look at thesample program.----------------------------- Sample.java ----------------------------------------public class Sample {    public static void main(String[] args) throws Exception {        int x = 6;        int y = 4;        int z = x * y / 2;        System.out.println(z);    }}-------------------------------------
0
カバー画像

ココナラでの出品を開始いたしました

これまで個人でサービス提供をしておりましたが今後はココナラでもサービス提供をしたいと思い出品を開始いたしました。Discordボットの作成から出品を始めますがMinecraftのPlugin作成なども出品予定です。
0
カバー画像

Java Silver ゲットー!!

先日、テストに合格したのでJava Silverの資格を手にすることができました!!Java Goldに向けて勉強に励みます。基本情報の合格発表も、もう少しです...。合格点は超えていたので大丈夫だとは思いますが油断できませんね。
0
カバー画像

徹底解説 Javaプログラミング WEBアプリケーション解説 #1 プロジェクトの作成と実行

0
カバー画像

スマートフォンアプリ開発

0 500円
カバー画像

作成例1_ファイル名一括変更+連番付け

ポートフォリオでサンプルプログラムを公開しようと思っていましたが、画像かYoutubeしか投稿できないことに完成後に気づきました。ならブログでサンプルコードを公開しようとしましたが、禁止ワードとやらに接触してしまうため、それもできず。仕方ないので紹介だけになります。行数:171名前を変更したいファイルをドラッグ&ドロップで一覧に加え、入力した「新規ファイル名」に連番を付けたファイル名に一括で変更します。Windowsではエクスプローラでファイル名を一括で変更できますが、連番の桁数がまちまちになってしまいます。このプログラムでは連番の桁数を揃えた形で、ファイル名を変更できます。
0
カバー画像

最速でWEBアプリケーションを作る (Java)

0
カバー画像

【数学0点でも】JavaSilver勉強法【1発合格】

初めまして!この記事を見て頂きありがとうございます!私は現在、javaプログラマーとして働いています。タイトルにもある通り、僕は中学時代に数学0点を何度も取り、評価はいつも1だったくらい数学が苦手でした(笑)エンジニアは理系向きだと言われがちですが、そんな事はありません。もちろん論理的思考は凄く重要ですが、働いていく中で身に付いてきます。勉強期間は1ヶ月で取れましたので、その方法について書きます。JavaSilverの試験が不安な方も、この記事を見て少しでもお役に立てればと思います。ではいきましょう!
0 500円
カバー画像

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

みなさん、如何お過ごしでしょうか。。?このコロナで大変でしょうが、何とか頑張りましょう!!今日から不定期でブログ書いていきたい思います。。。。内容はまだ何も決めていませんが。。。。プログラムに関すること、生活の事、その他色々。。。。宜しくお願いします。
0
58 件中 1 - 58
有料ブログの投稿方法はこちら