javaWEB面試題匯總_第1頁
javaWEB面試題匯總_第2頁
javaWEB面試題匯總_第3頁
javaWEB面試題匯總_第4頁
javaWEB面試題匯總_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1 tomcat如何配置?首先進(jìn)官網(wǎng)下載一個(gè)解壓版(綠色版),解壓后在環(huán)境配置 JAVA_HOME中添加JDK的根目錄,然后新建名稱CLASS_PATH,添加.;JAVA_HOME%lib;%JAVA_HOME%libtools.jar 最后在 PATH中加上;JAVA_HOME%bin;2 jsp中靜態(tài)include和動(dòng)態(tài)include的區(qū)別?A :動(dòng)態(tài)包含用的元素是page,而且有兩種形式,靜態(tài)包含用的是file,只有一種形式B:生成的文件不同,動(dòng)態(tài)包含的兩個(gè)jsp文件各自生成各自的servlet和class文件,變量名可以重復(fù)。靜態(tài)包含是 將兩個(gè)jsp文件合二為一。生成一個(gè)以包含頁面命名

2、的servlet和class文件,變量名不能重復(fù)。C:動(dòng)態(tài)包含只有在執(zhí)行它的時(shí)候才加載。動(dòng)態(tài)包含: 靜態(tài)包含:3 forward 和 redirect 的區(qū)別?A:轉(zhuǎn)發(fā)發(fā)生在一次請(qǐng)求中,重定向發(fā)生在兩次請(qǐng)求中。B:轉(zhuǎn)發(fā)不會(huì)改變?yōu)g覽器地址,重定向會(huì)改變地址。C:轉(zhuǎn)發(fā)只能訪問內(nèi)部資源,重定向可以訪問外部資源D:轉(zhuǎn)發(fā)的性能要優(yōu)于重定向4 servlet 的體系結(jié)構(gòu)?A: Servlet (包含 init ()、 service()、 destroy ()方 法)B: GenericServletC: HttpServlet (包含 doGet ()和 doPost ()方法)D:自定義5 如何實(shí)現(xiàn)一

3、個(gè)自定義的 servlet?繼承 HttpServlet,并重寫 doget ()和dopost方法,在 web.xml 中進(jìn)行部署。6 servlet 的生命周期過程?Servlet 對(duì)象默認(rèn)第一次訪問的時(shí)候創(chuàng)建,服務(wù)器關(guān)閉的時(shí)候銷毀,當(dāng)servlet對(duì)象創(chuàng)建的時(shí)候會(huì)調(diào)用 init ()方法, 當(dāng)這個(gè)對(duì)象銷毀的時(shí)候會(huì)調(diào)用 destory ()方法。每次去訪問 servlet 對(duì)象的時(shí)候都會(huì)調(diào)用 service 方法7 jsp 三大指令Page include taglib (在 jsp 頁面中引入標(biāo)簽庫)8 WEB 四大作用域及應(yīng)用范圍A: page當(dāng)前 jsp 頁面范圍B: request

4、 一次請(qǐng)求當(dāng)中C: session一次會(huì)話中D: application 整個(gè) web 應(yīng)用9 jsp 的九大內(nèi)置對(duì)象request用戶端請(qǐng)求,此請(qǐng)求會(huì)包含來自GET/POST青求的參數(shù)response 網(wǎng)頁傳回用戶端的回應(yīng)pageContext 網(wǎng)頁的屬性是在這里管理session 與請(qǐng)求有關(guān)的會(huì)話期application servlet 正在執(zhí)行的內(nèi)容out 用來傳送回應(yīng)的輸出config servlet 的構(gòu)架部件page JSP網(wǎng)頁本身exception 針對(duì)錯(cuò)誤網(wǎng)頁,未捕捉的例外10 Jsp 和 servlet 的共同點(diǎn)和區(qū)別、應(yīng)用范圍?Jsp其實(shí)在本質(zhì)上就是 servlet,但是兩

