Web開発者のメモ

Java, JavaScript, CSS, HTML など、Webアプリの記事を中心に書いています。

Java

Servlet Filter:フィルターで前後処理を追加

Servlet API のフィルターを使うと、特定のURLやサーブレットに対して前後処理を追加することができます。これから、フィルターの処理を追加する方法を書いていきます。 前提 この記事のサンプルを動かすには、以下の記事の資源(コードや環境)が必要になり…

Servlet:ファイルアップロード

Servlet API(バージョン 3.1)のファイルアップロードを使って、サーバー上にファイルを保存する方法を書いていきます。 前提 記事内のコードを実行する場合、サーブレットの動作環境(コンテナ)が必要になります。環境がない場合は、下の記事などを参照し…

Servlet:リクエストの受信

Java のサーブレットで、リクエストを受け付ける方法を書いていきます。 前提 記事内のコードを実行する場合、サーブレットの動作環境(コンテナ)が必要になります。環境がない場合は、下の記事などを参照して頂けると嬉しいです。 Servlet:動作環境構築(…

ServletRequestListener:リクエストの前後処理

ServletRequestListener を使うと、サーブレット(or フィルタ)の処理前後に通知を受けることができます。 前提 記事内のコードを実行するには、サーブレットの動作環境(コンテナ)が必要になります。環境がない場合は、下の記事などを参照して頂けると嬉…

Servlet:リクエストパラメーターの取得

Java のサーブレットで、リクエストパラメータを取得する方法を書いてみます。 前提 記事内のコードを実行する場合、サーブレットの動作環境(コンテナ)が必要になります。環境がない場合は、下の記事などを参照して頂けると嬉しいです。 Servlet:動作環境…

ServletContextListener:起動時の処理追加

ServletContextListener を使って、サーブレットアプリの起動時(初期化時)に処理を追加する方法をまとめてみました。 前提 記事内のコードを実行するには、サーブレットの動作環境(コンテナ)が必要になります。環境がない場合は、下の記事などを参照して…

HttpSessionListener:実行タイミング

セッションタイムアウトの時間が経過したタイミングで、HttpSessionListener のメソッド #sessionDestroyed(HttpSessionEvent) が実行されるか確認してみました。 結果 セッションタイムアウトの時間が経過したタイミングでは実行されない。 タイムアウト後…

Servlet API:資料(仕様書・Javadoc等)

Servlet の調査や勉強で参照する資料のリンクをまとめてみました。 Servlet 3.1 Specification - Final Release Javadoc - Tomcat 8.5.x Servlet 4.0 Specification - JSR369(※要ダウンロード) Javadoc - Tomcat 9 Servlet 3.0 日本語訳仕様書 - 株式会社…

Servlet API 3.1:記事の一覧

Servlet API のバージョン 3.1 に関連する記事をいくつか書いたので、そのリンクをまとめてみました。 資料・環境 仕様書・Javadoc等 動作環境構築(Jetty Maven Plugin) HttpServlet(サーブレット) リクエストの受信 リクエストパラメーターの取得 HTML…

Servlet API:動作環境構築(Jetty Maven Plugin)

Jetty の Maven Plugin を使って、サーブレットを動作させる環境を作ってみます。 手順1. プロジェクトの作成 ディレクトリ階層はこんな感じで作成します。ルートディレクトリは例として ssjp にしています。 ssjp/ - pom.xml - src/ - main/ - java/ - weba…

Jetty:記事の一覧

Jetty に関連する記事をいくつか書いたので、そのリンクをまとめてみました。 1. 組込Jetty(Embedded Jetty) HelloWorldの表示 静的コンテンツを返す Servletを動かす 2. その他 localhostだと遅い

Servlet:URLパターンと静的コンテンツ

Servlet のURLパターンと静的コンテンツのパスが同じ場合、どちらのコンテンツが返ってくるか確認してみました。 1. 結果 Servlet 3.1 の場合、Servlet のコンテンツが返ってきました。URL がかぶった場合、サーブレットの処理が優先されるみたいです。 2. …

Jetty:localhostだと遅い

Windows10 のブラウザから、ローカルの Jetty(localhost:8080)に接続すると時間がかかることがありました。そのときの設定内容などをまとめていこうと思います。 ※ このとき使っていた Jetty のバージョンは 9.4.6.v20170531 です。 設定内容 Jetty の Ser…

Servlet:JSONを返す

Java のサーブレットで、JSON を返す方法を書いてみます。JSON 文字列の生成には Gson を使いました。 前提 記事内のコードを実行する場合、サーブレットの動作環境(コンテナ)が必要になります。環境がない場合は、下の記事などを参照して頂けると嬉しいで…

Servlet:HTMLを返す

Java のサーブレットで、HTML を返す方法を書いてみます。 前提 記事内のコードを実行する場合、サーブレットの動作環境(コンテナ)が必要になります。環境がない場合は、下の記事などを参照して頂けると嬉しいです。 Servlet:動作環境構築(Jetty Maven P…

組込Jetty:Servletを動かす

組み込み Jetty(9.4.6)を使って、Java のサーブレット(spec 3.1)を動作させる環境をつくってみました。 手順1. プロジェクトの作成 プロジェクトのルートディレクトリ ssej の下に、以下の pom.xml を作成します。 ssej/pom.xml

組込Jetty:静的コンテンツを返す

Embedded Jetty(組み込み Jetty)で、Http リクエストに対して静的コンテンツを返す例を書いていきます。 手順1. pom.xml の作成 jetty-server を使う Maven プロジェクトとして作成します。

組込Jetty:HelloWorldの表示

Embedded Jetty(組み込み Jetty)で、Http リクエストに対して Hello World を返す例を書いていきます。 手順1. Jar のダウンロード jetty-all.jar を、こちら からダウンロードします。 自分がダウンロードしたときは jetty-all-9.4.6.v20170531-uber.jar …

JDK8:Ubuntu14にインストール

Oracle の JDK8 を、Ubuntu 14.04 LTS(Trusty Tahr)にインストールする手順を書いていきます。動作確認は、Vagrant Box の ubuntu/trusty64 で行っています。 手順1. インストール apt-get コマンドでインストールします。 $ sudo add-apt-repository ppa:…

JDK8:CentOSにインストール

JDK8(Oracle の 8u77) を、CentOS にインストールする手順を書いていきます。 前提 今回の手順は、JDK がインストールされていない CentOS を使って書きました。既に OpenJDK などがインストールされている場合、事前にアンインストールしたほうが良いかも…

JDK8:Win10の環境変数設定

環境変数 JAVA_HOME と Path を、Windows10 で設定する方法を書いていきます。 前提 Windows10 に JDK8 をインストールしていることが前提となります。インストール方法は、以下の記事を参照して頂けると嬉しいです。 JDK8:Win10にインストール 手順1. 環境…

JDK8:Win7の環境変数設定

環境変数 JAVA_HOMEと Path を、Windows7 で設定する手順を書いています。Windows に JDK をインストールしたら、この変数を設定することが多いです。JDKのインストール記事は こちら にあります。 手順1. 環境変数の表示 最初に環境変数(のウィンドウ)を…

JDK8:Win7にインストール

JDK8(バージョン 8u71)を、Windows7 64bit にインストールする手順を書いています。 手順1. インストーラのダウンロード Oracle の JDK ダウンロードページ を開きます。 ボタン DOWNLOAD をクリックして、次のページに遷移します。 遷移したら、ラジオボ…

JDK8:Win10にインストール

JDK8(8u131)を Windows10 64bit にインストールする手順を書いていきます。 手順1. インストーラのダウンロード Oracle の ダウンロードページ で、以下のダウンロードアイコンをクリックします。 次のページに遷移したら、ラジオボタン Accept License Ag…

Java:左トリム(前方トリム)

Java の文字列(String)で、左(前方)の空白を削除したいことがありました。これからそのコード例を書いてみます。 コード例 public static String ltrim(String s) { int len=s.length(), i=0; char[] c = s.toCharArray(); while ((i < len) && (c[i] <=…

Struts2の脆弱性調査(参考文献など)

ちょっと前に、Struts 2 の脆弱性がニュースになったりしてました。その際、色んなニュース・記事・ブログなどを見させて頂きました。今回は、その中でも特に参考になったリンクなどをまとめてみました。 概要や事象など Apache Struts 2における脆弱性 (S2-…

Java:ラムダの中の例外

Java のラムダの中で、Exception をスローするとコンパイルエラーになることがありました。そこで、うまくラムダ内でも検査例外をスローできないか調べてみました。 エラーになるコード例 次のようなコードだと、main メソッドで throws 宣言していますが、…

Java:どのテンプレートエンジンを使うか?

Web アプリ開発(サーバサイド Java)で、どのテンプレートエンジンを使うか考えてみました。あくまで私個人の考えなので、広い心で見て頂けると嬉しいです。 現時点(2017.03.30) 今は、jmustache (Mustache の Java実装)を使いたいと思っています。 理…

Java:コンパクト・プロファイル

Java8 で導入されたコンパクト・プロファイルについて、調べたことを書いていこうと思います。 コンパクト・プロファイルとは? Java SE の API のサブセット(グループみたいなもの)で、compact1, compact2, compact3 の3つがあります。compact1 が一番小…

JavaFX:SceneBuilderのインストール

JavaFX の GUI 周りを開発するために、SceneBuilder をインストールしてみました。これからその手順を書いてみようと思います。 補足. インストーラについて SceneBuilder のインストーラは、GLUON が配布しているものを使いました。詳細は、記事「JavaFX:S…