Playで体得するRESTfulアーキテクチャの基礎知識:Javaの常識を変えるPlay framework入門(5)(1/3 ページ) サーブレット/JSPを基にする重厚長大なJavaのWeb開発のイメージを変える軽量フレームワーク「Play」について解説し、Webアプリの作り方を紹介する入門連載。今回は、RESTの概要、URIの概念、RESTで使われるHTTPメソッドとステータスコード、PlayでのRESTfulな設計、実装上の問題点などを解説します。 RESTを理解すると、Play frameworkが分かる 前回記事「Play frameworkのコントローラの使い方を理解する」までは、Javaを使う観点からPlay frameworkを紹介してきました。しかし、今回は視点を変えて、言語による実装方法ではなくPlay frameworkが得意とするソフトウェア・アーキテクチャのパタ
JavaによるRESTfulシステム構築 作者: Bill Burke,arton,菅野良二出版社/メーカー: オライリージャパン発売日: 2010/08/23メディア: 大型本購入: 28人 クリック: 804回この商品を含むブログ (39件) を見る タイトルからはわかりませんが、JAX-RS について書かれた書籍です。 著者の Bill Burke さんは、JAX-RS 仕様の策定や JAX-RS 実装 RESTEasy の開発に関わっている人です。 さすがに仕様策定や実装の開発に関わっている人が書いているだけあって、JAX-RS についての重要なことがらがわかりやすくまとまっていました。 JAX-RS について学ぶのであればまず本書を読むのが一番だと思います。 JAX-RS について JAX-RS というのは、RESTful サービスを構築するための Java の API 仕様です
Scalaと Spring Frameworkを使って REST的なJSON APIを実装してみましょう。 市民、Rubyからようこそお帰りなさい 俺はHTMLを書かないぞジョジョぉーッ シンプルな最初の例 きわめて短いコードでHTTPリクエストに対して Hello, Worldの JSONを返す 開発環境の構築 Eclipse関係の設定方法を解説すると Google先生が定期的に人を連れてきてくれるからね プロジェクトを作成する 1/3 Scalaプロジェクトの新規作成 (Coming soon) Eclipse上で Scalaプロジェクトを新規作成して、必要なディレクトリ構造を作る プロジェクトを作成する 2/3 jarファイルの収集 (Coming soon) Mavenに頼らず自分で必要な jarファイルをかき集めたら warファイルを小さくできるよ? プロジェクトを作成する 3/
WebSocket、組み込み、並列処理で進化するJava、そして最強のIDEはどれだ?:Java Day Tokyo 2013まとめレポート(2)(1/5 ページ) Java EEにおけるWebSocket、並列処理の過去・現在・未来、Raspberry Piとの連携、Eclipse、NetBeans、IntelliJ IDEAの中から最強のIDEを決める座談会、ミニ四駆の発表もあったLT大会などの模様をお届け。 日本オラクルは5月14日、「Java Day Tokyo 2013」を開催した。Java EEの最新バージョンリリースを間近に控える中、JavaFXやRaspberry Pi、さらには来年リリース予定のJava SE 8など内容は多岐に渡った。 Java Day Tokyoは、その名の通りJavaが中心となったカンファレンス。Java開発者向けのイベントとして伝統ある「JavaO
明日13日に正式に発表されるJava EEの最新バージョン「Java EE 7」の対応のアプリケーションサーバ「Glass Fish 4」のオープンソース版が公開されました。 GlassFishはJava EEのリファレンス実装として開発されてきており、今回のGlassFish 4でもJava EE 7のリファレンス実装となります。開発者はGlassFish 4を用いてJava EEのAPIや動作などを試すことができます。 WebSockets、JSON、RESTに対応。バッチ処理のためのフレームワークも Java EE 7は、HTML5のWebSockets対応のサーバ機能を備え、Java API forJSONやJava API for RESTful Web ServicesなどのAPIにより、Webアプリケーションでよく利用されるデータ構造やアーキテクチャスタイルにも対応。 Jav
Java8でのラムダの使い方などを説明してきたのですが、構文拡張自体には触れていなかったので、改めてここで簡単に説明しておこうと思います。 まずは、Java8で実際に最もインパクトがある言語拡張、インタフェースのデフォルトメソッドです。 デフォルトメソッドとデフォルト実装 いままでインタフェースには実装をもつことができませんでしたが、Java 8からはインタフェースが実装をもてるようになります。 実装をもつメソッドを定義するときには、キーワードdefaultをメソッドの前につけます。 interface Foo{ void print(String s); default void twice(String s){ print(s); print(s); } } twiceメソッドが実装をもっています。この実装をデフォルト実装といいます。 デフォルトメソッドを実装するクラスで、デフォルトメ
市民、Rubyからようこそお帰りなさい 〜ScalaのようでJavaだけど少しScalaなJSON API〜 Javaから Rubyへ! ・・・そんな時期が、俺にもありました。 Rubyの記述力は Javaと比べて本当に魅力的で、設定より規約だ!ダックタイピングだ!なんていいながら一時期みんなして Railsに群がってたんだけど。互換性がそれほど重視されないから言語やフレームワークのバージョンアップに置いて行かれるとひどい目にあうし、タイプミスひとつさえテスト回してやらないと拾えないし、なにより実行速度がひどく遅い。そうこうしているうちに Javaの方はアノーションが積極的に使われる始めることで設定ファイルは小さくなったし、動的な型のほうが柔軟でいいというのは誰が言い始めたのか知らないが実は気のせいじゃないかと皆が気付き始めるのも無理はない。 やあ、Javaへお帰りみんな。 そうして J
「JSON文字列へのインジェクション」と「パラメータの追加」:NoSQLを使うなら知っておきたいセキュリティの話(2)(1/2 ページ) MongoDBを用いたWebアプリケーションで生じる可能性がある4種類の脆弱性のうち、今回は「JSON文字列へのインジェクション」と「パラメータの追加」のメカニズムと対策について説明します。 前回の「『演算子のインジェクション』と『SSJI』」では、MongoDBを用いたWebアプリケーションで生じうる脆弱性のうち「演算子のインジェクション」と「SSJI」について、攻撃の実例と対策について解説しました。今回はさらに、「JSON文字列へのインジェクション」と「パラメータの追加」について説明します。 JSON文字列へのインジェクション これまで見てきたように、PHP言語においては連想配列を指定してデータの登録処理や検索処理を実行できます。しかし型の扱いが厳格
JavaにはMavenっていう依存ライブラリの管理を行えるすごい便利なツールがあるんだ。RubyでいうところのRubyGems みたいなもんだよ。でもさぁ、RubyGems みたいに自分で作ったライブラリを簡単にアップロードするサーバがないんだよ。えっ、Nexus入れろって?そんなのイチイチ用意してらんないよね。えっ、WebDAV?ムリムリー。本当Javaってなんでもかんでも面倒くさいよね。 そんなあなたに朗報。GitHubリポジトリに特別なブランチを作ってMavenの設定をするだけで、GitHubリポジトリをMavenリポジトリにすることができるんだ。GitHubって本当に開発者に優しいサービスだよねー(-д☆)キラッ ※4/3追記:【最新版】Maven Central Repository へのライブラリ登録方法 #mavenに詳しくまとまっているんだけど、Maven Centralリ
WebSocketが一番速いアプリケーションサーバはどれだ?:Tomcat、Jetty、Socket.IO/Node.js性能比較(1/3 ページ) はじめに 2012年の10月にWindows 8が発売され、そこに搭載されたInternet Explorer(以下、IE) 10ではHTML5の機能が利用できるようになりました。また、2013年の2月にWindows 7版のIE 10もリリースされ多くのユーザーがHTML5の恩恵を受けられるようになりました。 HTML5の機能の多くは、Webブラウザ側で実装されれば、HTMLやCSSを適切に記述することで利用が可能です。しかし、今回取り上げるWebSocketはサーバ側でも機能の実装が必要です。このため、WebSocketを利用する場合はWebブラウザだけではなくサーバを選ぶ必要があります。 WebSocketそのものの技術的な解説は、以下
Java8 から追加されるインターフェイスの default 実装ですが、C# の拡張メソッドに似てますよね。 実際、このどちらも「シンインターフェイス」を定義するだけで「リッチインターフェイス」が手に入ります。 しかし、C# の拡張メソッドと Java のインターフェイスの default 実装には、それぞれの利点と欠点があります。 拡張メソッドの利点 拡張メソッドの利点は、インターフェイスの実装者だけでなく、 インターフェイスの使用者に対してもインターフェイスの拡張が開かれている点です。 既存の型ですら、後付けでメソッドを追加することができるということです。 using System; public static class StringExtension { // インターフェイスでなくても、どんな型に対しても拡張可能 public static int ToInt(this str
Java8のlambda構文の話を書くと、旧来の書き方でいいというコメントがつくのですが、それでも便利になったMapの恩恵を受けることは多いんじゃないかと思います。 ※ 2018/5/31 Java9からはメモ化再帰には使えなくなっています ※ 2019/2/15 なんか問題ない? Mapには、lambda式を使ったメソッドが多く追加されていますが、たとえばgetOrDefaultメソッドのようなlambda式を使わないメソッドも追加されていて、これも便利です。 そして、このようなlambda式を使わないメソッドも、間接的にはlambda構文サポートでの言語拡張のおかげです。 Mapはインタフェースなので、Java7までの構文でメソッドを追加しようとすると、Mapを実装しているすべてのクラスに新しいメソッドの実装を追加する必要がありました。そしてそれは現実的に不可能なので、今までMapなど
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く