5、者的創(chuàng)建方式不同:A servlet 完全由 java 代碼構(gòu)成, 是 java 的一個(gè)類。 擅 長(zhǎng)于流程控制和事務(wù)處理,通過 servlet 來生成動(dòng)態(tài)網(wǎng)頁 很不直觀。 jsp 由 jsp 標(biāo)簽和 html 代碼構(gòu)成,可以方便的 編寫動(dòng)態(tài)網(wǎng)頁。B 在 mvc 模型中, jsp 屬于 view 視圖, 而 servlet 屬于 controller 流程控制層最主要的不同點(diǎn)在于 servlet 的應(yīng)用邏輯是在 java 文件 中,并且完全從表示層中的 html 里分離出來, 而 jsp 是 java 和 html 組合成一個(gè)擴(kuò)展名為 .jsp 的文件。11 MVC的各個(gè)部分都有那些技術(shù)來實(shí)現(xiàn)?

6、如何實(shí)現(xiàn)?答:MVC 是 Model - View - Controller 的簡(jiǎn)寫。Model代表的是應(yīng)用的業(yè)務(wù)邏輯(通過JavaBean, EJB組件實(shí)現(xiàn)),View是應(yīng)用的表示面(由JSP頁面產(chǎn)生)Controller是 提供應(yīng)用的處理過程控制(一般是一個(gè)Servlet),通過這種設(shè)計(jì)模型把應(yīng)用邏輯,處理過程和顯示邏輯分成不同的組件 實(shí)現(xiàn)。這些組件可以進(jìn)行交互和重用。11 jsp 中如何讀取客戶端的請(qǐng)求?如何獲取某個(gè) jsp 頁面的 真實(shí)路徑?獲取請(qǐng)求: request.getparameter( “)” 獲取路徑: 12 cookie 和 session 的區(qū)別和作用,及應(yīng)用范圍, s

7、ession 的 工作原理?作用:可以利用 cookie 和 session 包含信息的任意性來篩 選并維護(hù)這些信息,以判斷在 http 傳輸中的狀態(tài)。最典型的 應(yīng)用就是在用戶注冊(cè)的時(shí)候判斷用戶是否已經(jīng)登錄網(wǎng)站,會(huì) 給出用戶提示信息,以便在下一次進(jìn)入此網(wǎng)站或者登錄的時(shí) 候簡(jiǎn)化進(jìn)入的手續(xù),例如QQ。還有一個(gè)作用就是在購物車中,用戶在同一網(wǎng)站選擇了不同的商品,這些信息都會(huì)存儲(chǔ) 在cookie或者session,在付款的時(shí)候會(huì)得到提示信息??傊?,cookie 和 session 就是能夠記錄客戶狀態(tài)的技術(shù)。 只要 cookie 能夠做到的 session 都能做到。Cookie 主要是用來存儲(chǔ)在客戶

