展示用戶串列
? 當用戶登錄成功后,會進入到list.jsp頁面,在list.jsp 頁面中展示資料庫中所有的用戶資訊
? 當用戶進行登錄操作時,DAO中處理登錄方法的回傳值型別為User型別,回傳的user物件就封裝了當前登錄用戶的資訊,
? 在controller中,根據DAO回傳的物件是否為null,來判斷用戶是否登錄成功,
? 當用戶登錄成功后,跳轉頁面時,要把登錄物件傳遞給jsp頁面,
? 注意: 登錄物件要保存到session作用域中,
獲得所有用戶資訊
? 在UserController中獲得所有用戶資訊,并把用戶資訊(Listjsp頁面中進行展示,
? 在list.jsp中使用table展示資料,
? 實作回圈遍歷userList中所有用戶資訊,使用JSTL 標簽庫來遍歷userList,
? 使用JSTL 步驟
-
引入
JSTLjar包 -
在jsp頁面中匯入標簽庫
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -
使用
JSTL標簽
? 當用點擊登錄按鈕后,請求被提交到LoginServlet,處理用戶登錄請求
? 當用戶登錄成功時,LoginServlet和把請求轉發給UserServlet.
? UserServlet查詢所有用戶資訊,并共享資料,把資料交給list.jsp進行展示,
添加功能
? 點擊頁面中的添加用戶,進入到添加頁面,
? 輸入添加資訊后,點擊提交,實作添加功能,
? 在添加功能中,存在幾次請求?
? 2次請求,需要兩個servlet方法來處理
? USerServlet來已經實作了一個查詢串列的功能,
? 一個servlet類如何能夠處理多個請求?
? 前臺頁面,通過傳遞引數的方式來決定,servlet中執行哪一個方法,
修改功能
? 修改功能存在幾次請求?2次,需要兩個servlet方法來處理
? 進入修改頁面
? 資料回顯:把被修改的用戶原始資訊展示在修改頁面中
? 根據id來查詢用戶資訊,id由請求的URL來進行傳遞
?
<a href="https://www.cnblogs.com/usermanager/user/UserServlet?action=editUI&id=${user.id }">編輯用戶</a>
? UserServlet接收id后,呼叫service查詢用戶
? 實作修改功能
? 在修改頁面中點擊提交,把修改后的表單內容提交到servlet中的doEdit方法上,
? 方法的執行步驟:
-
接收表單資訊
-
查詢需要被修改的源物件
? 根據id查詢源物件,提交修改請求時,表單要傳遞當前用戶的id,
-
用接收的表單資訊修改源物件屬性
-
提交修改功能,呼叫service
EL運算式
? 用來獲得作用域中存放的資料(屬性)
? 在jsp頁面中${user },可以在作用域物件中獲得指定名字的屬性,
? EL運算式會執行PageContext介面中定義的findAttribute("user")方法,該方法會從最小的作用域開始依次查找每個作用域,pageContext--->request------>session--->application.如果找到相同名字的屬性,則停止查找,
? ${pageContext.servletContext.contextPath }動態獲得工程根路徑
? pageContext是EL運算式最重要的一個內置物件,
? EL運算式有11個
? 通過pageContext可以獲得jsp規范的其他8個內置物件,
jsp 的內置物件
? 在jsp頁面中,不需要創建就能夠使用的物件, 有9個,
? pageContext PageContext
? request HttpServletRequest
? session HttpSession
? application ServletContext
? response HttpServletResponse
? out PrintWriter
? config ServletConfig 初始化servlet資訊
? exception Trowable
? page Object 相當于java中的this
? 內置物件不用創建就可以使用,是因為jsp翻譯的servlet中已經都創建好了,
jsp的作業原理
? jsp本身就是一個servlet,
? 當jsp第一次被訪問時,會被容器翻譯為servlet檔案,然后容器會編譯、執行這個翻譯后的servlet檔案,
? 如果jsp檔案沒有發生改變,再次訪問時,不需要重新翻譯,
get請求和post請求的區別
? post請求執行通過表單來實作, method=“post"
? get請求的請求引數由地址欄進行傳遞,提交的資料了小
? http://localhost:8080/usermanager/deleteUser?action=delete&id=1
? post請求通過請求物件來封裝請求引數,提交的資料量大
過濾器
? Filter介面用來實作過濾器(攔截器)
? javaweb的過濾器是用來過濾請求物件和回應物件
? 通過過濾器處理請求回應物件的編碼,
? 開發過濾器的步驟:
? 撰寫一個類實作Filter介面,
? 為該類添加一個@WebFilter的注解
? 重寫介面中所有的抽象方法,3個抽象方法,
? 在doFilter方法體中處理攔截到的請求回應物件,
? 物件請求進行放行,
? 課堂作業:
? 使用過濾器顯示web資源(servlet jsp)處理請求花費的時間(以毫秒為單位)
監聽器
? 事件處理模型:4要素
? 事件源: 超鏈接
? 事件(型別): click事件
? 事件監聽器: onclick
? 事件服務程式: 執行的函式
? Javaweb規范中,事件源就是作用域物件,
? ServletRequest,HTTPSession,ServletContext
? 作用域物件的創建與銷毀
? 作用域物件屬性的改變
? 案例: 記錄當前網站的在線人數,
簡單(靜態)工廠模式
? 寫程式寫的是類,運行程式運行的是物件,
? java中創建物件的方式有幾種?1種,就new,
? java中獲得物件的方式有幾種?
? 自由戀愛: new 通過new創建物件,存在依賴性,系統的耦合度就會提高,
? 找百合: 工廠模式 解耦 new產生的耦合,
? 父母包辦: 依賴注入 DI spring IOC
? DAO模式存在4種角色:
? DAO介面
? DAO 實作類
? pojo物體類
? DAO工廠: 負責創建DAO實作類的物件
?
? 開閉法則:
? 對擴展開放 對修改關閉
? 一個軟體系統,要保證在不修改的前提下,實作擴展,
? 在盡量少修改的情況下實作擴展,
? 靜態工廠中要提供一個用來回傳指定介面型別的靜態方法,
?
? 工廠模式的缺點: 如果在系統開發時實作,工廠模式和單例模式,系統中充斥著大量的工程類和單例類,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/376825.html
標籤:Java
上一篇:我好像發現了一個Go的Bug?
