Servlet學習筆記(一、初學servlet)
描述
serlvet有serlvet容器管理,生成動態的內容,serlvet是平臺獨立的Java類
serlvet容器負責serlvet和使用者的通訊一級呼叫servlet的方法,servlet和客戶的通訊太用“請求/響應”的模式。
功能:
1、接收使用者請求的HTTP協議
2、返回一個HTTP的響應協議。讓瀏覽器再去解析
Serlvet介面
servletConfig介面代表當前servlet,封裝了當前servlet的配置資訊,代表當前servlet ( 區域性變數)。
1)、讀取當前servlet的配置資訊
getServletName() 獲取在web.xml檔案中配置的名字
getInitParameter(string)
獲取當前servlet指定名稱的初始化引數的值
getInitParameterNames()
獲取當前servlet所有初始化引數的名字組成的列舉
getServletContext()
獲取當前web應用的servletContext物件
//初始化 @Override public void init(ServletConfig config) throws ServletException { // TODO Auto-generated method stub System.out.println("init。。。。。。"); String servletName = config.getServletName(); System.out.println(servletName); //getInitParameter(string) 獲取當前servlet指定名稱的初始化引數的值 String username = config.getInitParameter("username"); System.out.println(username); //getInitParameterNames() 獲取當前servlet所有初始化引數的名字組成的列舉 Enumeration<String> names = config.getInitParameterNames(); while(names.hasMoreElements()){ //獲取當前初始化引數name名 String name = names.nextElement(); //獲取初始化引數名 String value = config.getInitParameter(name); System.out.println(name+","+value); } // getServletContext() 獲取當前web應用的servletContext物件 ServletContext context = config.getServletContext(); //獲取當前物件 System.out.println(context.getContextPath()); //獲取當前web的根目錄 }
2)、獲取servletContext物件:代表當前web應用 全域性變數
1、servlet就是一個普通的Java類
要實現servlet有三種方法:
實現javax.servlet.Servlet介面
繼承avax.servlet.GenericServlet
繼承avax.servlet.http.HttpServlet(推薦)
2、在web.xml配置和對映Servlet
配置web.xml <!-- 配置和對映servlet --> <!-- 註冊一個servlet --> <servlet> <!-- 註冊名 --> <servlet-name>hello</servlet-name> <!-- servlet全類名 --> <servlet-class>com.gcz.servlet.HelloServlet</servlet-class> <!-- 指定servlet建立和初始化時機 --> <load-on-startup>1</load-on-startup> </servlet> <!-- 配置servlet --> <servlet-mapping> <!-- 必須和註冊名保持一直 --> <servlet-name>hello</servlet-name> <!-- 宣告訪問路徑 --> <url-pattern>/hello</url-pattern> </servlet-mapping> 訪問路徑:http://localhost:8080/Days11_14/hello
3、servlet容器執行servlet,jsp等元件的執行環境
1)、負責管理servlet宣告週期
2)、宣告週期方法:由servlet容器負責呼叫
類中的方法:
構造器:只執行一次,第一次請求servlet時,建立servlet例項,呼叫該構造器 單例 init
初始化:只被呼叫一次,在建立好servlet例項後,立即呼叫,負責初始化servlet
service方法:被呼叫多次,每一請求都會呼叫service方法,用於響應請求
destroy登出:只調用了一次,在當前servlet所在的web應用被解除安裝的時候,使用者釋放 當前servlet所佔用的資源
4:<load-on-startup>:指定servlet建立和初始化時機
如果為負數,在第一次請求servlet時建立和初始化
如果是正數或0在當前web應用載入時建立該例項和初始化
數值越小越先被建立
同一個servlet可以被對映到url中,前提兩個註冊名一致
<servlet-mapping>
1)、在servlet對映到的URL中也可以使用*萬用字元,但是隻能有兩個中固定格式
一種是“*.副檔名”,另一種是一正斜槓(/)開頭並以“/*結尾,比如*.do 不可以,
兩個不能組合使用
三大域物件
ServletContext
HttpSession
HttpServletRequest
功能:
1)、獲取WEB應用程式的初始化引數
2)、獲取專案的真實路徑
3)、作為域物件,儲存多個各戶共享的資料