8、端上面的數(shù)據(jù),減少服務(wù)器的儲(chǔ)存壓力,不夠安全,客戶端可以清除 cookie。Session 主要是用來存儲(chǔ)在服務(wù)器上面的數(shù)據(jù),安全, 但是占內(nèi)存。Session 用于保存每個(gè)用戶的專用信息 . 每個(gè)客戶端用戶 訪問 時(shí) , 服 務(wù)器 都 為 每 個(gè) 用 戶 分 配 一 個(gè)唯 一 的 會(huì) 話 ID (Session ID) . 她的生存期是用戶持續(xù)請(qǐng)求時(shí)間再加上一段 時(shí)間(一般是30分鐘左右Session中的信息保存在 Web服務(wù) 器內(nèi)容中 ,保存的數(shù)據(jù)量可大可小 .當(dāng) Session 超時(shí)或被關(guān)閉 時(shí)將自動(dòng)釋放保存的數(shù)據(jù)信息.由于用戶停止使用應(yīng)用程序后它仍然在內(nèi)存中保持一段時(shí)間,因此使用 Se

9、ssion 對(duì)象使保存用戶數(shù)據(jù)的方法效率很低.對(duì)于小量的數(shù)據(jù) ,使用 Session 對(duì)象保存還是一個(gè)不錯(cuò)的選擇Cookie 用于保存客戶瀏覽器請(qǐng)求服務(wù)器頁面的請(qǐng)求信息 , 程序員也可以用它存放非敏感性的用戶信息,信息保存的時(shí) 間可以根據(jù)需要設(shè)置 .如果沒有設(shè)置 Cookie 失效日期 ,它們僅 保存到關(guān)閉瀏覽器程序?yàn)橹? 如果將 Cookie 對(duì)象的 Expires 屬性設(shè)置為 Minvalue, 則表示 Cookie 永遠(yuǎn)不會(huì)過期 .Cookie 存儲(chǔ) 的數(shù)據(jù)量很受限制,大多數(shù)瀏覽器支持最大容量為4K,因此不要用來保存數(shù)據(jù)集及其他大量數(shù)據(jù).由于并非所有的瀏覽器都支持Cookie,并且數(shù)據(jù)信

10、息是以明文文本的形式保存在客 戶端的計(jì)算機(jī)中 ,因此最好不要保存敏感的 ,未加密的數(shù)據(jù) ,否 則會(huì)影響網(wǎng)站的安全性。Session工作原理(1) 當(dāng)有 Session 啟動(dòng)時(shí),服務(wù)器生成一個(gè)唯一值,稱為Session ID (好像是通過取進(jìn)程ID的方式取得的)。(2) 然后,服務(wù)器開辟一塊內(nèi)存,對(duì)應(yīng)于該Session ID。服務(wù)器再將該Session ID寫入瀏覽器的cookie。服務(wù)器內(nèi)有一進(jìn)程,監(jiān)視所有Session的活動(dòng)狀況,如果有 Session 超時(shí)或是主動(dòng)關(guān)閉,服務(wù)器就釋放改內(nèi)存塊。(5)當(dāng)瀏覽器連入IIS時(shí)并請(qǐng)求的ASP內(nèi)用到Session時(shí),IIS 就讀瀏覽器 Cookie 中

11、的 Session ID。然后,服務(wù)檢查該 Session ID所對(duì)應(yīng)的內(nèi)存是否有效。(7) 如果有效,就讀出內(nèi)存中的值。(8) 如果無效,就建立新的Session。13 Session域?qū)ο蟮纳芷??Session對(duì)象在第一次執(zhí)行request.getSession()的時(shí)候創(chuàng)建,在服務(wù)器關(guān)閉、session失效/失效(默認(rèn)30分鐘)或者 手動(dòng)銷毀的時(shí)候銷毀。Session的作用范圍在一次會(huì)話中。14 servlet的核心類有哪些,各有什么特點(diǎn)?A servletContextServlet容器在加載應(yīng)用時(shí)會(huì)創(chuàng)建servletContext域?qū)ο螅碇?dāng)前整個(gè)javaWeb應(yīng)用(全局)s

12、etAttribute ( String name) 存儲(chǔ)參數(shù)getAttribute ( String name)獲取參數(shù)B servletConfig可以獲取 WEB-INF配置文件init-param里面的值(非全局,之恩能夠獲取當(dāng)前servlet里面的配置數(shù)據(jù))獲取指定參數(shù)名字的值。注意:init-param 只能放在servlet-class配置標(biāo)簽后面String value = getServletConfig().getlnitParameter(ppp);C HttpServletResponse 響應(yīng)getOut()sendRedirect ()D HttpServletR

