一.認識和熟悉Servlet
1.擴寫:Servlet = Server + let 服務器小程序
2.Servlet是一種服務器端組件
3.一個Servlet是一個服務器端的Java程序,負責接受客戶端請求,處理請求,生成響應返給客戶端
4.創建一個Servlet就是創建一個Servlet類,可通過實現Servlet接口創建一個Servlet類
5.創建Servlet的步驟(這裏給出的是實現Servlet接口創建Servlet的步驟):
(1)實現Servlet接口,創建一個Servlet類
(2)實現繼承的所有方法,將生成的throw new UnsupprortedOerationException("Not supported yet" )語句全部刪除
(3)在Service()方法中編寫代碼,處理請求
(4)在web-inf目錄下創建web.xml,然後添加Servlet的配置,其中url-pattern是用於設置訪問servlet的路徑。路徑以/開頭,後面自己定義路徑名稱即可。
(5)設置表單的action屬性爲要訪問的servlet的路徑,在設置表單的action屬性的時候,不需要添加/,直接寫servlet路徑即可
一個web程序在潯興之前,必須要進行打包,打包成一個war文件,然後在服務器上進行部署,才能進行訪問。
6.如何訪問一個Web程序
http://計算機名或ip地址:端口號/程序的上下文路徑
如:http://10.2.63.129:8084/LoginSystem/
7.如何訪問一個web程序中的頁面資源
http:計算機主機名或ip地址:端口號/程序的上下文路徑/頁面資源的路徑
如:http://10.2.63.129:8084/LoginSysterm/second.html
8.如何訪問一個Web程序的Servlet
http://計算機主機名或ip地址:端口號/LoginSysterm/ls
如果要追加參數http://localhost:8080/LoginSysterm/ls?username=anna&pwd=1234(不能有空格)
9.question:
一個servlet什麼時候被實例化:第一次收到請求的時候
二.Servlet生命週期
一個Servlet在第一次收到請求的時候被實例化,後續再次請求該servlet,則直接用相同的實例服務後續請求。
1.Servlet工作原理:
->Web容器收到請求
->查找對應的Servlet
->加載Servlet類
->實例化Servlet
->調用init()方法初始化servlet
->Web容器將請求傳遞給servlet,調用service方法處理請求,返回響應
->後續再次請求改Servlet,web容器直接使用相同的實力,調用service方法服務請求
問:指出第一次訪問一個Servlet,servlet方法的調用順序
init()->service()->doGet()/doPost()->destroy()
三:創建Servlet的三種方式
1.實現Servlet接口,需要實現Servlet的所有方法,主要是service()
2.繼承GenericServlet類
必須實現抽象方法service(),其他方法需要的話重寫即可
3.繼承HttpServlet類
可不實現任何方法,但是因爲要處理請求,所以一般重寫doGet()/doPost(),不需要重寫service,因爲service會根據請求提交方式調用doGet(),或doPOst().
四.表單提交方式
1.Get
Get方式提交一個表單,表單中的參數會追加到地址欄的url後面,相對不安全
且能夠發送的數據量有限制,具體看瀏覽器的限制
Get方式提交請求多事爲了從服務器請求數據,如百度的根據關鍵字檢索內容
2.Post
Post方式提交一個表單,表單中的參數不會追加到地址欄,而是作爲請求的正文發送,相對安全
能夠範松的數據量沒有限制,但是要看服務器的處理能力
Post方式提交數據多事爲了發送數據給服務器,多用於實現數據的增刪改,如註冊或修改個人消息
五,Servlet相關API(Application programming interface):Servlet相關的類和接口
1.ServletRequest
包含了操作請求的一些基本犯法,如獲取參數的一些方法:getParameter(),getPara,eterValues()等
2.ServletResponse
包含了一些操作響應的基本方法,包括setContentType(),getWriter()等
3.HttpServletRequest(繼承自ServletRequest)
在SerletRequest接口方法的基礎上添加更多方法,如操作請求報頭信息的方法,如getHeader()
4.HttpServletResponse
在ServletResponse接口的基礎上添加了更方法,包括用於設置響應報頭信息的方法,如serHeader()等,如果設置的包頭心事日期,整數等類型,可考慮調用對應方法,如setDateHeader(),setIntHeader()等
六.ServletConfig-Servlet配置接口
每個servlet都有一個Servlet-Config對象,包含該servlet的配置信息,如servlet的初始化參數
如果有一些初始數據是某個servlet要用的,可以定義爲該servlet的初始化參數
Servlet的配置信息會封裝到一個ServletConfig對象中,可以再servlet中通過調用getServletConfig()方法獲取該對象,進而通過該對象回去Servlet的初始化參數和其他配置信息
每個Servlet的ServletConfig獨享實在調用servelt的init()方法的時候傳入的
七.ServletContext-Servlet上下文接口
一個成熟只有一個上下文對象麼用於程序中共享數據
如果有一些初始數據是所有servlet或多個servlet要用的,可以考慮定義爲程序的初始化參數,叫做上下文參數