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.部署能夠覆蓋註解中指定的值