個人學習之路_第三十章_servlet

servlet:小服務程序web


servlet是JavaWeb體系中的三大核心(servlet/Filter/Listener)之一,並且是最主要的那個.瀏覽器

做用:接受請求,處理請求,作出響應服務器

繼承體系:servlet(接口)-->GenericServlet(抽象類)-->HttpServlet(抽象類)url

servlet(接口):線程

init:初始化:servlet是第一次被訪問時初始化的,在服務器運行期間,servlet都只有一個對象
多個訪客使用的是多條線程.xml

destroy:銷燬:只有正常關閉服務器時纔會調用此方法.對象

servlet:服務:被訪問時調用此方法 繼承

在運行過程當中某一個類的對象永遠只有一個,叫單例模式接口

service( ServletRequest , ServletResponse ):服務,接收請求生命週期

Request對象表明的是瀏覽器發送到服務器的請求*
Response對象表明的是服務器向瀏覽器發送的響應*


getServletConfig:取得servletConfig

getServletinfo:取得servletinfo

【Servlet的生命週期】

建立:
第一次被訪問(默認),只初始化一次
經過修改web.xml配置文件把servlet的建立改成項目啓動即初始化
web.xml的servlet標籤中添加一個 load-on-startup 標籤,值爲整數,通常設置爲2(0-4,是一個優先級),
其中0和1是系統使用的,因此儘可能不要用.
銷燬:項目關閉(並非服務器的啓動和中止)

【servlet的路勁設置】 : url-pattern(過濾器也使用)

徹底匹配:不含通配符的
/aaa/bbb 訪問目標爲/aaa/bbb的請求,運行此servlet

路徑匹配:
/aaa/* /* /ab* ,前半段匹配便可

後綴匹配:
*.xxx 後半段匹配便可

默認: / 執行默認servlet(不用)

原則:
1.*要麼開頭,要麼結尾,不能在中間.
2.路徑若是不以*開頭,則必須以/開頭.(也就是說必須是絕對路徑)
3.配置文件中的路徑/aa/bb不帶項目名的
4.頁面中的超連接 表單提交的路徑,絕對路徑是要項目名的
緣由:1.配置文件是屬於某一個WEB項目的,因此不須要項目名
2.而對於頁面來講,瀏覽器面對的WEB服務器,而服務器中是能夠有多個項目的,因此
頁面中的絕對路徑的根表明的是服務器,因此之後要帶項目名
例如:http://localhost:8080/day34/hello.servlet
程序 配置文件中的路徑,服務端的WEB路徑:
配置文件:<url/pattern> /hello.servlet</url-pattern>,開頭的/表明的是當前項目的根
頁面中的路徑,客戶端的WEB路徑:
頁面:<a href="day34/hello.servlet">aaa</a> 開頭/表明的是服務器
特列:重定向


【servlet如何接受請求】

servlet的核心方法(servlet接口 servlet,HttpServlet : doGet doPost)接受兩個參數:請求和響應對象,這兩個對象是WEB服務器在接收到Http的請求
後,封裝的兩個JavaBean.請求和響應相關的信息都封裝在這兩個對象中
若是瀏覽器在發送請求是提交的表單的參數,則找Request對象來取得:
String getParameter(String name) <input type="" name="" value="">

【servlet如何發送響應:】

resp.getWriter().write("響應內容") 響應對象的輸出流(向瀏覽器輸出內容的流)

 

代碼分層:
servlet:負責流程,接受請求,調用哪一個service,響應什麼信息
service:負責實現功能(業務邏輯),涉及底層的數據時,調用dao層
dao:只負責數據的操做(CURD),不參與業務

代碼分層的總結: 1.爲了讓程序結構更加清楚 2.後續的維護和擴展工做中,變的更簡單 3.工程性(後續的可維護性和可擴展性)

相關文章
相關標籤/搜索