#chiroito ’s blog

Java を中心とした趣味の技術について

GAE+Ruby+Rails Servletのリクエストオブジェクトの取得

目的

GAE上で動くRailsのコントローラでServletのHttpServletRequestオブジェクトを取得する

環境

appengine-sdk 1.4.2
Ruby on Rails 2.3.11
Ruby 1.8.7
Rack 1.2
JRuby Runtime 1.6.0
JRuby-Rack 1.0.5

概要

 Google App Engine上で動くRuby on Railsの中でJava側のServletが受け取ったリクエストオブジェクトを使用したいことがあると思います。

オブジェクトの取得

Servletが受け取ったオブジェクトは非常に簡単に取得できます。
request.env['java.servlet_request']
たったのこれだけです。

サンプルソース

 次のサンプルソースはgetMethodメソッドを使用してアクセス方法(GETやPOSTなど)を取得して画面に表示するサンプルです。HttpServletRequestにどの様なメソッドが定義されているかはjavadocをご覧下さい。

books_controller.rb(一部抜粋)
include Java
class BooksController < ApplicationController
def index
@servletRequest = request.env['java.servlet_request']
@books = Book.all

respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @books }
end
end
#(略)
end
books/index.html.erb(一部抜粋)

Listing books


アクセス方法:<%=h @servletRequest.getMethod() %>
#(略)

参考

HttpServletRequest (Java EE 6 )
GAE on jRuby で Google アカウント認証をやってみる - @sugamasao.blog.title # => ”コードで世界を変えたい”