13、equest圭寸裝了所有請(qǐng)求15 JDBC如何進(jìn)行事務(wù)處理?Coon.setAutoCommit(false)開啟事務(wù)Cmit提交事務(wù)Coon.rollback回滾事務(wù)16使用jdbc對(duì)數(shù)據(jù)庫進(jìn)行增刪改查的步驟?A:注冊(cè)驅(qū)動(dòng)Class.forName( Com.mysql.jdbc.Driver ”);B:得到連接Connectioncoon=DriverManager.Coonnection( jdbc:mysql:/localhost:3306/day01,root , root ”;C:準(zhǔn)備sql語句Stri ngsql = i nsert into staff values(?,?,?

14、,?);D:獲得 preparestatement預(yù)編譯對(duì)象PreparedStatementps=conn .prepareStatement( sql );E:執(zhí)行sql語句ps.setInt(1,22);ps.setStri ng(2,鐵楊);ps .setInt(3, 23000);ps .setInt(4, 1);int n = ps.executeUpdate();if ( n 0) System. out .println( 添加成功 ); else System. out .println( 添加失敗 );F: 關(guān)閉連接ps .close();conn .close();Hib

15、ernate17 hibernate 的核心配置 hibernate.cfg.xml 文件有什么作用?A:數(shù)據(jù)庫連接信息。必選屬性有五個(gè)(數(shù)據(jù)庫驅(qū)動(dòng),數(shù) 據(jù)庫 url ,數(shù)據(jù)庫連接用戶名, 數(shù)據(jù)庫連接密碼, 數(shù)據(jù)庫方言 選最短的那個(gè))B: hibernate 的相關(guān)特性。 可選屬性有三個(gè) (將 sql 語句 打印到控制臺(tái);格式化 sql 語句;自動(dòng)建表選擇 update )C:實(shí)體類映射文件,加載實(shí)體類映射到核心配置文件18 hibernate 對(duì)象的三大狀態(tài)瞬時(shí):沒有id,沒有在session緩存中持久:有id,在session緩存中游離:有id,沒有在session緩存中持久化 : 持久化

16、狀態(tài)的對(duì)象 ,會(huì)在事務(wù)提交時(shí) ,自動(dòng)同步 到數(shù)據(jù)庫中 .我們使用 hibernate 的原則 .就是將對(duì)象轉(zhuǎn)換為持 久化狀態(tài) .Spring19 什么是 spring?Spring 是一個(gè)輕量級(jí)的 java 開源框架,它是為了解決 企業(yè)開發(fā)的復(fù)雜性而創(chuàng)建的。 它的主要優(yōu)勢(shì)之一就是分層 架構(gòu)。Spring的核心就是反轉(zhuǎn)控制和面向切面。簡(jiǎn)單來說,spring 就是一個(gè)分層的(一站式)輕量級(jí)的開源框架。反轉(zhuǎn)控制(IOC):就是將對(duì)象的創(chuàng)建權(quán)交給了spring。作用就是實(shí)現(xiàn)了程序的解耦合。依賴注入(DI):需要有ioc的環(huán)境,創(chuàng)建這個(gè)類的過程 中, spring 將類的依賴的屬性設(shè)置進(jìn)去。Spring

17、 負(fù)責(zé)管理其他框架所有的對(duì)象。20 spring 容器及 applicationContext.xml 配置Spring 的 容 器 是 applicationContext 。 在 加 載 applicationContext.xml 時(shí)創(chuàng)建。applicationContext.xml :vbean 標(biāo)簽:用來描述管理容器對(duì)象的標(biāo)簽 vname 屬性:起得別名,根據(jù)該名稱獲得對(duì)象!性:被管理對(duì)象的完整類名屬性:默認(rèn)用singleton,單例對(duì)象。在spring 容器中只存在一個(gè)實(shí)例。大多數(shù)用這個(gè),可 以不寫。 Prototype 多例,每次再獲得才會(huì)創(chuàng)建 .每 次創(chuàng)建都是新的對(duì)象.整合st

18、ruts2時(shí),ActionBean必 須配置為多例的。 因?yàn)?struts2 每次請(qǐng)求都會(huì)創(chuàng)建一 個(gè)新的 action 。導(dǎo)入其他 spring 配置文件:21 spring 屬性注入:A: set 方法注入。最重要的一種B: 構(gòu)造方法注入。C: p 名稱空間注入D: spel 注入Mybatis22 JDBC的問題總結(jié):A:數(shù)據(jù)庫連接,使用時(shí)就創(chuàng)建,不使用立即釋放,對(duì)數(shù) 據(jù)庫進(jìn)行頻繁連接開啟和關(guān)閉,造成數(shù)據(jù)庫資源的浪費(fèi), 影響數(shù)據(jù)庫性能。 解決 :在 SqlMapConfig.xml 中配置數(shù)據(jù)鏈接池,使用連接池管理數(shù)據(jù)庫鏈接。B: 將 sql 語句硬編碼到 java 代碼中,如果 sql

