HttpServlet的工作機制
參考
http://www.cnblogs.com/johnny/articles/19688.aspx
http://www.donews.net/accpssh/archive/2004/08/03/58736.aspx
http://blog.csdn.net/chenyun2000/archive/2004/07/08/36817.aspx
HttpServlet類的功能
提供一個抽象類別,擴充該類可以建立一個適合http servlet的網站。
工作流程
1、接收用戶端的請求
2、處理請求
3、向用戶端發送響應
1、接收用戶端的請求
1.1 從form中接收請求:
<form action="helloWebWorld.action" method="post">
<p><input type="submit" value="Hello!" /></p>
</form>
1.2 在web.xml檔案中進行配置:
<servlet>
<servlet-name>webwork</servlet-name>
<servlet-class>com.opensymphony.webwork.dispatcher.ServletDispatcher</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>webwork</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
2、處理請求
2.1 進行初始化工作
初始化工作由init方法進行
2.2 處理請求
這裡由service方法處理,service方法根據請求的類型,調用相應的方法進行處理。下面是一個例子:
public void service( ServletRequest req, ServletResponse res )
throws ServletException, IOException{
HttpServletRequest request;
HttpServletResponse response;
try{
request = (HttpServletRequest)req;
response = (HttpServletResponse)res;
String m = request.getMethod();
if(m.equals("POST")){
doPost(request,response);
} else if(m.equals("GET")){
doGet(request,response);
}
}catch( ClassCastException e ){
//不是http請求。
}
}
public void doGet( HttpServletRequest req, HttpServletResponse resp )
throws ServletException, IOException{
resp.getWriter().write("您使用 Get 方法請求該 servlet。");
}
public void doPost( HttpServletRequest req, HttpServletResponse resp )
throws ServletException, IOException{
resp.getWriter().write("您使用 Post 方法請求該 servlet。");
}
2.3 收尾工作
此工作由destroy完成。一般不必重寫
3、向用戶端發送響應
對用戶端響應一般由doGet,doPost等方法進行,參考2.2的代碼。