【Servlet】Servlet与MVC分层开发
處理數據的業務邏輯servlet與開發分層
一、處理數據的業務邏輯servlet
?
1、Servlet是什么
????1.1Servlet是運行在tomcat服務器端的一個java程序;
2、Servlet能干什么
???2.1Servlet通過http(超文本傳輸協議)來接收和響應web客戶端(瀏覽器)的請求
3、servlet的生命周期
①初始化(出生):init()
--沒有設置load-on-startup: 有訪問請求服務器資源的時候執行
????--設置load-on-startup=2:啟動的優先級,值越小優先級越高,服務器啟動該 方法執行;
--只執行一次
②運行:service()
--一定是訪問的情況下執行:執行多次
--方法的含義:由 servlet 容器調用,以允許 servlet 響應某個請求
--通過doGet(參數放到請求的頭,故有長度限制)還是doPost方法處理請求(參數放到請求體中,故無長度限制)
③銷毀:destroy()
--回收占用資源(比如內存、文件句柄和線程),一次;servlet從tomcat服務器取出的時候執行;
????--方法的含義:由 servlet 容器調用,指示將從服務中取出該 servlet
4、servlet執行順序
①web客戶端(瀏覽器)http://主機名:端口號/項目名
②tomcat服務器
③根據訪問的地址名在tomcat服務器去查找項目;
④在項目中查找web.xml
⑤在web.xml找到servlet()(doGet,doPost都有參數request,response)處理請求;
⑥給web客戶端(瀏覽器)一個響應;
5、映射地址
①servlet注冊:web.xml: <Servlet>
???????<Servlet-name></Servlet-name>
???<Servlet-class></Servlet-class>
???????</Servlet>
???????<Servlet-mapping>
???<Servlet-name></Servlet-name>
???<url-pattern></url-pattern>
???</Servlet-mapping> ?????
②一個servlet有多個訪問映射路徑:
???A、*.do(do隨意更改)
???B、/* (隨意目錄文件之分) ??
???C、/aaa/* ?(隨意目錄文件之分)
???優先級:c,b,a
6、servlet處理請求
servlet處理請求主要是基于servletRequest和servletResponse對象的。采用了轉發和重定向的思想。轉發只發生在服務端,客戶端是不知道的,不涉及重新發送請求的問題,所以數據不會被沖刷掉,request數據共享;而重定向,則是將處理到一定程度的數據回發給客戶端后,再次建立一次新的請求,上次請求中request對象中的數據信息不會保留
7、cookie(客戶端)與session(服務器端)
①會話
用戶打開一個瀏覽器到關閉瀏覽器,此過程成為一個會話
②cookie
| 設置cookie ?Cookie cookie = new?Cookie("name", "value"); ?????cookie2.setMaxAge(3000);//cookie存活時間 ?response.addCookie(cookie); ? 獲取cookie ????Cookie[] cookie = Request.getCookies();//獲取出來的是一組cookie對象 |
?
③session
| 設置session HttpSession session = req.getSession();//獲取session對象 ?????session.setAttribute(key,value); 獲取session |
?
?
④9個內置對象:
request,session,response, out,application ,page,pageContext,config,exception;
常用的:request(同意一次請求),pageContext(當前頁),session (全局)
⑤四大域對象:
| jsp | servlet |
| page | pageContext |
| request | HttpServletrequest |
| session | session |
| application | ServletContext |
?
?
二、開發分層
?
①分層思想:客戶端URL訪問?---> 表示層(JSP)---> servlet(控制器:1、獲取請求參數2、調用業務邏輯3、分發轉向)---> 業務層(調用業務邏輯層:service處理數據)---> 數據訪問層(dao)---> db(MySQL)
總結
以上是生活随笔為你收集整理的【Servlet】Servlet与MVC分层开发的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle PL/SQL小练习
- 下一篇: 《MyBatis技术原理与实战》之动态S