19、語句修改, 需要重新編譯 java 代碼,不利于系統(tǒng)維護(hù)。設(shè)想:將 sql 語句配置在 xml 配置文件中, 即使 sql 變化,不需要對(duì) java 代 碼 進(jìn) 行 重 新 編 譯 。 解 決 : 將 Sql 語 句 配 置 在 XXXXmapper.xml 文件中與 java 代碼分離。C: 向 preparedStatement 中設(shè)置參數(shù),對(duì)占位符號(hào)位置和 設(shè)置參數(shù)值, 硬編碼在 java 代碼中, 不利于系統(tǒng)維護(hù)。 設(shè)想: 將 sql 語句及占位符號(hào)和參數(shù)全部配置在xml 中。 解決 :Mybatis 自動(dòng)將 java 對(duì)象映射至 sql 語句,通過 statement 中 的 par

20、ameterType 定義輸入?yún)?shù)的類型。D: 從 resutSet 中遍歷結(jié)果集數(shù)據(jù)時(shí), 存在硬編碼, 將獲取 表的字段進(jìn)行硬編碼,不利于系統(tǒng)維護(hù)。設(shè)想:將查詢的 結(jié)果集,自動(dòng)映射成 java 對(duì)象。 解決 :Mybatis 自動(dòng)將 sql 執(zhí)行結(jié)果映射至 java 對(duì)象,通過 statement 中的 resultType 定義輸出結(jié)果的類型。23 什么是 mybatis ?MyBatis 本是 apache 的一個(gè)開源項(xiàng)目 iBatis, 2010 年這個(gè) 項(xiàng)目由 apache software foundation 遷移到了 google code ,并 且改名為 MyBatis ,實(shí)

21、質(zhì)上 Mybatis 對(duì) ibatis 進(jìn)行一些改進(jìn)。MyBatis 是一個(gè)優(yōu)秀的持久層框架,它對(duì)jdbc 的操作數(shù)據(jù)庫的過程進(jìn)行封裝,使開發(fā)者只需要關(guān)注SQL 本身,而不需要花費(fèi)精力去處理例如注冊(cè)驅(qū)動(dòng)、創(chuàng)建connection 、創(chuàng)建statement 、手動(dòng)設(shè)置參數(shù)、 結(jié)果集檢索等 jdbc 繁雜的過程代 碼。Mybatis 通過 xml 或注解的方式將要執(zhí)行的各種 statement (statement 、 preparedStatemnt 、 CallableStatement )配置起 來,并通過 java 對(duì)象和 statement 中的 sql 進(jìn)行映射生成最終 執(zhí)行的 sql

22、 語句,最后由 mybatis 框架執(zhí)行 sql 并將結(jié)果映射 成 java 對(duì)象并返回。24 mybatis 架構(gòu)A: mybatis 配置 SqlMapConfig.xml ,此文件作為 mybatis 的全局配置文件,配置了 mybatis 的運(yùn)行環(huán)境等信息。 mapper.xml 文件即 sql 映射文件,文件中配置了操作數(shù)據(jù)庫 的 sql 語句。此文件需要在 SqlMapConfig.xml 中加載。B:通過mybatis環(huán)境等配置信息構(gòu)造 SqlSessionFactory即 會(huì)話工廠C:由會(huì)話工廠創(chuàng)建sqlSession即會(huì)話,操作數(shù)據(jù)庫需要通 過 sqlSession 進(jìn)行。D

