91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何利用Ruby實現Servlet

發布時間:2021-11-03 18:02:32 來源:億速云 閱讀:147 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關如何利用Ruby實現Servlet的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

Ruby也能寫servlet?是的,沒開玩笑,而且挺方便的,因為Ruby的標準庫就自帶了一個webrick,webrick本身又有一個serlvet容器,隨時隨地啟動一個web server,實在是很方便。

先看個最簡單的例子,輸出hello到瀏覽器:

require 'webrick' require 'net/http' include WEBrick    class HelloServlet < HTTPServlet::AbstractServlet   def hello(resp)  resp["Content-Type"]="text/html;charset=utf-8" resp.body="hello,ruby servlet"  end  private :hello  def do_GET(req,resp)  hello(resp)   end  def do_POST(req,resp)  hello(resp)   end end if $0==__FILE__   server=HTTPServer.new(:Port=>3000)   server.mount("/hello",HelloServlet)   trap("INT"){ server.shutdown }   server.start  end

是不是跟java很像?所有的serlvet都要繼承自HTTPServlet::AbstractServlet,并實現do_GET或者do_POST方法。在這行代碼:

server=HTTPServer.new(:Port=>3000)

我們啟動了一個HTTP Server,端口是3000,然后將HelloServlet掛載到/hello這個路徑上,因此,執行這個腳本后,可以通過http://localhost:3000/hello調用HelloServlet,簡單地只是顯示字符串"hello,ruby servlet"。

這個簡單的例子沒有任何交互,并且顯示的html也是寫死在腳本中,顯然更好的方式應該通過模板來提供,可以使用Ruby標準庫的erb模板。再給個有簡單交互的例子,現在要求用戶輸入姓名,然后提交給HelloServlet,顯示"hello,某某某"。嗯,來個最簡單的提交頁面:

﹤html﹥  ﹤body﹥  ﹤center﹥    ﹤form action="http://localhost:3000/hello" method="post"﹥   ﹤input type="text" name="name" size=10/﹥﹤br/﹥﹤br/﹥   ﹤input type="submit" name="submit" value="submit"/﹥    ﹤/form﹥    ﹤/center﹥  ﹤/body﹥  ﹤/html﹥

注意到,我們采用POST方法提交。再看看erb模板:

﹤html﹥  ﹤head﹥﹤/head﹥  ﹤body﹥   hello,﹤%=name%﹥  ﹤/body﹥  ﹤/html﹥

其中的name是我們將要綁定的變量,根據用戶提交的參數。***,修改下HelloServlet:

require 'webrick' require 'net/http' include WEBrick    class HelloServlet < HTTPServlet::AbstractServlet   def do_GET(req,resp)  do_POST(req,resp)   end  def do_POST(req,resp)  name=req.query["name"]  #讀取模板文件  template=IO.read(File.dirname(__FILE__)+"/hello.html")  message=ERB.new(template)  resp["Content-Type"]="text/html;charset=utf-8" resp.body=message.result(binding)   end end if $0==__FILE__   server=HTTPServer.new(:Port=>3000)   server.mount("/hello",HelloServlet)   trap("INT"){ server.shutdown }   server.start  end

與前一個例子相比,不同點有二,一是通過req.query["name"]獲得用戶提交的參數name,二是resp的body是由模板產生,而不是寫死在代碼中。在一些臨時報表、臨時數據的展示上,可以充分利用Ruby的這些標準庫來快速實現。

感謝各位的閱讀!關于“如何利用Ruby實現Servlet”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

思南县| 宽甸| 且末县| 金沙县| 呼和浩特市| 灵石县| 义乌市| 屏东县| 西峡县| 丰县| 湘西| 濮阳市| 五寨县| 安顺市| 法库县| 钦州市| 陕西省| 青阳县| 大厂| 平定县| 桂阳县| 靖远县| 白玉县| 嘉义县| 台北市| 黄浦区| 凤台县| 婺源县| 柘荣县| 饶河县| 乌拉特前旗| 郯城县| 盘锦市| 成安县| 马尔康县| 乐至县| 东山县| 峨山| 汉川市| 双江| 桓台县|