2015年7月17日 星期五

Servlet / JettyES 使用方法紀錄

Jetty ES 是一個嵌入式的 Servlet 框架,方便開發,使用方法跟servlet 幾乎都一樣,就連帶一起記錄。

Jetty ES: https://github.com/Lolikitty/JettyES

Router

Jetty ES Router 設定方式是透過程式,而不是 web.xml,透過 package server.http 的HttpServer.java 設定:
context.addServlet(new ServletHolder(new IndexHandle()), "/");

中間的 new IndexHandle() 是一個 class, 他放在 package server.http.servlet 裡面,每個class都要繼承 HttpServlet,底下各自會處理 doGet, do Post 方法。

File Server / JSP / Assets

資源檔案全部放在 package webapp.ROOT 底下,jsp / png... / html 都放在這裡。

Main Class

Jetty ES 和 servlet 不一樣,他有Main class,而 Main class 放在 package server 裡面。

Render JSP

這點和servlet都一樣,一起記錄:

req.setAttribute("Order", new int[]{12,3,3,3});
req.getRequestDispatcher("/index.jsp").include(req, res);

Print Writer

如果只是單純想回應頁面,就直接使用 try with resource 的方式設定 out:

try(PrintWriter out = res.getWriter()){
    out.print(200);   
}

URL parameter (RESTful)

想取得類似的參數:
/api2/oauth/profile/id_123546
後面的 id_123456 可以變成參數,在Router的網址設定請留下 xx/xx/* 成這樣,然後在 do[Method] 裡面,取得:

req.getPathInfo().substring(1);

這樣可以直接取得參數,用substring(1)是因為第 0 位是網址的倒斜線,因此把他去掉。

POST Method Body

要做註冊、輸入帳號密碼、輸入搜尋之類的東西,然後把表單傳到後台,由後台接收了話,就用:

req.getParameter("你表單的 name ");

沒有留言:

張貼留言

© ERIC RILEY , 自由無須告知轉貼
Background Japanese Sayagata by Olga Libby