[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

javaに関するArisonのブックマーク (49)

  • 【Java】nullや空文字、空白文字の入力チェック

    Apache Commons LangのStringUtilsクラスが便利。 nullや空文字、空白文字の入力チェックにはStringUtilsを利用しよう。 いつも。isEmpty使うかisBlankで迷う。 必須入力項目なら、空白を許可するならisEmpty。 主キーの項目なら、空白文字を許可しないisBlankがいいかな。 isEmpty public static boolean isEmpty(java.lang.String str) チェック対象の文字列がNULL、または空文字かどうかチェックする。 パラメータ: str – チェック対象の文字列 戻り値: チェック対象の文字列がNULL、または空文字の場合はtrue、そうでない場合はfalse StringUtils.isEmpty(null) の場合 true StringUtils.isEmpty(“”) の場合 tru

    Arison
    Arison 2015/02/08
    Apache Commons LangのStringUtilsクラスが便利。 nullや空文字、空白文字の入力チェックにはStringUtilsを利用しよう。
  • 日本の1970年1月1日9時が数値0であること

    Javaでlong値(ミリ秒)を用いて時刻比較するときの注意点。 標準時(GMT)の1970年1月1日0時は数値では0。 日の時差は9時間。 日の1970年1月1日0時0分0秒(JST)は、 標準時(GMT)では、1969年12月31日15時0分0秒。 値はマイナス。-1000×60×60×9の値になる。 時間比較をするときは時差を考えて。 時差分だけ足すとマイナスされても正の値のみになる。 【前提】 時間比較をしようとして、日付部分をカットして時間のみのミリ秒数で比較しようとした。 (例えば、現在の時刻と営業時間の開始時刻と終了時刻を比較したい時など。) ※ちなみに日付部を切り落とす処理は、 上記のミリ秒を1日のミリ秒数(1000*60*60*24=86400000)として、 86400000で割った余りを取るようにしていた。 設定値も現在時間も日時間(+9時間)で取得される想定だ

    Arison
    Arison 2014/11/05
    日本の1970年1月1日9時が数値0であること。Javaでlong値(ミリ秒)を用いて時刻比較するときの注意点。 標準時(GMT)の1970年1月1日0時は数値では0。
  • 【Java】OGNL(Object Graph Navigation Language)

    OGNL とは、Object Graph Navigation Language の略である。 オブジェクトの参照はシャープ記号(#)でマークされる。 OGNLに関する情報が少なすぎて、Struts2で作成するうえで大変困る。 ognl.orgはなくなっているし。 OGNL – Apache Commons OGNL – Object Graph Navigation Library http://commons.apache.org/proper/commons-ognl/ 【Action プロパティの参照】 <s:property value="hoge"></s:property> ActionContext 内のその他 の(ルートでない) オブジェクトは、# 表記を使ってレンダリングすること

    Arison
    Arison 2014/07/13
    OGNL(Object Graph Navigation Language)
  • 【Java】Struts2でのプロパティファイルから値を取得する方法

    Struts2でのプロパティファイルから値を取得する方法 いまさら、Struts2といわれたら。それまでなんだけど。 Struts2でプロパティファイルから値を取得する方法があって順番は下記の通り。 Localization Resource Bundle Search Order Resource bundles are searched in the following order: 1.ActionClass.properties 2.Interface.properties (every interface and sub-interface) 3.BaseClass.properties (all the way to Object.properties) 4.ModelDriven’s model (if implements ModelDriven), for the mod

    Arison
    Arison 2014/07/13
    Struts2でのプロパティファイルから値を取得する方法
  • 例えば、Strutsを避ける

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

    例えば、Strutsを避ける
    Arison
    Arison 2014/04/23
    一時しのぎの対策の典型的な例。Struts
  • Java での web アプリケーション開発時の開発環境メモ #1 - 一角獣は夜に啼く

    最近 Java で web アプリケーションを開発しようと思って、アプリケーション構成やら開発環境周りやら悩んだりしていたのだけれど、ある程度良さそうな構成に落ち着きつつあるので現状をメモしておく。 アプリケーション構成 とりあえず HTTP 周りは JAX-RS に任せるのが良さそう。 JAX-RS 実装としては Jersey を選択。 JBoss RESTEasy とかも試してみたけど、JAX-RS の参照実装ということもあって Jersey は癖が少なくて使いやすいのかなーと思ったりした。 Web 上の情報も多そうな気がする。 JAX-RS 2.0 Jersey 2.4 Servlet コンテナ内で動かすことを想定 ビルドツールとしては Gradle を選択。 IDE との連携を考えると Maven の方が有利かなーとも思ったけど、実際 Eclipse と NetBeans で試した

    Java での web アプリケーション開発時の開発環境メモ #1 - 一角獣は夜に啼く
    Arison
    Arison 2013/11/03
    開発環境と言うかフレームワーク含めたアーキを考えるのが一番楽しいけど一番めんどくさい(笑)
  • Java 7 ソケット・ダイレクト・プロトコル - 一度書けば、どこでも実行できる、ある場所では驚くほどに

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    Java 7 ソケット・ダイレクト・プロトコル - 一度書けば、どこでも実行できる、ある場所では驚くほどに
    Arison
    Arison 2013/10/04
    あとで読む系
  • Eclipseデバッガ活用術

    これは便利。後半は意外と知らなかったことも多く勉強になりました。 Eclipseデバッガを活用する31のTips – Fly me to the Luna http://kompiro.hatenablog.com/entry/2013/09/29/Eclipse%E3%83%87%E3%83%90%E3%83%83%E3%82%AC%E3%82%92%E6%B4%BB%E7%94%A8%E3%81%99%E3%82%8B31%E3%81%AETips http://www.slideshare.net/kompiro/eclipse30tips?ref=http://kompiro.hatenablog.com/entry/2013/09/29/Eclipse%E3%83%87%E3%83%90%E3%83%83%E3%82%AC%E3%82%92%E6%B4%BB%E7%94%A8%E

    Arison
    Arison 2013/09/29
    これでEclipseのデバッグが楽しくなること間違いなし。Fly me to the Lunaさんとこから抜粋。
  • Eclipseデバッガを活用する31のTips - Fly me to the Luna

    Eclipseデバッガを活用するための31のtips from Hiroki Kondo speakerdeckに貼ろうかどうか迷ったけれども、どこかで話したわけではないのでslideshareに。 Eclipseのデバッガを活用すると開発が捗ります。自宅ではIntelliJを使い始めてみて、さくさくコードが書ける事を体感しているのですが、デバッグはEclipseの方がやりやすいです。で、自分の知っているノウハウをチームで共有するために作りはじめたんですが、広くみんなに公開したほうがいいと思っておすそ分け。調べてみると、結構知らなかったネタがゴロゴロでてきました。Run to Lineとかお手軽で強力な機能だと思う。 「こんなネタ知りたい」とか、フィードバックを是非お寄せください。調査して追記していきますので、コメントとかよろしくお願いします。

    Eclipseデバッガを活用する31のTips - Fly me to the Luna
    Arison
    Arison 2013/09/29
    これは便利。後半は意外と知らなかったことも多く勉強になりました。
  • 16の言語と57のフレームワークを比較したベンチマークが凄い

    いつの時代もより高速に動作するフレームワークや言語に対する関心は高いものですが、そんな疑問に答えるWeb Framework Benchmarksの最新版が公開されています。こちらのベンチマークはテスト用のコードや環境がオープンソースになっており16の言語(C C# Clojure D Erlang Go Groovy Haskell Java JavaScript Lua Perl PHP Python Ruby Scala)と57のフレームワークについて最適な実装が集められてテストされているという点で一般性があります。また実行環境もEC2と実マシンの2種類をそれぞれ実行している点も興味深いです。 気になるテスト結果のうち特に複雑度の高いデータベースから複数件のデータを取得してHTMLページとして出力した場合の結果は下記のとおりです。 堂々のトップに輝いているのはServletで最大で1

    16の言語と57のフレームワークを比較したベンチマークが凄い
    Arison
    Arison 2013/05/07
    設計者、開発者として知っておきたいフレームワークの比較サイト
  • 【Java】TomcatでROOT.warがいい働きをしてくれた件

    RESTアクセステスト用のウェブサーバを作成した。 用途に応じて複数の接続先となるため、用途に応じてテスト用のコンテキストを作成した。 コンテキストhoge hoge.war hogeで処理するモジュール コンテキストfuga fuga.war fugaで処理するモジュール コンテキストpiyo piyo.war piyoで処理するモジュール で、 開発中なので、存在しないコンテキストなどがあったんだけど、 とりあえず、レスポンスのデータはともかく、レスポンスコードぐらいは返したいと思った。 こんな場合に、ROOT.warが役に立った。 hoge.warしか用意できていないって時に レスポンスコードだけを返すROOT.warが、fuga、piyoの分まで働いてくれました。 http://www.example.com/ ROOT.war http://www.example.com/hog

    Arison
    Arison 2013/03/29
    コンテキストが存在する場合は、コンテキスト.warが呼び出される。 コンテキストが存在しない場合は、ROOT.warのディレクトリが呼び出される。
  • 【Java】Java 7 Update 10ゼロデイ攻撃

    Name : Hitoshi Arimura HN :アリソン、arisonjp 大都会岡山の南部にある玉野市生まれ。 大都会岡山のIT会社(目標は大都会No.1) でコンピュータとお客を相手に日夜格闘中。 岡山滞在中は家族ブログ。 出張中はグルメブログ。 基的に遊び人のおっさん。 ライフハックとガンダム好き。 ギガフロート玉野を浸透中。 Ingressでは青色好きなENL。 質問は 質問箱からどうぞ あなたの「いいね」が欲しいです。 最近の投稿 ロマンシング玉野2 2024-12-04 チャットGPT が語る ギガフロート玉野 2023-12-09 AIが描くギガフロート玉野 2022-12-10 ブログ再開します 2022-01-07 ギガフロート玉野とメタバースについて 2021-12-10 ギガフロート玉野の公式グッズ 2020-12-16 ギガフロート玉野「宇高航路フォーエバー

    Arison
    Arison 2013/03/29
    Java 7 Update 10以前のバージョンの脆弱性を利用して任意のコードを実行できる
  • 【Java】Struts2 RegexFieldValidator トリム事件

    今日のはまり。 Struts 2のvalidate アノテーションの問題。 RegexFieldValidatorが内部で勝手にトリムするから半角スペースが先頭や末尾にあるかの正規表現でチェックできなかった。 RegexFieldValidatorのソースを見ると勝手にトリムしている。 パラメタでトリムの実行有無を判定できないようにしているのは何かの理由があるのだろうか。 Struts 2のアノテーションが2つ利用できないのが残念。 正規表現は、「または」を用いるしかないのだろうか。 【後日談】 最終的にCustomValidatorを使ってValidateさせた。 RegexFieldValidatorクラス を extends して XxxxRegexFieldValidator クラスを作成した。 validateメソッドをOverrideした。 【ソース一部抜粋】 public c

    Arison
    Arison 2013/03/29
    RegexFieldValidatorが内部で勝手にトリムするから半角スペースが先頭や末尾にあるかの正規表現でチェックできなかった。
  • Java最新版に新たな脆弱性情報

    Oracleが脆弱性を修正したばかりの「Java 7 Update 11」に、新たな2件の脆弱性が報告された。 米Oracleが脆弱性を修正したばかりのJava最新バージョンで新たな脆弱性を確認したとして、ポーランドのセキュリティ企業Security Explorationsがセキュリティメーリングリストの「Full Disclosure」に概略を投稿した。 それによると、同社は「Java 7 Update 11」(JRE 1.7.0_11-b21)に新たな2件の脆弱性を発見し、コンセプト実証(PoC)コードを添えて1月18日にOracleに報告したという。この脆弱性を利用すれば、Javaに実装されたセキュリティ機能のサンドボックスを完全に迂回できることが確認できたとしている。 Javaは未解決の脆弱性を突く攻撃が横行したことを受け、Oracleが1月13日にJava 7 Update

    Java最新版に新たな脆弱性情報
    Arison
    Arison 2013/01/29
  • 各種ブラウザーで Java (applet) を無効にする方法

    こちら(米国)では、見つかった Javaセキュリティホール(+それを利用した実際のアタック)が大問題になり、米国政府が「ただちに Java を無効にするように」と声明を出し(参照)、全国ニュースでも大きく取り上げられている。 実質的な危険があるのは Java applet なのだが、JavaJava applet の違いの分からない報道機関は、大々的に「Java が危険」と報道しており、Sun Microsystems を買収して Java を入手した Oracle にとっては大きなブランドイメージの損失だ。Oracle は火曜日には56カ所のセキュリティホールを塞いだパッチを提供するそうだが、そんなパッチでは、今回作られてしまった「Java は危ない」というイメージは拭えない。 どのみち、Java applet にはほとんど価値がないので、これを機会に無効にする人も多いようだ(

    各種ブラウザーで Java (applet) を無効にする方法
  • WebブラウザでJava7を無効にする方法

    Java7 u11でも、引き続きブラウザ上のJavaプラグインは無効化しましょう WebブラウザでJava7を無効にする方法 #java / “WebブラウザでJavaを無効にするにはどうすればよいですか。” htn.to/iTmGMU 対象 •プラットフォーム:Windows 8, Windows 7, Vista, Windows XP, Macintosh OS X •ブラウザ:Internet Explorer, Firefox, ChromeJava バージョン:7.0 Java バージョン7の人は このリンク先みて無効にしてください。 http://java.com/ja/download/help/disable_browser.xml Java バージョン6だとJavaコントロール・パネル画面が違います。 JVNDB-2013-001027 – JVN iPedia –

    Arison
    Arison 2013/01/12
    Java 7 Update 10ゼロデイ攻撃に対してWebブラウザでJava7を無効にする方法 #Java
  • Java開発標準化規約(arison.jp) | アリラボ(arison.jp)

    全般 javadoc出力は説明は「である」調で統一されていること。 文章は "。" で終了していること。 半角カナを使用していないこと。 ソースヘッダコメント ソースの先頭部分にヘッダコメントが記述されていること。 ・ ブロックコメント形式( /* … */ ) ・ システム名 ・ クラス名 ・ Copyright情報 【記述例】 /* * ○○プロジェクト * * 【クラス名】 * SampleClass * * 【Copyright】 * All Rights Reserved,Copyright(C) arison.jp Limited 2012- */ クラスコメント クラスのコメントがクラス宣言の直前行に記述されていること。 ・ 機能概要(クラス名、クラス説明、備考) ・ 作成者:所属と氏名(フルネーム)を記述 【記述例】 /** * SampleClass * Helloを画面

    Arison
    Arison 2012/05/01
    異論は大いに受け付けます。 #java #コーディング規約
  • GoFの23のデザインパターンを,Javaで活用するための一覧表 (パターンごとの要約コメント付き) - 主に言語とシステム開発に関して

    GoFデザインパターンの一覧表と,活用のためのコメント,および入門者が独学するためのリンク集(サンプルコード付き)。 入門者の独学を支援するために,このページのURLを提示して熟読させ,各パターンを短時間で効率よく学んでもらう。 デザインパターンはプログラマの常識だ。 Java使いかどうかは問わない。 にも関わらず,入門書を買ったまま,途中で挫折する人が多い。 挫折の原因は,パターンの数が23もあって,多いからだろう。 全パターンをすんなり覚えてもらうためには,各パターンごとに 「要するにこういう目的のパターンなんだ。」 「10文字で表現すると,パターンの意味はこうなんだ。」 という要点・質を,短いコメントで伝えれば助けになるだろう。 こういった学習を通して,Java言語の「設計思想」も併せて感じ取ってゆけるはず。 全パターンの一覧表(要約コメント付き) 全パターンについて,10文字以内

    GoFの23のデザインパターンを,Javaで活用するための一覧表 (パターンごとの要約コメント付き) - 主に言語とシステム開発に関して
    Arison
    Arison 2012/03/31
    GoFの23のデザインパターン
  • Javaのクラス宣言5種+α - プログラマーの脳みそ

    Javaのクラス宣言には5種類ある。 トップレベルクラス・ネストしたクラス・内部クラス・ローカル内部クラス・匿名クラス(無名クラスとも言われる)の5種類だ。 今回はこの5種類のクラス宣言のおさらい。 トップレベルクラス これは普段使っているクラス。拡張子が.javaのファイルを作り、そのファイル名とクラス名を合致させなくてはいけない。そのjavaファイルのトップレベルに位置する。 ネストしたクラス 「ネストしたクラス」(Nested class)とはクラスの中にクラスがネストしている状態。トップレベルクラスの内側にstaticキーワードをつけてクラス宣言を行う。 public class Outer { public static class Nested { } } このネストしたクラスは、トップレベルクラスと同等の機能性を持つ。 クラス名はOuter.Nestedという名前で扱われるが

    Javaのクラス宣言5種+α - プログラマーの脳みそ
    Arison
    Arison 2012/03/09
    トップレベルクラス、ネストしたクラス、内部クラス、ローカル内部クラス、無名クラス。知らなかった
  • 変数とメソッドの命名ベストプラクティス15 - 杉風呂2.0 - A Lifelog -

    この記事は、Cagdas Basarane 氏のブログ、 CodeBuild から 2012年2月20日の記事 "15 Best Practices of Variable & Method Naming" を翻訳したものです。 原文URL http://codebuild.blogspot.com/2012/02/15-best-practices-of-variable-method.html 十分短く十分長い変数名をスコープごとに使用する。一般的に、ループカウンタには1文字、条件やループ変数には1単語、メソッドには1-2単語、クラスには2-3単語、グローバル変数には3-4単語を使用する。 具体的な(specific)名前を使用する。例えば、"value"、"equals"、"data"といった変数名はいかなる場合も有効ではない。 意味のある(meaningful)名前を使用する。変数

    変数とメソッドの命名ベストプラクティス15 - 杉風呂2.0 - A Lifelog -
    Arison
    Arison 2012/02/28
    命名規約について。javaの命名規約って素晴らしいなと。文字のスタイルで何か想像つくし。