更新時(shí)間:2020-04-23 14:51:59 來源:動力節(jié)點(diǎn) 瀏覽2537次
springmvc和struts2的區(qū)別?
機(jī)制:springmvc的入口是servlet,struts2的入口是filter
性能:springmvc會比struts2快一點(diǎn)。springmvc是基于方法設(shè)計(jì),struts2是基于類,每次發(fā)一次請求都會實(shí)例一個(gè)action,每個(gè)Action都會被注入屬性。
參數(shù)傳遞:struts2是在接受參數(shù)的時(shí)候,可以采用屬性來接收參數(shù),這家說明可以讓多個(gè)方法共享
攔截器機(jī)制:struts2有自己的interceptor機(jī)制,springmvc用的是獨(dú)立的AOP方式,strtus2的配置文件還是比springmvc大,springmvc使用簡潔,springMVC比struts2開發(fā)效率要高.
struts2工作原理?
客戶端初始化一個(gè)執(zhí)行servlet的請求
這個(gè)請求經(jīng)過一系列的過濾器,被FilterDispatcher調(diào)用,詢問ActionMapper來決定是否調(diào)用Action
FilterDispatcher把請求的處理交給ActionProxy
ActionProxy通過Configuraction Manager詢問相關(guān)的配置文件,找到需要的Action類
ActionProxy創(chuàng)建ActionInvocation的實(shí)例
ActionInvocation調(diào)用Action前后的攔截器
Action執(zhí)行完畢后,根據(jù)struts.xml配置文件找到對應(yīng)的視圖頁面
Hibernate工作原理?
讀取并解析配置文件
創(chuàng)建SessionFactory
打開Session
創(chuàng)建事務(wù):transaction
持久化操作
提交事務(wù)
關(guān)閉Session
關(guān)閉SessionFactory
為什么要用spring?
spring能夠很好的和各大框架整合
spring通過IOC容器管理了對象的創(chuàng)建和銷毀工廠模式
在使用hiberna,mybatis的時(shí)候,不用每次都編寫提交的事務(wù)的代碼,可以使用spring的AOP來管理事務(wù)AOP其實(shí)就是一個(gè)動態(tài)代理的實(shí)現(xiàn)
聲明式事務(wù)和編程式事務(wù)
mybatis的優(yōu)缺點(diǎn)?
優(yōu)點(diǎn):SQL寫在XML中,便于統(tǒng)一管理和優(yōu)化
提供映射標(biāo)簽,支持對象和數(shù)據(jù)庫的orm字段關(guān)系映射
可以對SQL進(jìn)行優(yōu)化
缺點(diǎn):SQL工作量大
mybagtis移植姓不好
不支持級聯(lián)
談?wù)凷SH整合?
struts(表示層)+spring(業(yè)務(wù)層)+hibernate(持久層)
struts是一個(gè)表示層的框架,主要用于接收請求,分發(fā)請求。struts其實(shí)屬于MVC中的VC層次的
hibernate是一個(gè)持久層的框架,主要負(fù)責(zé)與關(guān)系數(shù)據(jù)庫的操作
spring是一個(gè)業(yè)務(wù)層的框架,是一個(gè)整合的框架,能夠很好的黏合表示層和持久層。
maven是什么?有什么作用?
是一個(gè)項(xiàng)目管理、構(gòu)建工具
作用:幫助下載jar尋找依賴,幫助下載依賴熱部署、熱編譯
WEB前端優(yōu)化?
減少HTTP請求的數(shù)量(合并css、js、圖片)
利用瀏覽器的緩存機(jī)制
利用GZIP壓縮機(jī)制:只針對文本類資源有效
把CSS文件放在HTML開頭
把javascript文件放在HTML結(jié)尾
避免CSS表達(dá)式(判斷瀏覽器)
使用javascript壓縮
減少DNS查找
避免重定向
使用ajax
安全性測試
利用安全性測試技術(shù),找到潛在的漏洞
事務(wù)隔離級別(4種)
Serializable(串行化):一個(gè)事務(wù)在執(zhí)行過程中完全看不到其他事物對數(shù)據(jù)庫所做的更新(事務(wù)執(zhí)行的時(shí)候不允許別的事務(wù)并發(fā)執(zhí)行,事務(wù)只能一個(gè)接著一個(gè)地執(zhí)行,而不能并發(fā)執(zhí)行)
Repeatable Read(可重復(fù)讀):一個(gè)事務(wù)在執(zhí)行過程中可以看到其它事務(wù)已經(jīng)提交的新插入的記錄,但是不能看到其它事務(wù)對已有記錄的更新
Read Commited(讀已提交數(shù)據(jù)):一個(gè)事務(wù)在執(zhí)行過程中可以看到其它事務(wù)已經(jīng)提交的新插入的記錄,而且能看到其它事務(wù)已經(jīng)提交的對已有記錄的更新。
Read Uncommitted(讀未提交數(shù)據(jù)):一個(gè)事務(wù)在執(zhí)行過程中可以看到其它事務(wù)沒有提交的新插入的記錄的更新,而且能看其它事務(wù)沒有提交到對已有記錄的更新
以上就是動力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對“程序員面試java架構(gòu)師面試寶典”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743