2010/07/24

Servlet & JSP: Servlet內的方法

Servlet Class 簡介

Eclipse幫我們產生的Code內主要有一大塊與三小塊
最外層的public Class Hello extends HttpServlet...
因為Hello這隻繼承 (extends) 了 HttpServlet 所以才可以當作Servlet使用(好像是廢話)

內有三個Method
public Hello()  <= 建構式,Class在實體化時會執行(我沒用過)
protected void doGet , doPost
這兩個是HTTP最常使用的傳送方法,其他還有一堆

GET與POST

一般打入URL網址,都是使用GET方法
GET傳送的資料會顯示於網址列,例如http://127.0.0.1/Hello?param=123&param2=456
Servlet收到後會使用doGet方法處理,並可接收到兩個參數 param 與 param2

POST傳送的資料在網址列看不到,通常用於Form表單的資料傳送;資料的保密性較高,可傳送的資料大小較大
當Servlet收到後會使用doPost方法處理
在Hello World 中,程式瑪是寫在doGet中,
代表當瀏覽器向Server要求http://127.0.0.1/gb/Hello時,Servlet會執行doGet內的程式碼;
反之,如使用Form表單並以POST方式傳送給Servlet,則會執行doPost內的程式碼。

Request, Response

有注意到doGet與doPost都有傳入HttpServletRequest request, HttpServletResponse response這兩個參數嘛?
這兩個參數大概可以稱為Servlet的主角,大部分的程式碼都是需要這兩個主角來演出
Request:瀏覽器傳給伺服器的要求
如網址傳來的參數, Session, Cookie等都是透過 request取得
EX: request.getParameter("name");  取得name的參數值
Response:要傳給瀏覽器的資訊
如要顯示於網頁的文字, 要求瀏覽器跳到其他頁面等
EX: response.sendRedirect("error.html");  要求瀏覽器跳轉到error.html頁面


在Hello World中使用了PrintWriter來輸出文字
PrintWriter out = response.getWriter();
之後就可以使用out物件來輸出文字到網頁上
out.println("Hello World");
println 表示列印文字到網頁上後換行
(換行指的是在原始碼中換行,要在HTML中換行請加上<br/>)

關於Servlet大概只想到這些

沒有留言:

張貼留言