Spring MVC でのレスポンスのキャッシュ制御 #spadc13

Spring Framework Advent Calendar 2013 - Adventar 9日目です。 [Spring Advent Calendar 2013 6日目] Spring MVC + Bean Validationでフォームの未入力フィールドをnullにする #spadc13 URL URL2013-12-05 09:28:32 via Tweet Button @making 自分が凄く欲…

Spring MVC と JAX-RS のちょっとした比較

Spring MVCとJAX-RSってRESTful web servicesにおいて比較される対象になるかと思います (でもTwitterのタイムライン観ててもJAX-RSはよく出てくるけど、Spring MVCはまったく出てこない)。 APIとかみてるとSpring MVCの方がよさげに見えます。パフォーマ…

Gradleからtelnet

また、Gradleネタで。 Gradleからtelnetする機会があったのでメモ。 結局 antなんですが。 configurations { telnetAntTask } repositories { mavenCentral() } dependencies { telnetAntTask("org.apache.ant:ant-commons-net:1.8.4") { module("commons-ne…

いろんなJava Webフレームワークで同じ画面を作ってみる(Ninja web framework編)

いろんなJava Webフレームワークで同じ画面を作ってみる(Ninja web framework編)です。 お題は、こちら。 公式サイト: Ninja web framework バージョン: 1.4 2年以上前と同じテーマの続編を今頃書くという。 Ninja web frameworkは、Play1みたいな感じの…

Xtendでアクティブアノテーションを作ってみる

Xtendは、Eclipse Foundationで開発されている言語です。JVM上で動く言語ですが、GroovyやScalaとは違いXtendのソースコードから、Javaのソースコードを生成するというアプローチをとっています。アクティブアノテーションという機能が追加されたみたいで、…

WindowsでRust

Rustは、Mozillaが開発している言語です。Geckoエンジンの次世代版Servoの開発に使っているそうな。 Windowsで使ってみようとふと思いました。 セットアップ MinGW(http://www.mingw.org/)をダウンロードしインストール。オプションのC++のコンパイラも入れ…

Ubuntu 12.10でのキーマップ変更

ちょい古のノートPCにUbuntu12.0をインストールしてみました。 一般的に広まってしまったキーボードの配列は、気にくわないのでキーマップを変更したくなるわけです。 デスクトップPCならば、Realforceとかhappy hacking keyboardにすればいいのですが、ノー…

サーバ上でJDBC接続を確認する簡単な方法

サーバ上でJDBC接続を確認する簡単な方法。Javaに含まれるjrunscriptを利用します。 以下は、Oracleの場合の例 % jrunscript -cp ojdbc6.jar -f - js> var p = new java.util.Properties(); js> p.setProperty('user', 'ユーザ名'); js> p.setProperty('pass…

JavaScriptで作るWebサーバ

JavaScriptでWebサーバを作るといっても、Rhinoです。 きしださんとこにあったコードの単なるJavaScript化ですが。 Javaがインストールされていれば、以下のテキストファイル一つで簡易的なWebサーバになってしまうわけです。webserver.js importClass(com.s…

Medaka 0.2.0リリース

Medaka 0.2.0をリリースしてみました。Medakaは、Javaで作られたオレオレアプリケーションサーバ、およびサーブレットコンテナ上でも動作するWebフレームワークです。 Wiki: https://bitbucket.org/t1000leaf/medaka/wiki/Home ダウンロード: https://bitbuc…

Medaka 0.1.0リリース

Medaka 0.1.0をリリースしてみました。Medakaは、Javaで作られたオレオレアプリケーションサーバです。 ダウンロード https://bitbucket.org/t1000leaf/medaka/downloads New Feature 基本機能に関しては、medaka-X.X.X.jar一つのみで起動できるように修正 M…

オレオレアプリケーションサーバを作ってみた

オレオレアプリケーションサーバをなんとなく作ってたんですが、ちょっとだけ形になってきたのでWikiにまとめて公開してみました。Medakaという名を与えました。 t1000leaf / medaka / wiki / Home — Bitbucket 相変わらずクッキーを扱うAPIとかないんで、ロ…

Gradle + eclipse + WTP

Gradle + eclipse + WTP の組み合わせでのプロジェクト作成をちょっと整理。まずは、ターミナルからappという名前のプロジェクトを作成する。 % APP=app % mkdir -p $APP/src/{main,test}/{java,resources,webapp} % mkdir -p $APP/src/main/webapp/WEB-INF …

GradleでDomaアプリをビルド

Gradleも1.0がリリースされたということで、GradleでDomaアプリをビルドするという課題が与えられました(誰にだ)。Domaはpluggable annotation processing api(APTとも呼ばれる)を使っており、ビルド設定が鬼門だったりするので。DomaのチュートリアルのGr…

オレオレ・アプリケーションサーバを作ってみる

なんとなく、JDKだけで、依存ライブラリなしでアプリケーションサーバを作ってみようと試みました。フレームワークでなく、アプリケーションサーバ。Servlet APIは無視です。 ソース 以下、使い方。 app.properties まずは、設定。 クラスパスが通っている所…

PostgreSQLのResultSetMetaData#getColumnName

地味な話ですが。 PostgreSQLのJDBCは、ResultSetMetaData#getColumnNameの挙動が他のDBのJDBCと違う。 selectするときにカラム名に別名をつけた場合、getColumnNameは元のカラム名、getColumnLabelは別名をとってくるんですが、PostgreSQLは、どっちも別名…

Stripes Frameworkどうよ。その6〜JSONリクエストのバインド

今どきは、Play frameworkやNode.js、Java EE6、Jerseyあたりを追うべきなのかもしれませんが、自分はStripes Frameworkいじってます。JSONリクエストをActionBeanにバインドできるように拡張してみます。Jacksonを使います。ActionBeanにリクエストマッピン…

GPlus Dialy Maker

GPlus Dialy Maker というものを作ってみました。過去のGoogle+への自分の投稿を確認しやすくする整形ツールです。本当は、Twitterでいうところのtwilog、facebookでのlogviewerみたいなものを作りたいと思ったんですが、Google+のAPIがまだちょっとしかない…

Hello World !

こんにちは世界!

[Java]Stripes Frameworkどうよ。その5〜拡張ポイント

Stripesには、拡張ポイントが用意されていて、内部で実行されるクラスの実装をいくつか置き換えることができます。 HandlesEventアノテーションでは、イベント名称を指定するのが必須なのですが、メソッド名をイベント名とするように拡張してみます。 まず空…

[Java]Stripes Frameworkどうよ。 その4 〜JSONレスポンスあるよ。

引き続きStripesです。 JSONのレスポンスを返す機能が標準でありました。まずは、ActionBean package action; import java.util.HashMap; import java.util.Map; import net.sourceforge.stripes.action.DefaultHandler; import net.sourceforge.stripes.act…

Stripes Framework どうよ。その3 〜Interceptorあるよ。

引き続きStripesです。 StripesにもInterceptorの機能が標準であり、色んなフェーズに共通の処理を差しこめるわけです。 package selva2; import jp.sf.amateras.mirage.integration.guice.Transactional; import jp.sf.amateras.mirage.session.Session; im…

Stripes Frameworkどうよ。その2 〜 かわいいURLあるよ。

JavaでURLをカスタマイズする場合、Url Rewrite Filter を使ったりすのですが、Stripesには、標準でその機能があります。しかーし、公式のサイトでもその詳細の説明が見つからない。。まず、クラスと、URLのデフォルトの紐づけについて。 /hoge/Calc.action…

Stripes Framework どうよ。

Java Web Framework である Stripes Framework を地味に使ってみています。EvernoteでStripes使ってるよー、みたいな記事がありましたが、日本ではマイナーで日本語の解説も少ない。。Web Frameworkを使うにあたり、挙動が理解しづらかったりするのが、バリ…

MirageをGroovyで使ってみる

ORマッパ―のMirageをGroovyから使うとシンプルなコードになるのではと思い、試してみました。以下のようなインターフェースになりました。 import mirage4g.Db def list = Db.list(""" SELECT * FROM BOOK WHERE AUTHOR = /*author*/'author' ORDER BY BOOK_…

オレオレJava Webフレームワークを作ってみる。その3

始まりはここ。今回は、ConfigとJSONレスポンスについて。 web.xml web.xmlで'webappRoot'にWebアプリケーションのルートになるベースパッケージ名を指定します。 <filter> <filter-name>actionfilter</filter-name> <filter-class>org.selva2.webframework.ActionFilter</filter-class> <init-param> <param-name>webappRoot</param-name> <param-value>webapp</param-value> </init-param></filter>

オレオレJava Webフレームワークを作ってみる。その2

始まりはここ。 JSP(入力画面) <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>input</title> </head> <body> <h1>足し算 入力</h1> <c:forEach var="v" items="${m.items}"> ${f:h(v)}<br/> </c:forEach> <form> <input type="text" ${f:text("arg1")} /> ${f:h(m.arg1)}<br/> +<br/> </br/></br/></form></body></html>

オレオレJava Webフレームワークを作ってみる。その1

以前から、Webフレームワークを妄想していたのですが、S2Utilが便利そうということでなんとなく作っています。 新しい発想はなく、色々、既存のフレームワークをパクってる感じです。。 以前の記事「いろんなJava Webフレームワークで同じ画面を作ってみる(I…

S2Utilでトラバース

指定パッケージ配下をトラバースするのって自力でちゃんとやろうとすると面倒だと思っていましたが、S2Utilを使うと簡単にできました。便利です。以下は、指定されたパッケージ配下でActionクラスを継承するクラスを拾う例です。 package webframework; impo…

いろんなJava Webフレームワークで同じ画面を作ってみる(Play!編)

いろんなJava Webフレームワークで同じ画面を作ってみる(Play!編)です。 お題は、こちら。 公式サイト: Home — Playframework バージョン: 1.1 このフレームワークは、他のフレームワークとは違った凄さがあります。 最初からこの企画に含めなかった自分…