2010-12-22 49 views
-1

我想知道如何在ruby中做web服務器編程。總之請解釋一下紅寶石提供什麼替代Servlets,JSP的如何在ruby中做web服務器編程?

+1

Rails是Ruby Web編程中的一把大槍。如果你不瞭解Ruby,那麼我不會推薦從Rails開始,因爲這將是一個非常陡峭的學習曲線,很多部分都沒有任何意義。 [Sinatra](http://www.sinatrarb.com/)是一個非常強大的Ruby輕量級Web環境。兩者之間是[Padrino](http://www.padrinorb.com/)。我建議從Sinatra開始,用Ruby和Ruby方式讓自己的雙腳溼潤,然後看看其他兩個,看看有什麼感覺。 – 2010-12-22 19:15:58

回答

1

如上所述,Rails是最流行的框架,雖然其他人也越來越受歡迎。

如果您一直在使用Java,那麼您習慣於聲明包含調度程序servlet的servlet,然後爲您的控制器操作定義自定義路由。在Rails中,路由是由會議驅動的。例如,如果您有User對象,那麼將resources :users放入您的config/routes.rb將創建路由到少數REST操作。 See this page的例子。您也可以爲更多特殊情況制定自定義路線,但是對於大多數使用情況,您的典型映射就足夠了。

您也習慣了JSP。 ERB與JSP非常相似,但更易於使用。您可以將服務器代碼置於<% %>標記之間,並且您可以放入HTML標記和JavaScript標記(儘管您的JavaScript應該確實在JavaScript文件中,但這是一個不同的討論),還有生成html的Rails助手(JSP具有類似的實用程序)。您還可以定義自定義表單構建器,以便您可以創建自己的幫助器,這在某些使用情況下非常方便。然而,ERB正在失去人氣,許多人更喜歡haml,它完全提取掉了html標記。但我從來沒有反對再培訓局。除此之外,Rails使用MVC模式,如果您使用過Spring-MVC,那麼您可能會熟悉MVC模式,但在Rails中,它的約定優於配置,所以當您的控制器中有一個名爲index的操作時,Rails會假設您在相應的視圖路徑中有一個index.html.erb。所以你通常不會指定你的視圖,儘管Rails可以很方便地響應不同的內容類型的請求。例如:

respond_to do |format| 
    format.html 
    format.js { render :json => @obj } 
end 

所以默認的響應會查找html.erb模板,但如果它是AJAX請求,它會發回一個JSON對象。您還可以返回xml和其他任何您想要的內容,但某些內容類型可能需要插件/寶石。

如果你習慣了Spring-MVC,我認爲你會發現Rails很熟悉,但另一方面也非常方便。玩的開心!

1

我認爲比你需要的是一個Web框架,在這種情況下(Ruby)的Ruby on Rails或Sinatra例如。

1

你可以閱讀的Rails的一些教程,瞭解它的MVC模式,而部分比較J2EE。

也有類似的想法,但在我看來,軌道更方便,你不需要寫這麼多的XML配置。通過使用Ruby語言,你可以有更高的效率。

1

查看http://railstutorial.com。您可以同時閱讀線上的代碼和代碼。到你完成的時候,你會學到很多東西。