23、: mybatis 底層自定義了 Executor 執(zhí)行器接口操作數(shù)據(jù) 庫, Executor 接口有兩個(gè)實(shí)現(xiàn),一個(gè)是基本執(zhí)行器、一個(gè)是緩存執(zhí)行器E: Mapped Statement 也是 mybatis 一個(gè)底層封裝對(duì)象, 它 包裝了 mybatis 配置信息及 sql 映射信息等。 mapper.xml 文件 中一個(gè) sql 對(duì)應(yīng)一個(gè) Mapped Statement 對(duì)象, sql 的 id 即是 Mapped statement 的 id 。F: Mapped Statement 對(duì) sql 執(zhí)行輸入?yún)?shù)進(jìn)行定義,包括 HashMap、基本類型、pojo , Executor 通過

24、Mapped Statement 在執(zhí)行 sql 前將輸入的 java 對(duì)象映射至 sql 中,輸入?yún)?shù)映射 就是 jdbc 編程中對(duì) preparedStatement 設(shè)置參數(shù)。G: Mapped Statement 對(duì) sql 執(zhí)行輸出結(jié)果進(jìn)行定義, 包括 HashMap、基本類型、pojo , Executor 通過 Mapped Statement 在執(zhí)行 sql 后將輸出結(jié)果映射至 java 對(duì)象中,輸出結(jié)果映射 過程相當(dāng)于 jdbc 編程中對(duì)結(jié)果的解析處理過程。25:#和$的區(qū)別?# 表 示 一 個(gè) 占 位 符 號(hào) , 通 過 # 可 以 實(shí) 現(xiàn) preparedStatemen

25、t 向占位符中設(shè)置值, 自動(dòng)進(jìn)行 java 類型和 jdbc 類型轉(zhuǎn)換, #可以有效防止 sql 注入。 #可以接收簡(jiǎn)單 類型值或 pojo 屬性值。 如果 parameterType 傳輸單個(gè)簡(jiǎn)單 類型值, #括號(hào)中可以是 value 或其它名稱。$表示拼接 sql 串,通過 $可以將 parameterType 傳 入的內(nèi)容拼接在 sql 中且不進(jìn)行 jdbc 類型轉(zhuǎn)換,$可以接收簡(jiǎn)單類型值或pojo屬性值,如果parameterType傳輸單個(gè)簡(jiǎn)單類型值,$括號(hào)中只能是value。26 sqlMapConfig.xml 配置文件內(nèi)容?A: properties (屬性)3.Z prope

26、rties (屬性)SqlM日pCnnfig.xml可叨.弓用ev日屬性文件中的配置信息如下:在 classpath 下定義文件;jdbc.driver=com.my5ql.jdbc,Driverjdb 匚.url=jdbc: my sql: /local ho st; 3306/myba 丈 ldbc. username=roAaXVX.jdbc.password=mysqlSqlMapConflgJiinl 引用如下: property property propertypr*operty nme = ,rdrive尸val u*$dbc dri ver */ naiie-uri valu

