タグ

Javaに関するhyperashのブックマーク (29)

  • 例えば、Strutsを避ける

    はじめに 筆者は10年以上ウェブアプリケーション開発を主な業務とするJavaプログラマであったにも関わらず、Strutsについてはこれまでずっとわず嫌いでした。初期のStrutsは「XMLだらけで効率が悪そう」というイメージが強かったためです。最近はRuby on Rails等の影響を受けCoC(convention over configuration)を採り入れ、XML地獄もだいぶ解消したようです。 StrutsはJavaアプリケーションらしくない種類(任意のコード実行等)の脆弱性を連発することでも知られており、最近は我々の提供するSaaS型WAFサービス、Scutum(スキュータム)のお客様からも頻繁にStrutsについての問い合わせを受けるようになりました。また、去年見つかった任意のコード実行の脆弱性では、脆弱性の公表後すぐにPoCが出回り実際に攻撃が発生するなど、悪い意味で注目

    例えば、Strutsを避ける
    hyperash
    hyperash 2014/04/23
    Struts2はこの記事の通りの惨状で、Struts1は一年も前にサポート切れになっている、という状況をもっと周知していかないといかんなあ。あ、また新規のStruts案件が。
  • StringBuilderを使ったクソコードはどこまで遅いか - きしだのHatena

    ※ 4/9 11:25 いろいろ計測しなおしてます。こちらも参照 Javaで文字列連結する場合には+演算子よりもStringBuilderを使うべき、という話があるのですが、よく sb.append("[" + data + "]"); みたいなコードをみかけて、あんまり意味ないなーと思ったりします。 あと、 sb.append("title:"); sb.append("[" + data + "]"); みたいに、+演算子を使った一行の式にして sb = "title:" + "[" + data + "]"; としておけば「title:」と「[」はコンパイル時点で最適化されたのに、ってコードもあります。 ということでTwitterJavaでの文字列連結は+を使うべき、ってやったほうが、StringBuilder使ったsb.append("[" + data + "]")みたいなク

    StringBuilderを使ったクソコードはどこまで遅いか - きしだのHatena
  • Java8日付時刻APIの使いづらさと凄さ - きしだのHatena

    いままでのJavaでは、日付時刻を扱おうとするとめんどくさい割に非常に低機能でした。 Java8では、新たに日付時刻APIが導入され、めんどくささが増しつつ非常に高機能になりました。 (以降、Java8で導入された日付時刻APIを単に「日付時刻API」と表します) もちろん、慣れてきて、ちょっとしたサポートメソッドを用意してやれば、結構使いやすいのですが、それは「このAPIは使いやすい」という評価にはなりません。 つまり日付時刻APIは、慣れないとぜんぜんわからないし、サポートメソッドがないと面倒なコードが必要ということです。 いろいろあってよくわからない 日付時刻では、時点を扱うInstantや期間を扱うPeriod、時間量をあらわすDurationなど多くのクラス・インタフェースが導入されています。 これらは、IDEの補完でAPIを探りながら機能を推測すれば、それなりにドキュメントなし

    Java8日付時刻APIの使いづらさと凄さ - きしだのHatena
    hyperash
    hyperash 2013/09/17
    "JSR-310 Date and Time API"の解説。ゆくゆくはjava.util.Date/java.util.Calendar系を無かったことにしたい模様。immutableなのは少し嬉しいかも。
  • 富士通のMDA資料

    SDAS(エスダス)(注1)は、開発期間短縮を実現し、お客様のビジネスのスピードアップに貢献する為の総合システム開発体系です。 新しい「SDAS」は、「短期間・高品質」のシステム開発を実現するとともに、「オープン性・国際標準」「ライフサイクル全般でのシステム最適化」「エンジニアリングとマネジメントを両輪とするプロジェクト遂行」を特長としています。 これにより、システム開発期間を従来と比べ、概ね半減することが可能となり、ITの観点から、お客様のマーケットの動きを先取りしたビジネス展開を支援していくことで、競争優位確保に貢献します。 システム開発を「要件定義」「設計」「構築」「テスティング」の4フェーズに分け、それぞれのフェーズを最短化する開発手法、標準技術に基づくツール群およびテンプレートを適用することで、トータルの期間短縮を実現します。 注1 SDAS: System Developmen

  • DWRはAjaxアプリを作りたいJava開発者にお勧め

    試しにおみくじアプリを作成してみよう MyEclipseを用いてDWRの簡単なサンプルプログラムを作成したいと思います。これは、ブラウザから名前を入力して送信すると、おみくじを引いてその結果を返すものです。必要な環境は以下のようになります。 JDKのインストール JREではなくJDKを使用するので、インストールしていない場合はJava SE Downloadsからダウンロードしてインストールしておいてください。今回は執筆時点での最新版JDK 5.0 Update 10を使用します。 インストールしたら、Eclipseの設定でダウンロードしたJDKを指定します。メニューの[Windows]→[Preference]→[Java]→[Installed JREs]とたどり、[Add]ボタンで追加してください(図2)。 MyEclipseのインストール MyEclipse 5.1GAをインストー

    DWRはAjaxアプリを作りたいJava開発者にお勧め
    hyperash
    hyperash 2007/01/28
    リバースAjax
  • Javaウェブフレームワーク「Wicket」の使い方

    Javaウェブフレームワーク「Wicket」の使い方 RSS Readerを作る その1 矢野 勉 目次 目次 気持ちのいいウェブプログラミング Wicketの使いどころ Wicketの考え方 まずはダウンロード インストール おなじみの設定 - Javaサーブレットとしての設定 Wicketアプリケーションの作成 Pageクラスの作成 Wicketのモデルとモデルオブジェクト モデルへの値のセットと検証 フォーム全体の検証 メッセージを変える フォーム毎にメッセージファイルを持つ まとめ 次回は... ご意見などは... 気持ちのいいウェブプログラミング このページでは、ウェブ・アプリケーション・フレームワークWicketの使い方について紹介します。Wicketの特徴は「HTMLJavaだけですべてが完了する」ということでしょう。 Strut

  • 【ハウツー】DWR 2.0 - アノテーションでさくさくAjax! JavaScriptいらず (1) DWRとは? | エンタープライズ | マイコミジャーナル

    DWR(Direct Web Remoting)はAjaxアプリケーションをJavaで開発するためのソフトウェア開発フレームワーク。The DWR Projectのもとで開発され、Apache License Version 2.0のもとオープンソースソフトウェアとして公開されている。 DWRではJavaを使ってAjaxWebアプリケーションを開発する。必要になるJavaScriptを開発者が書くのではなく、Javaのソースコードから自動的に生成する仕組みを備えている。このあたりはGWT(Google Web Toolkit)と似ているかもしれない。ただし、DWRが生成するのはJavaScriptまでで、GWTはUIも精製するなど、範囲が動的か静的か混在かといった違いはある。 執筆現在の安定版リリースはDWR version 1.1.3だが、興味深い機能が多いことからここでは現在開発中であ

  • Apache MavenによるJavaプロジェクトポータビリティの向上:CodeZine

    今回は、メニューからグラフの種類を変更できるようにします。これまでは、3D縦棒グラフでデータを表示していましたが、グラフの種類を折れ線グラフと円グラフに変えられるようにします。

  • Graphical Modeling Frameworkについて

    近年のWebアプリケーションの開発では、SpringやHibernateといったフレームワークを組み合わせて開発することが増えています。 それに伴い、ソースコードや設定ファイルといった構成要素が増加しており、その管理が複雑・困難になっています。 これらの構成要素を一つ一つ手動で定義すると、内容に不整合が生じたり、記述ミスが発生したりする恐れがあるため、 フレームワークに必要となる情報を一箇所で管理して、その内容を基に自動生成することが開発の現場ではよく行われています。 自動生成に用いる情報は、従来はExcelといった表形式のアプリケーションで定義することが大半でした。 しかし、定義する内容によっては、テーブルによる記述が向かない場合があります。 例えば、画面遷移や状態遷移を表現する場合は、図形で表現できた方が直感的で解り易いでしょう。 また、Javaでの開発ではEclipse

    hyperash
    hyperash 2006/11/06
    GMFのインストール
  • Maven2のTipsを集めるWiki - CookBook

    {{toc}} !インストール !! Maven2をインストールする 既にJava環境(1.4以上)をインストールしているものとする。 http://maven.apache.org/download.html より [[magnoto|http://horoscope.magnoto.com/]] * maven-2.0.X-bin.tar.bz2 * maven-2.0.X-bin.tar.gz * maven-2.0.X-bin.zip のどれか1つをダウンロードし適当な解凍ソフトで展開する。展開後の'''maven-2.0.X'''ディレクトリを任意の場所に置く。(例えばWindowsであれば'''C:\maven-2.0.4'''、Unixであれば'''/usr/local/maven-2.0.4''') Windowsの場合、エクスプローラより'''マイコンピュータ'''を右ク

  • MergeDoc Project

    hyperash
    hyperash 2006/11/05
    Javadocを日本語化
  • 2006-06-23

    ウチの会社でやってみても絶対流行らないと断言できる. そんな弊社は大手(?)SIer.:-P #デジタルデバイドっていうか,格差あり過ぎ. 常駐先で昨年作ったフレームワークの保守サイトにXOOPS立てたんだけど,数年前,自社でXOOPS立ち上げた時と同じような感覚に陥る.これって既視感? 特集1,特に第1章は,誰もが読んでほしい. 特集1 オブジェクト指向エンジニア必読 構造化プログラミング入門 10年先も使える知識を身に付ける! 第1章 「きちんとコードを書く」ための大原則……羽生章洋 構造化プログラミング前史 第2章 オブジェクト指向に活かす構造化の知見……黒枝真,羽生章洋 近代構造化技法とは 第3章 「仕事の流れ」「仕事上のルール」をモデル化する……黒枝真,羽生章洋 業務システムの次世代構造化 WEB+DB PRESS Vol.33 作者: WEB+DB PRESS編集部出版社/メー

    2006-06-23
  • JavaをJavaScriptに変換するグーグルのツールを使ってみよう ― @IT

    グーグルが発表したGoogle Web ToolkitJava言語で作成したクライアントアプリケーションを、JavaScriptHTMLアプリケーションに変換するという、まったく異なるアプローチを持つAJAXアプリ開発ツールだ。簡単なサンプルを動かしてみよう(編集部) 2006年5月17日、米国Googleが、Google Web Toolkitをリリースしました。早速Webサイトを見ると、『Google Web Toolkit - Build AJAX apps in the Java language』(=Java言語でAJAXアプリを造る)という、Java開発者にとって非常に刺激的なキャッチで始まっています。 これまでも、BACKBASE Java Edition、ICESOFT ICEFACES、Nexaweb などAJAX+Javaでの開発に対応するフレームワーク製品または

  • Apache Beehiveの開発を体験する(NetUI編):CodeZine

    NetUIの概要とアーキテクチャ概要 NetUIは、StrutsをベースとしたWebアプリケーションのフレームワークです。J2SE 5.0で新たな仕様として追加されたアノテーションの機能を主に利用し、より効率的に開発を行えるフレームワークとなっています。また、優れたさまざまな機能を実装しています。次に主な特徴を挙げます。これまでStrutsでのActionクラス+「struts-config.xml」として別々に管理していたリソースをコントローラークラスに統合することにより、よりメンテナンスしやすい効率的な開発環境を提供します。強力なJSPタグにより、フォーム、コントローラー、ビジネスロジックで作成されたデータを簡単にJSPにバインドすることができます。複数のコントローラーをそれぞれ独立したモジュールとして開発することにより、大規模なアプリケーションを効率的に実行することができます(Nes

  • Eclipseで使えるメトリクス計測ツール

    Eclipseプラグインで提供されるテストツールが充実してきた。連載では、システム開発の現場に有効なテストツールを紹介し、統合開発ツールにEclipseを選択する開発におけるテストの効率化、ソフトウェア品質の向上のヒントを提供する。(編集部) 前回の記事ではソースコードのスタイルチェックやバグ検出を行う静的解析ツールを紹介しました。今回は、ソースコードの複雑さなどを計測するメトリクス計測ツールを紹介します。メトリクスを計測することにより、ソースコードの構造上の問題点を把握し、品質の評価および向上につなげることができます。今回は、Eclipse Metrics Plugin(2種類)、CAP、JDepend4Eclipseの4ツールを紹介します。 メトリクスとは ソフトウェアのメトリクスとは、ソフトウェアを計測する方法およびその尺度のことを意味します。今回紹介するメトリクス計測ツールは、ソ

    Eclipseで使えるメトリクス計測ツール
  • Validatorを利用した入力値チェックの注意点

    今回は、Struts 1.2.8におけるValidatorプラグインの仕組みをセキュリティ側から考察し、使用上の注意点を探っていく。 Validatorプラグインの仕組み まず、Validatorプラグインを使用したサンプルアプリケーションを作成して、動作の仕組みを見ていこう。 前略 <action path="/RegistUser" type="vlunApp.RegistUserAction" validate="true" -(1) name="UserForm" -(2) scope="request" input="/pages/registUser.jsp"> <forward name="success" path="/pages/registUserComp.jsp" /> </action> 後略 前略 <form name="UserForm"> -(3) <fiel

    Validatorを利用した入力値チェックの注意点
  • HttpClientで文字化け - 徒然なるままにBlog

    JakartaプロジェクトのCommonsプロジェクトにあるHttpClientはプログラムからWebサーバへのアクセスを簡略できる便利なライブラリなのだが、どうもPOSTで日語を含めたパラメータを送信すると化けて送られるようだ。 何を入力してもWebサーバ側では????になってしまう、困った。 APIドキュメントを見ても直せそうなメソッドはないし仕方がないからソースを追っていくことにした。 見ていくとどうもorg.apache.commons.httpclient.HttpMethodBaseのgetContentCharSet(Header)メソッドで返す文字コードがそのままパラメータのエンコード方法となっているようだ。 引数のHeaderはContent-Typeを渡していてその中にcharsetが含まれているとその値が返るようになっている様子。 でもPOST時のCont

  • ITmedia エンタープライズ:Google、Ajaxアプリ開発ツールのβ版公開

    Google Web ToolkitではJavaを使ってGoogle MapsやGmailのようなAjaxアプリケーションを開発し、GWTコンパイラでJavaScriptHTMLに変換できる。 米Googleは、JavaでAjaxアプリケーションを作成するためのソフト開発ツール「Google Web Toolkit」(GWT)のβ版を公開した。 同ツールでは、Javaを使ってGoogle MapsやGmailのようなAjaxアプリケーションを開発できる。自分の好きなJava開発ツールを使ってAjaxアプリケーションの作成とデバッグを行い、GWTコンパイラでJavaアプリケーションをブラウザ対応のJavaScriptHTMLに変換することが可能。 GWTで作成したアプリケーションはIE、Firefox、Mozilla、Safari、Operaの各ブラウザを自動的にサポートするという。GW

    ITmedia エンタープライズ:Google、Ajaxアプリ開発ツールのβ版公開
  • 【レポート】JavaOne 2006 - JDK/JREがGNU/Linuxに同梱・再配布可能に--Sun新ライセンスDebianらと合意 | エンタープライズ | マイコミジャーナル

    Sun Microsystemsは、GNU/LinuxおよびOpenSolarisにJava SE 5(Java Platform, Standard Edition 5)を同梱して再配布することを可能にする"Operating System Distributor's License"(JDL)を発表した。米国で開催中のthe JavaOne Conference 2006にて発表されたもの。Java SE 5のJDK(Java Development Kit)やJRE(Java Runtime Environment)をインストール可能なパッケージをOSのディストリビュータが作成・配布することが出来るようになる。すでに、Debian、そしてDebianに近いUbunts、また、Gentooといったディストリビュータと合意、それぞれがJDLのもとでパッケージを作成、配布する。 これまでJ

  • 儲ける構図 (arclamp.jp アークランプ)

    先日のZope Weekend 5にて、オープンソースCMSという内容のパネルディスカッションに、Java系CMS代表(?)ということで参加してきた。その話題で、いくつかエントリしたいことはあったのだが、まずこの話題から。パネルディスカッション中、モデレーターの桜井さんから、「なぜ、Javaが企業システムに良く使われるのか」ということが指摘された。僕の答えは、簡単に言えば「企業が儲ける構図がはっきりしているから」というものだ。いかにも、卑下した答えに聞こえたかもしれないが、やはりきちんとこのことを理解していないといけないことだ。 儲ける意味とは まず、企業が儲けられる意味とは、どういうことだろうか。当然のことながら、ほとんどの企業は営利目的であり、株主の利益になることをすべきだ。だから、儲けるというのは、当然の目標になる。企業にまったく永続性がなければ、安心してベンダーを採用することなん