java Web(3)
Servlet
是運行在Web服務器或應用服務器上的Java程序
在Web上創建動態內容的有效而強大的解決方案
由容器來管理生命周期與Web服務器交互
由Sun規範了其功能
Servlet部署:
一個Servlet必須有三個名稱:
1:是Servlet的名稱,
2:是Servlet類的完整名稱,
3:是映射的邏輯名稱
總結:
Java Servlet是運行在Web服務器或應用服務器上的Java程序
Servlet規範對Servlet功能進行了嚴格定義
Servlet API與容器進行通訊
Servlet的編碼和部署需要在web.xml中進行註冊
Servlet的生命周期由4個階段組成
SevletConfig對象為Servlet提供初始化參數
ServletContext對象屬於整個Web應用程序
使用Servlet處理Http的響應
HttpServletResponse對象用於操縱響應的HTTP頭
setHeader()
addHeader()
setIntHeader()
setDateHeader()
containsHeader()
setContentType()
addCookie()
重定項
response.sendRedirect("http://127.0.0.1:8080/lovobook/bar.html");
使用Servlet處理Http的請求
getMethod():獲取HTTP的請求方法,例如GET、POST等
getRequestURI():獲取請求的URI資源
getRequestURL():獲取請求的URL,包含協議名、服務器名或IP、端口號和請求資源但不包括查詢字符串參數
getQueryString():獲取請求URL後面的查詢字符串
getProtocol():獲取HTTP的協議名和版本號
getContextPath():獲取請求URI資源的上下文路徑
getServletPath():獲取Servlet的映射路徑
getParameter()獲取表單元素
request.getRequestDispatcher("/sucess.html").forward(request, response); 請求派發forward()方法意味著把請求和響應派發給別的資源後,就不會再去做任何處理了
request.getRequestDispatcher("/sucess.html").include(request, response); 請求派發include() 方法意味著請求別人幫助處理請求,但這並不是完全移交,只是暫時地把控制交給 別人
Servlet響應總結
請求URL時HTTP發出了多個請求
狀態碼告訴瀏覽器發送的內容及格式狀態
Servlet API與容器進行通訊
HttpServletResponse定義的常量來避免直接使用整數
在通過PrintWriter對象發送任何內容之前先調用 HttpServletResponse的setStatus()方法
為了讓Servlet發揮最大的效能,HttpServletResponse對象用於操縱響應的HTTP頭
getWrite()或者getOutputStream()方法傳送文本或者二進制內容給客戶端
sendRedirect方法實現重定向
HTTP響應頭“Refresh”會根據時間來控制響應
Servlet請求總結
HttpServletRequest對象主要用於處理分析請求
默認情況下,使用HTTP協議的GET方法提交請求
HTML表單通過“method”屬性使瀏覽器使用HTTP POST方法
GET/POST方法適用於不同場合
HttpServletRequest對象中最常用的方法是獲取請求表單參數
HttpServletRequest對象也可以得到請求中參數的原始字節數據
重定向和請求派發之間最大的區別在於,重定向讓客戶端瀏覽器來完成,而請求派發是在服務器端做工作
HttpServletRequest可以把一個對象用名字綁定在請求範圍內,並且進行訪問和刪除
java Web(3)