タグ

javaに関するmumumu-tanのブックマーク (35)

  • [Java] 直列化を利用したディープコピーとその注意点 : 小野和俊のブログ

    Java でディープコピー(DeepCopy)を行うには clone() メソッドをオーバーライドしてディープコピーの動作を自分で記述しけばよいが、他にも直列化(シリアライズ)の機構を利用してディープコピーを行う方法もある。 import java.util.Date; public class File { private String name; private String description; private Date createdDate; private Date updatedDate; private Date lastAccessedDate; ... } このクラスを通常の方法でディープコピーに対応させる場合、次のようになる。 import java.util.Date; public class File implements Cloneable { priva

    [Java] 直列化を利用したディープコピーとその注意点 : 小野和俊のブログ
  • Java8で強化されたMapと、書きやすくなったメモ化再帰 - きしだのHatena

    Java8のlambda構文の話を書くと、旧来の書き方でいいというコメントがつくのですが、それでも便利になったMapの恩恵を受けることは多いんじゃないかと思います。 ※ 2018/5/31 Java9からはメモ化再帰には使えなくなっています ※ 2019/2/15 なんか問題ない? Mapには、lambda式を使ったメソッドが多く追加されていますが、たとえばgetOrDefaultメソッドのようなlambda式を使わないメソッドも追加されていて、これも便利です。 そして、このようなlambda式を使わないメソッドも、間接的にはlambda構文サポートでの言語拡張のおかげです。 Mapはインタフェースなので、Java7までの構文でメソッドを追加しようとすると、Mapを実装しているすべてのクラスに新しいメソッドの実装を追加する必要がありました。そしてそれは現実的に不可能なので、今までMapなど

    Java8で強化されたMapと、書きやすくなったメモ化再帰 - きしだのHatena
  • Tomcatの「useBodyEncodingForURI」と「URIEncoding」の違い - ore*flow

    Tomcatでは、送信されてくるリクエストパラメタのエンコードを指定する属性が2つあって、何が違うのか良く分からなかったので、調べてみました。結論から言えば、useBodyEncodingForURItrue/falseを指定。setCharacterEncoding()をした場合に、指定した文字コードでGETのリクエストパラメタをエンコードするか否かを指定。Tomcat5からGETパラメタに対するエンコード処理が変わったので、下位互換を保つための属性のようです。URIEncodingエンコードを指定。GET時のリクエストパラメタのURIエンコードを指定できる。一律指定したURIエンコードになる。実際に指定してみます。Tomcat6.0.10を使用HTMLフォームを用意HTMLの文字コードは「Shift-JIS(Windows-31J)」フォームのmethodは「GET」「あ」をフォームに

  • エンタープライズ:特集:第2回 実用サンプルコードで理解する「Struts」の基礎 (6/15)

    特集:第2回 実用サンプルコードで理解する「Struts」の基礎 (6/15) DBCPを使ったデータベースへの書き込み データベースへの書き込み処理には、「オープンソースで作るJava+DB」で説明したのと同じ方法でもよいだろう。 しかしここでは、より効率的な方法として、Jakarta Projectの「Commons DBCP」を利用した方法を挙げてみよう。このCommons DBCPは、データベースへのコネクションプーリングをサポートした汎用的なものであり、データベースアクセスのためのコンポーネントだ。 コネクションプーリングとは、データベースへの接続を幾つか持続しておき、使い回すことを意味する。一般的に、データベースアプリケーションでは、ユーザーがWebページにアクセスして何か処理をするたびに、「データベースに接続」→「データベース処理」→「データベースから切断」という流れになるが

    mumumu-tan
    mumumu-tan 2012/02/16
    akarta Projectの「Commons DBCP」を利用した方法を挙げてみよう。このCommons DBCPは、データベースへのコネクションプーリングをサポートした汎用的なものであり、データベースアクセスのためのコンポーネントだ。  コネクショ
  • 配列とコレクション間の相互変換を行う

    複数要素で構成されるデータをJavaで扱う場合は、配列またはCollectionインターフェイスを持つクラスを使用するのが一般的です。Collectionインターフェイスを持つクラスには、java.util.ArrayListやjava.util.HashSetなどがあります。 配列は要素数が固定となりますが、使用メモリが少ないという特徴があります。他方、Collectionインターフェイスを持つクラスは配列よりも使用メモリが多くなりますが、要素を自由に追加・削除できるという特徴があります。プログラムを記述する際は、それぞれの特徴を考えてどちらを使用するか決定することができます。 しかし、ライブラリのメソッドに複数要素のデータを渡す場合、渡すべきデータを保持している型と、ライブラリのメソッドの引数の型が異なるため、型変換が必要になることがあります。稿ではそうした場合に対応できるよう、配列

    配列とコレクション間の相互変換を行う
    mumumu-tan
    mumumu-tan 2011/11/30
    toArray(Object[])メソッド
  • URL の jsessionid を非表示に (技術メモ): おとなの日常

    にほんブログ村 名前:色人 年齢:0x22 誕生日:9 性別:男 職業:元JOCV (青年海外協力隊) 元期間限定SE。コンピュータ/物理/数学/AKB (09/18) サイバー脅威組織(APTグループ) (09/14)2018年上半期のサイバー攻撃のトレンド (09/13)情報処理推進機構(IPA)の資格試験のおすすめ (01/04)植物たち (01/03)初詣 (01/02)【AKBファンが知るべき47のこと】  その45: 会いに行ける (01/01)🐶 2018年 🐕 新年 🐶 (12/31)2017年のおわり (09/13)東北巡礼 (08/14)道路で出会うとちょっとびっくりする生物 (07/12)BONSAI (07/10)夏のオクトーバーフェスト (07/09)沖縄の景色 (05/26)沖縄最終日、もっといたい (05/23)宮古島ダイビング 【クラウド技術】 シング

    mumumu-tan
    mumumu-tan 2011/11/10
    URLRewriteFilter を用いる
  • How to run javac 1.5 (or beyond) compiler for JSP compilation in Tomcat 5.5 with generics enabled (and other Java 1.5 only features like autoboxing)

  • JFreeChart

    Welcome To JFreeChart! JFreeChart is a free 100% Java chart library that makes it easy for developers to display professional quality charts in their applications. JFreeChart's extensive feature set includes: a consistent and well-documented API, supporting a wide range of chart types; a flexible design that is easy to extend, and targets both server-side and client-side applications; support for

    mumumu-tan
    mumumu-tan 2011/09/15
    JFreeChart is a free 100% Java chart library that makes it easy for developers to display professional quality charts in their applications. JFreeChart's extensive feature set includes:
  • Heroku for Java

    We're pleased to announce the public beta of Heroku for Java. Java is the fourth official language available on the Cedar stack. Java is, by many measures, the world's most popular programming language. In addition to its large and diverse developer base, it offers a huge ecosystem of libraries and tools, an extremely well-tuned VM for fast and reliable runtime performance, and an accessible C-lik

    Heroku for Java
  • iBATISを使ったO/RマッピングによるDBアクセスの実例

    はじめに iBATISはSQLを利用することに注力したフレームワークです。高機能なO/Rマッピングフレームワークに比べて簡単に理解でき、レガシーなJDBC、ResultSetを使ったプログラミングから簡単に乗り換えられます。 特にSQLを多用する人には使いやすいフレームワークです。 SQLは使いたいがJDBCは低レベルすぎる 高機能なO/Rマッピングフレームワークは難しすぎる ソースコードからSQLを分離したいが動的なSQLの実装も必要 このようなケースで、iBATISは特に有効です。 記事では、たくさんのサンプルソースを解説することで、「iBATISを使えばこんな風に書ける」ということが分かるようにしています。環境設定や、設定ファイルについての細かい説明は簡略化してあります。 対象読者 Javaの基をマスターしている人 SQL文を理解している人 必要な環境 iBATIS 2.3.0、

    iBATISを使ったO/RマッピングによるDBアクセスの実例
  • 1. Spring Framework (2)

    Spring Framework 1章 Spring Framework 1.1. Spring の概要 1.2. DI: Dependency Injection 1.3. Dependency Injection のタイプ 1.4. Spring のインストール 1.2. DI: Dependency Injection Dependency Injection (依存性注入) とは、あるクラスが別のクラスをインスタンス変数に持つなどして利用 (依存) している場合に、インスタンス変数の設定 (依存性の解決) をクラス内で行うのではなく、外部から設定 (注入) するという考え方です。Spring の場合は、その外部が Core モジュールである DI コンテナになります。 ある少年とお弁当の関係を考えてみましょう。ここではこの少年がどのようにお弁当を手に入れるのかを考えます。 もっとも

    mumumu-tan
    mumumu-tan 2011/06/07
    Dependency Injection (依存性注入) とは、あるクラスが別のクラスをインスタンス変数に持つなどして利用 (依存) している場合に、インスタンス変数の設定 (依存性の解決) をクラス内で行うのではなく、外部から設定 (注入) する
  • Convention plugin

  • Struts 2アプリでアノテーションを活用するConventionプラグイン

    はじめに 今回からは、Struts 2の機能を拡張するプラグインの代表的なものを紹介します。今回はStruts 2.1プラグインの中でもとても重要な機能を提供するConventionプラグインについて述べていきます。 対象読者 Struts 2のWebアプリケーション開発に興味ある方 必要な環境 最低動作環境は以下の通りです。 Java SE 5 Struts 2.1.6が動作する環境 Tomcat 5.5.x / 6.0.x 開発環境のインストールについては、WINGSプロジェクトのサーバサイド環境構築設定ページなどを参考にしてください。 また、Struts 2の入手はStruts 2.1.8.1より行えます。現時点での最新リリース版は2.1.8.1です。 Struts 2プラグインとは Struts 2プラグインとは、Struts 2の機能を拡張し、使い勝手を向上するものです。必要に応

    Struts 2アプリでアノテーションを活用するConventionプラグイン
  • @いう間にWebアプリを作れる「Struts 2」入門 (1/3) - @IT

    【特集】Strutsは“2”を使えば、サルでも幸せに ヤスダネットワーク 関川 晶子 2009/1/8 Strutsに“2”が存在することを知ってましたか? Strutsフレームワークの登場により、JavaによるWebアプリケーション開発は飛躍的に成長しました。いまでは、さまざまなフレームワークが存在しています。日発のフレームワークSeaserやサン・マイクロシステムズのJSFなどが有名です。 その中に、「Struts 2」というフレームワークが存在することをご存じの方は多いでしょう。ところが、日語の情報源がとても少ないのが現実です。その結果、なかなか日でブレイクするキッカケをつかめずにいます。 いまでも、多くの現場で使われているStrutsは、2001年に登場しました。来Strutsが目指したものは、メンテナンス性に優れた、チーム開発に適した土台を提供することにありました。その結

  • 第13回 いまさら聞けないアノテーション活用術

    株式会社DTS ネットワーク事業部所属。Struts/Springをベースとしたフレームワークの開発・保守,プロジェクト支援に携わる。2008年,社内認定制度によりITアーキテクトに認定される。 Springは日でも広く使われているフレームワークの一つですが,「XML地獄」や「学習コストが高い」などの批判を受けることもありました。それらの問題を改善するための一つの手段として,2007年11月にリリースされたバージョン2.5で格的にアノテーションがサポートされました。 アノテーションのサポートによって,表1のような処理でXML記述を圧縮する仕組みが提供されています。

    第13回 いまさら聞けないアノテーション活用術
  • 第1回 なぜSpringなのか

    Webアプリケーションは,レイヤーによって論理的に分割され,各レイヤーでは様々なフレームワークを使用して効率的に開発を行います。例えば,図1のようにプレゼンテーション・レイヤーにはStruts,データアクセス・レイヤーにはHibernateを使うといった具合です。各レイヤーに適用するためのフレームワークは様々な種類があるため,作成するアプリケーションの要件に合わせて選びます。 このように各レイヤーごとに,フレームワークを適用して開発する方式はかなり一般的になりましたが,実際にプログラムを作っていく上で,いくつかの問題が出てきました。 変更に弱い 図1を見ると,各レイヤーは一見独立しているように見えるのですが,実際のところ,隣り合うレイヤーは密接に連結しています。例えば,ビジネス・レイヤーからデータアクセス・レイヤーのオブジェクトにアクセスする場合,通常は以下のようなプログラムになるでしょう

    第1回 なぜSpringなのか
  • Chapter 8. Testing

    IoC Container, Events, Resources, i18n, Validation, Data Binding, Type Conversion, SpEL, AOP, AOT.

  • 【ハウツー】Struts1系経験者のための「Struts2.1入門」 (1) Struts2.1の構造 | エンタープライズ | マイコミジャーナル

    情報が少ないStruts2.1 現在、当たり前のようにシステム開発で利用されているSpringFrameworkやHibernateなどのオープンソース・フレームワーク。それらオープンソース・フレームワークの先駆けとなったStrutsは、クレイグ・マクナラハンがビーチサイドで原案を書き上げ、バージョン1.0として公開されてから、今年で早くも10年が経とうとしています。そして約10年を経てもなお、Strutsは開発者からの衰えない人気を保っています。 しかし、国内でのStruts人気は、最初に発表されたStrutsの系譜を引き継ぐバージョン番号に1を冠するStruts1系に対するものであり、WebWork2と合体したバージョン番号に2を冠するStruts2系の人気は今ひとつないように思えます。最近では、Struts2系の最新バージョン2.1.6も発表され、Struts1系よりも随分と簡単に便

  • Struts 2入門(6)~XML不要のZero Configuration~(1/4):CodeZine

    連載では、オープンソースのサーバサイドJava向けWebアプリケーション・フレームワーク「Struts 2」を、実際に動作するアプリケーションと共に解説していきます。第6回目の稿は、先頃リリースされたバージョン2.1.6についてと、Zero Configuration(ゼロ・コンフィギュレーション)と呼ばれる、XML設定ファイルを用いないでアプリケーションを構築する方法について説明することにします。 はじめに 「Apache Struts」(以下、Struts)とは、サーバサイドJava開発のデファクトスタンダードとしてあまりにも有名な、オープンソースのWebアプリケーション・フレームワークです。連載では、そのStrutsの次世代バージョンであるStruts 2を、実際に動作するアプリケーションと共に解説していきます。 第6回目の稿は、先頃リリースされたバージョン2.1.6について

    Struts 2入門(6)~XML不要のZero Configuration~(1/4):CodeZine
  • Struts 2入門(5)~Viewレイヤーの仕組み~

    はじめに 「Apache Struts」(以下、Struts)とは、サーバサイドJava開発のデファクトスタンダードとしてあまりにも有名な、オープンソースのWebアプリケーション・フレームワークです。連載では、そのStrutsの次世代バージョンであるStruts 2を、実際に動作するアプリケーションと共に解説していきます。 第5回目の稿は、MVCモデルで言うところの「V」iewレイヤーについて説明することにします。Viewレイヤーとは、アプリケーションの処理結果を表示するレイヤーにあたります。 対象読者 サーバサイドJava(JSP&サーブレット)について基的なことは理解している方を対象とします。 Result処理 Struts 2のViewは、URIリクエストから実行されたActionクラスの処理結果や状態を出力するレイヤーです。デフォルトでは、JSPファイルをテンプレートとして、

    Struts 2入門(5)~Viewレイヤーの仕組み~