27、e= $jdhc. urL / name-,rusezu艇yalu$jdbcr usernome M/ nwrne = pi wo 廠t/ value =pas sward u/B: settings (全局配置參數(shù))C: typeAliases (類型別名)3.4.2自定義別名:在 SqlMapConfig.xml 中:typAlias allas = p,ur type = hhcn, i re口st. my七口-pt?-Ueq戶 D: typeHandlers (類型處理器)E:objectFactory (對(duì)象工廠)F:plugins (插件)G:environments (環(huán)境集合屬

28、性對(duì)象) environment (環(huán)境子屬性對(duì)象)H: transactionManager (事務(wù)管理)I: dataSource (數(shù)據(jù)源)J:mappers (映射器)3.6 (mappers (映射器Mapper配置的幾種方法:3.6.1 cmapper resource= M /快用相對(duì)于類路徑的資源力口:re50urcesaljiap/User krI /362 使用完全限走路徑如匕 mtapper url=file! /D! Vvarkspaee 3pi-ft?utreiiiybatis OIVsonfisXaqlftSEVUser-Kml3.63 使用mapper接口類路彳空

29、如:miapper classn. it cast, nybatis. mapper. Js&rMappex/)1注意:此種方法要求皿叩Per接口名稱和nappex映融文件名稱相同,且放在同十目錄中3.6.4 注刪指定包下的所有mapper接口如: 注意:I1W防法要求JVBMex接口名稱和MMex映射文件名稱相同,且放在同一目錄中。27.mybatis 復(fù)習(xí)課程復(fù)習(xí):mybatis是什么?mybatis是一個(gè)持久層框架,mybatis是一個(gè)不完全的ORM框架。sql語句需要程序員自己去編寫,但是mybatis也有映射(輸入?yún)?shù)映射、輸出結(jié)果映射)。mybatis入門門檻不高,學(xué)習(xí)成本低,讓程

30、序員把精力 放在 sql 語句上, 對(duì) sql 語句優(yōu)化非常方便, 適用與需求變化 較多項(xiàng)目,比如互聯(lián)網(wǎng)項(xiàng)目。mybatis 框架執(zhí)行過程:1、配置 mybatis 的配置文件, SqlMapConfig.xml (名 稱不固定)2、通過配置文件,加載mybatis 運(yùn)行環(huán)境,創(chuàng)建SqlSessionFactory 會(huì)話工廠SqlSessionFactory在實(shí)際使用時(shí)按單例方式。3、通過 SqlSessionFactory創(chuàng)建 SqlSessionSqlSession是一個(gè)面向用戶接口 (提供操作數(shù)據(jù)庫方 法),實(shí)現(xiàn)對(duì)象是線程不安全的,建議 sqlSession 應(yīng)用場(chǎng)合 在方法體內(nèi)。4、調(diào)

31、用 sqlSession 的方法去操作數(shù)據(jù)。如果需要提交事務(wù),需要執(zhí)行SqlSession的commit() 方法。5、釋放資源,關(guān)閉 SqlSession mybatis 開發(fā) dao 的方法:1、原始 dao 的方法需要程序員編寫 dao 接口和實(shí)現(xiàn)類需要在dao實(shí)現(xiàn)類中注入一個(gè) SqlSessionFactory工2、mapper 代理開發(fā)方法(建議使用)只需要程序員編寫 mapper 接口(就是 dao 接口) 程序員在編寫 mapper.xml( 映射文件 )和 mapper.java 需要遵循一個(gè)開發(fā)規(guī)范:1、mapper.xml 中 namespace 就是 mapper.jav

32、a 的類 全路徑。2、mapper.xml 中 statement 的 id 和 mapper.java 中 方法名一致。3、mapper.xml 中 statement 的 parameterType 指定 輸入?yún)?shù)的類型和 mapper.java 的方法輸入 參數(shù)類型一致。4、mapper.xml 中 statement 的 resultType 指定輸出 結(jié)果的類型和 mapper.java 的方法返回值類型一致。SqlMapConfig.xml 配置文件:可以配置 properties 屬 性、別名、 mapper 加載。輸入映射:parameterType :指定輸入?yún)?shù)類型可以簡(jiǎn)單

