文章目錄
- JavaBean
- 通俗的講
- JavaBean的作用
- JavaBean(就是一個Java類)的定義
- 使用層面,Java分為2大類:
- Servlet
- 回顧純手工方法創建第一個Servlet
- 借助于Eclipse快速生成Servlet
- Servlet3.0,與Servlet2.5的區別:
- 項目根目錄:WebContent、src(所有的構建路徑)
- Servlet生命周期:5個階段
- Servlet API
- Servlet繼承關系
- Servlet使用層面
JavaBean
通俗的講
我們將 jsp中登錄操作的代碼 轉移到了LoginDao.java;
其中LoginDao類 就稱之為JavaBean。
JavaBean的作用
a.減輕的jsp復雜度
b.提高代碼復用(以后任何地方的登錄操作,都可以通過調用LoginDao實現)
JavaBean(就是一個Java類)的定義
滿足一下2點 ,就可以稱為JavaBean
a.public 修飾的類 ,public 無參構造b.所有屬性(如果有) 都是private,并且提供set/get (如果boolean 則get 可以替換成is)
使用層面,Java分為2大類:
a.封裝業務邏輯的JavaBean (LoginDao.java封裝了登錄邏輯)
邏輯可以將jsp中的JDBC代碼,封裝到Login.java類中 (Login.java)
b.封裝數據的JavaBean (實體類,Student.java Person.java )
數據對應于數據庫中的一張表
Login login = new Login(uname,upwd) ;//即用Login對象 封裝了2個數據(用戶名 和密碼)
封裝數據的JavaBean 對應于數據庫中的一張表 (Login(name,pwd)) 封裝業務邏輯的JavaBean 用于操作
一個封裝數據的JavaBean可以發現,JavaBean可以簡化 代碼(jsp->jsp+java)、提供代碼復用(LoginDao.java)
public void sleep(String name,String place, int time)
{}public void sleep(Person per)
{per.getName()per.getPlace()...
Servlet
回顧純手工方法創建第一個Servlet
編寫一個類,繼承HttpServlet
重寫doGet()、doPost()方法
編寫web.xml 中的servlet映射關系
借助于Eclipse快速生成Servlet
直接新建Servlet即可!(繼承、重寫、web.xml 可以借助Eclipse自動生成)
Servlet3.0,與Servlet2.5的區別:
Servlet3.0不需要在web.xml中配置,但 需要在 Servlet類的定義處之上編寫
注解@WebServlet(“url-pattern的值”) 匹配流程: 請求地址 與@WebServlet中的值
進行匹配,如果匹配成功 ,則說明 請求的就是該注解所對應的類
項目根目錄:WebContent、src(所有的構建路徑)
例如:
WebContent中有一個文件index.jsp
src中有一個Servlet.java
如果: index.jsp中請求 <a href="abc">...</a> ,則 尋找范圍:既會在src根目錄中找 也會在WebContent根目錄中找
如果:index.jsp中請求<a href="a/abc"></a>,尋找范圍:先在src或WebContent中找a目錄,然后再在a目錄中找abc
web.xml中的 /:代表項目根路徑
http://localhost:8888/Servlet25Project/
jsp中的/: 服務器根路徑
http://localhost:8888/
構建路徑、WebContent:根目錄
Servlet生命周期:5個階段
加載
初始化: init() ,該方法會在 Servlet被加載并實例化的以后 執行
服務 :service() ->doGet() doPost
銷毀 :destroy(), Servlet被系統回收時執行
卸載
init():
a.默認第一次訪問 Servlet時會被執行 (只執行這一次)
b.可以修改為 Tomcat啟動時自動執行
i.Servlet2.5: web.xml
<servlet>...<load-on-startup>1</load-on-startup></servlet>//其中的“1”代表第一個。//ii.Servlet3.0@WebServlet(value="/WelcomeServlet" ,loadOnStartup=1)
service() ->doGet() doPost :調用幾次,則執行幾次
destroy():關閉tomcat服務時,執行一次。
Servlet API
由兩個軟件包組成: 對應于HTTP協議的軟件包、對應于除了HTTP協議以外的其他軟件包
即Servlet API可以適用于任何通信協議。
我們學習的Servlet,是位于javax.servlet.http包中的類和接口,是基礎HTTP協議。
Servlet繼承關系
ServletConfig:接口
ServletContext getServletContext():獲取Servlet上下文對象 application
String getInitParameter(String name):在當前Servlet范圍內,獲取名為name的參數值(初始化參數)
ServletContext中的常見方法(application):
getContextPath():相對路徑
getRealPath():絕對路徑
setAttribute() 、getAttribute()
String getInitParameter(String name);在當前Web容器范圍內,獲取名為name的參數值(初始化參數)
Servlet3.0方式 給當前Servlet設置初始值:
@WebServlet( .... , initParams= {@WebInitParam(name="serveltparaname30",value="servletparavalue30") })
注意,此注解只 隸屬于某一個具體的Servlet ,因此無法為 整個web容器設置初始化參數 (如果要通過3.0方式設置 web容器的初始化參數,仍然需要在web.xml中設置)
HttpServletRequest中的方法:(同request),例如setAttrite()、getCookies()、getMethod()
HttpServletResponse中的方法:同response
Servlet使用層面
Eclipse中在src創建一個Servlet,然后重寫doGet() doPost()就可以 (doGet() doPost()只需要編寫一個)