Web系開発メモ

Java, JavaScript, CSS, HTML などの記事を書いています。

Java

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:記事の一覧

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

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…

JavaFX:SceneBuilderの入手方法

Java SE 8u40 から、オラクルは JavaFX の SceneBuilder(バイナリ)の配布をやめてしまったようです。 Starting with Oracle Java SE 8u40, Oracle does not provide a separate set of accompanying JavaFX Scene Builder binaries. from: JavaFX Scene Bu…

Java:ラムダは遅い?

Java 8 のラムダを使ってみたら、数十ミリ秒単位で処理が遅くなることがありました。そこで、ちょっとパフォーマンスを計測してみることにしました。 環境 CPU: Intel Core i5-2430M 2.40GHz メモリ: 8GB OS: Win 7 Java: SE 1.8.0_71 計測プログラム ラムダ…

Java:JVMの稼働時間を取得

java.lang.ManagementFactory を使って、JVM の稼働時間(起動後の経過時間)を取得する方法を書いてみます。 Javaコード long uptime = ManagementFactory.getRuntimeMXBean().getUptime(); 補足 uptime は、日本語だと「連続稼働時間」とか「起動時間」と…

Java:Google Http Client で HTTP通信

Google の Http Client を使って、Java で HTTP通信をする方法を書いていこうと思います。 HTTP接続ライブラリの選択 Google Http Client では、HTTP接続ライブラリを次の3種類から選択できるようです。 NetHttpTransport(JDK の HttpURLConnection がベー…

Guava:ファイルを再帰的に取得する

Java を使ってディレクトリ内のファイルを再帰的に取得したいことがありました。そのとき Google Guava を使ったら、簡単に取得することができました。 今回はそのときのメモを書いていこうと思います。 1. Guava のインストール Maven や Gradle の依存性追…

Java:MP3のタグを編集

MP3ファイルのタグ情報には、タイトル・アーティスト・アルバム・ジャンル・・・、などがあります。このタグ情報を一括で編集したくて、Javaでやってみることにしました。今回は、そのときのメモを書いていきます。 ID3タグについて MP3のタグ情報は、ID3タ…

Java:Lombok の @Data でコード量削減

Lombok は Java のライブラリで、getter/setter やコンストラクタなどのコードを自動的に生成してくれます。今回は、Lombok のアノテーション @Data を使って、コード量を削減する方法を書いてみます。 手順1. ビルドシステムの設定 Lombok への依存性を追加…

Java:ログ出力(SLF4J, Logback)

最近は、Java のログ出力に SLF4J と Logback を使うことが多いようです。そこで、SLF4J と Logback の概要・利用手順をまとめてみました。 概要 SLF4J:ログファサードライブラリ Logback:ログ出力ライブラリ SLF4J が Commons Logging、Logback が Log4j …

Javaテスト:目次

Java のテスト関連記事を目次としてまとめました。上から順に読んで頂けると分りやすいと思います。 目次 JUnitで単体テスト AssertJでアサーション mockitoでモック作成 FluentLeniumで画面テスト 補足 各記事のサンプルコードは、Gradle を使ってビルドし…

Javaテスト:FluentLeniumで画面テスト

FluentLenium を使って、画面テスト(ブラウザテスト)を自動化する手順を書いていきます。FluentLenium は、Java で Selenium のテストを簡単に書くためのツールです。 手順1. テストクラスの作成 JUnit のテストケースとして、Bing(検索エンジン)で Flue…

Javaテスト:mockitoでモック作成

Java の単体テストで、mockito を使う方法を書いていきます。mockito は、Java の単体テスト用モックフレームワークです。 モックは「モックオブジェクト(Wikipedia)」の略で、テストで用いられるスタブ(下位モジュールの代用品)の一種です。 手順1. モ…

Javaテスト:AssertJでアサーション

Java の単体テストで、AssertJ を使う方法を書いていきます。AssertJ は、テスト結果を評価するためのツールです。 手順1. テストクラスの作成 JUnit を使ってテストケースを作成します。検証の箇所で、AssertJ を使っています。 gsjt/src/test/java/gsjt/As…

Javaテスト:JUnitで単体テスト

JUnit で Java の単体テストをする方法を書いていきます。JUnit は、単体テストを実行するためのフレームワークです。 手順1. テストクラスの作成 JUnit を使って、単体テストをプログラムとして書いていきます。プログラムなので、繰り返し自動でテストする…

JDK:記事の一覧

JDK の記事(リンク)を、一覧形式でまとめています。JDK の概要、インストール手順、環境変数の設定手順、使用例、などの記事があります。 JDK8:インストール関連 Win10にインストール Win10の環境変数設定 Win7にインストール Win7の環境変数設定 Ubuntu1…

JDK:JAVA_HOME・Pathの設定理由

JDK をインストールしたら、JAVA_HOME と Path といった環境変数を設定することが多いです。今回は、なぜ JAVA_HOME と Path を設定するか書いていこうと思います。 理由1. 他のプロダクトが参照するから Java の開発では、Eclipse (統合開発環境)や、Grad…

JDK:変数・環境変数の解説

JDK をインストールしたら、JAVA_HOME や Path といった環境変数を設定することが多いです。この記事では、そもそも環境変数とはどんなものかを書いていこうと思います。 1. 変数は「名前と値」のペア 変数は「名前」が付いた箱のようなもので、その中には「…

JDK:概要

JDK の概要や、JDK を使う前に知っておきたいことを書いています。 1. JDK は 開発ツール JDK は Java Development Kit の略で、直訳すると「Java の開発道具(ツール)」です。JDK には、以下のツールが含まれています。 コンパイラ:Java のプログラムをコ…

JDK:コンパイルと実行

JDK でプログラムをコンパイルして実行してみます。まずは、対象となるプログラムを準備します。 手順1. プログラムの作成 次のコードを、HelloWorld.java というファイル名で保存します。 public class HelloWorld { public static void main(String[] args…

FluentLenium:Firefox 64bit でエラー

Firefox 64bit がインストールされた環境で、FluentLenium のテストがエラー(Selenium 関連のエラー)で終了しました。今回はその内容と対応方法を書きます。 環境・バージョン Windows 7 Firefox 64bit 43.0.2 FluentLenium 0.10.6 Selenium 2.48.2 JDK 8 …