33、類型、 pojo 、 hashmap 。對(duì)于綜合查詢,建議 parameterType 使用包裝的 pojo ,有利于系統(tǒng) 擴(kuò)展。輸出映射:resultType :查詢到的列名和 resultType 指定的 pojo 的屬性名致,才能映射成功reusltMap :可以通過 resultMap 完成一些高級(jí)映射。 如果查詢到的列名和映射的 pojo 的屬性名不一 致時(shí),通過 resultMap 設(shè)置列名和屬性名之間的對(duì)應(yīng)關(guān)系 (映 射關(guān)系)??梢酝瓿捎成洹8呒?jí)映射:將關(guān)聯(lián)查詢的列映射到一個(gè) pojo 屬性中。( 一對(duì)一)將關(guān)聯(lián)查詢的列映射到一個(gè)Listvpojo中。(一對(duì)多)動(dòng)態(tài)sql:(重點(diǎn)

34、)if 判斷(掌握)whereforeachsql 片段(掌握)課程安排:對(duì)訂單商品數(shù)據(jù)模型進(jìn)行分析。高級(jí)映射:(了解)實(shí)現(xiàn)一對(duì)一查詢、一對(duì)多、多對(duì)多查詢。延遲加載查詢緩存一級(jí)緩存二級(jí)緩存(了解 mybatis 二級(jí)緩存使用場(chǎng)景) mybatis 和 spirng 整合(掌握) 逆向工程(會(huì)用)Springmvc28 springmvc 介紹Spring Web MVC 是一種基于 Java的實(shí)現(xiàn)了 Web MVC 設(shè)計(jì)模式的請(qǐng)求驅(qū)動(dòng)類型的輕量級(jí) Web 框架,即使用了 MVC 架構(gòu)模式的思想, 將 web 層進(jìn)行職責(zé)解耦, 基于請(qǐng)求驅(qū)動(dòng)指 的就是使用請(qǐng)求 -響應(yīng)模型,框架的目的就是幫助我們簡(jiǎn)

35、化開 發(fā),Spring Web MVC也是要簡(jiǎn)化我們?nèi)粘?Web開發(fā)的。在 web模型中,MVC是一種很流行的框架,通過把Model , View , Controller 分離,把較為復(fù)雜的 web 應(yīng)用分成邏輯清晰的幾 部分,是為了簡(jiǎn)化開發(fā),減少出錯(cuò)。還是為了組內(nèi)開發(fā)人員 之間的配合??傊褪且环N分層工作的辦法。springMVC,是spring 的一個(gè)子框架, 當(dāng)然擁有 spring 的特性, 如依賴注入。29 springmvc 復(fù)習(xí)springmvc 框架:DispatcherServlet前端控制器:接收 request,進(jìn)行responseHandlerMapping 處理器映射

36、器: 根據(jù) url 查找Handler。(可以通過xml配置方式,注解方式)HandlerAdapter處理器適配器:根據(jù)特定規(guī)則去執(zhí) 行Handler,編寫Handler時(shí)需要按照 HandlerAdapter的要求 去編寫。Handler處理器(后端控制器):需要程序員去編寫, 常用注解開發(fā)方式。Handler處理器執(zhí)行后結(jié)果是ModelAndView,具體開發(fā)時(shí)Handler返回方法值類型包括:ModelAndView、String(邏輯視圖名)、void(通過在Handler形參中添加request 和response,類似原始servlet開發(fā)方式,注意:可以通過指 定response響應(yīng)的結(jié)果類型實(shí)現(xiàn) json數(shù)據(jù)輸出)View resolver視圖解析器:根據(jù)邏輯視圖名生成真正的視圖(在springmvc中使用View對(duì)象表示)View視圖:jsp頁面,僅是數(shù)據(jù)展示,沒有業(yè)務(wù)邏輯。注解開發(fā):使用注解方式的處理器映射器和適配器:和-注龍咲射據(jù)注解適BE!器bf anorg* sjprinafrcnKwrweb, jeryl et.ffvc method, jnnc?taticrr+ffcgue5tAJapmnafftjQdIenidoptcr在實(shí)際開發(fā),使用mvc:annotation-dr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論