第一章 Servlet

JavaEEe技術包括Servlet/Jsp、Java Message Service(JMS)、Enterprise JavaBeans(EJB)、JavaServer Faces(JSF),以及Java Persistence。運行JavaEE應用程序,須要一個JavaEE容器,如JBoss。html

 

 

ServletAPI中有4個Java包,包括:java

javax.servlet :包含定義Servlet與Servlet容器之間契約的類和接口。編程

javax.servlet.http :包含定義HTTP Servlet與Servlet容器之間契約的類和接口。數組

javax.servlet.annotation :包含對Servlet、Filter和Listener進行標註的註解。它還爲標註元件指定元數據。瀏覽器

javax.servlet.descriptor :包含爲Web應用程序的配置信息提供編程式訪問的類型。服務器

 

javax.servlet中主要的類型:cookie

Servlet > GenencServletsession

ServletRequestjsp

ServletReponse字體

ServletContext

ServletConfig

Requestpatcber :我接觸的比較少

Filter :我接觸的比較少

 

javax.servlet.http中主要的類型:

GenericServlet>HttpServlet

HttpServletRequest

HttpServletResponse

HttpSession

Cookie

 

 

Servlet容器爲每一個應用程序建立一個ServletContext實例。這個對象封裝context(應用程序)的環境細節。每一個context只有一個ServletContext。每一個Servlet實例還有一個封裝Servlet配置信息的ServletConfig。

 

Servlet接口定義的五個方法:

生命週期方法:

init(ServletConfig config)

service(Servlet request, Servlet response)

destroy()

非生命週期方法:

getServletInfo()

getServletConfig()

 

 

jsp頁面、html頁面、圖像、其餘資源應該放在應用程序目錄下。若是資源只想被servlet訪問,則放在WEB-INF目錄下。

 

 

ServletRequest接口中方法:

getContentLength() :獲得字體中字節數,不知道長度,則返回-1。

getContentType():獲得主題MIME類型,不知道類型,則返回null。

 

用於得到HTML表單域的值,或者得到查詢字符串的值

getParamter(String name)

getParamterNames()

getParamterMap()

getParamterValues()

 

 

ServletReponse接口中方法:

setContentType() :設置響應的內容類型

getWriter() :獲得輸出字符的流

getOutputStream() :獲得輸出二進制流

 

 

ServletConfig接口中方法:

getInitParameter(String name) :獲得某個初始參數的值

getInitParameterNames() :獲得全部初始參數名稱

getServletContext() :獲得ServletContext對象

 

 

保存在ServletContext中的數據稱爲屬性,ServletContext提供的處理屬性的方法:

getAttribute(String name)

getAttributeNames()

setAttribute(String name, Object object)

removeAttribute(String name)

 

 

HttpServletRequest接口中的新增的方法:

getContextPath() :返回請求的URI部分

getCookies() :返回一個Cookie對象數組

getHeader(String name) :返回指定的HTTP標頭

getQueryString() :返回這條請求的查詢語句

getMethod() :發送這條請求的方法

getSession() :返回與這個請求有關的session對象,找不到則新建立一個

 

 

HttpServletResponse接口中的新增的方法:

addCookie(Cooke cookie) :給這個響應對象添加cookie

addHeader(String name, String value) :給這個響應對象添加標頭

sendRedirect() :發送響應代號,將瀏覽器重定向到指定位置

 

 

處理HTML表單:

HTML輸入域(文本域、隱藏域或密碼域)或者文本域的值被看成一個字符串發送到服務器。對於空白的輸入域或者文本域將發送一條空白的字符串。所以,帶有一個輸入域名稱的ServletRequest.getParameter將永遠不會返回null。

 

HTML的select元素還會給標頭髮送一個字符串。若是沒有選擇select元素中的任何選項,那麼將會發送所顯示的選項值。

 

對於一個帶有多個值的選擇元素(即容許多個選項的select元素,用<select multiple>表示)是發送一個字符串數組,而且必須由ServletRequest.getParameterValues進行處理。

 

複選框比較特別一些。被選中的複選框將字符串 "on" 發送到服務器。沒有被選中的複選框則不發送任何內容到服務器,而且ServletRequest.getParameter(fieldname)返回null。

 

單選按鈕將被選按鈕的值發送到服務器。若是沒有選中任何按鈕,則不發送任何內容到服務器,而且ServletRequest.getParameter(fieldname)返回null。

 

若是一個表單包含多個同名的輸入元素,那麼全部的值都會提交,必須用ServletRequest.

getParameterValues來獲取它們。ServletRequest.getParameter將只返回最後一個值。

 

 

部署描述符好處:

1.能夠包含WebServlet沒有的元素

2.若是須要修改配置,如Servlet路徑,不須要從新編譯Servlet

3.能夠將一個初始參數傳遞給Servlet,而且不須要從新編譯Servlet類,就能夠對它們進編輯

4.部署能夠覆蓋註解中指定的值

相關文章
相關標籤/搜索