Java知識點總結(jié)框架篇21-25

二十一、hibernate緩存概述

hibernate分為一級緩存即session緩存也叫事務(wù)級別的緩存以及

二級緩存sessionFactory即應(yīng)用級別的緩存,還有查詢緩存即三級緩存.

一級緩存的生命周期和session的生命周期保持一致,

hibernate默認(rèn)就啟用了一級緩存,

不能將其關(guān)閉,可以通過session.clear()和session.evict(object)來管理一級緩存。其中g(shù)et,load,iterate都會使用一級緩存,一級緩存緩存的是對象。

二級緩存的生命周期和sessionFactory的生命周期保持一致,可以跨session,被多個session共享,hibernate3默認(rèn)開啟二級緩存,也可以手動開啟并指定緩存插件如ehcache,oscache

等。二級緩存也只能緩存對象。

三級緩存也叫查詢緩存,查詢緩存是針對普通屬性結(jié)果集的緩存,

對實體對象的結(jié)果集只緩存id。對query.list()起作用,query.iterate不起作用,也就是query.iterate不使用查詢緩存

二十二、SSH的概述:

ssh是web開發(fā)中常見的一種框架

s-struts

s-spring

h-hibernate

其中struts在框架中充當(dāng)控制器,實現(xiàn)MVC,主要用來處理用戶的請求,和跳轉(zhuǎn)頁面。使項目結(jié)構(gòu)清晰,開發(fā)者只需要關(guān)注業(yè)務(wù)邏輯的實現(xiàn)即可。

spring在ssh充當(dāng)粘合劑,粘合struts-sping-hibernate,主要用來進(jìn)行事物的控制,

hibernate-充當(dāng)數(shù)據(jù)庫持久層,主要用它來與數(shù)據(jù)庫交互,提高開發(fā)效率,減輕程序員sql控制要求,而且hibernate通過反射機(jī)制,有靈活的映射性,還支持各種關(guān)系,一對一,一對多,多對多。

在進(jìn)行ssh整合的時候,我們應(yīng)該注意:

1. Action繼承于ActionSupport

引入struts-spring-plugin.jar包,從而完成struts和spring的整合

在struts2的action中注入service,保證service的名字和配置文件中的一致,并生成get,set方法

Dao層繼承于hibernateDaoSupport

在dao層的配置文件中注入sessionFactory

二十三、防止表單重復(fù)提交

針對于重復(fù)提交的整體解決方案:

1.用redirect來解決重復(fù)提交的問題

2.點擊一次之后,按鈕失效

3.通過loading

4.自定義重復(fù)提交過濾器

5.解決struts2重復(fù)提交

可以結(jié)合s:token標(biāo)簽來解決重復(fù)提交問題

利用token的原理:

1.在前端的jsp頁面中加入s:token標(biāo)簽,在訪問該頁面時就會生成

隱藏域,該隱藏域中包含一個隨機(jī)生成的字符串,并把該字符串

存入session中

2.在struts2的配置文件中加入token攔截器后,當(dāng)正常訪問action

的時候,會從session中取出該字符串,然后和頁面隱藏域中提交

字符串做對比,如果一致則正常執(zhí)行并刪除session中存儲的字符串。

二十四、JSP標(biāo)簽:

1.JSP include動作

jsp:include 動作

以“ ” 結(jié)束

比如:

2.JSP指令:

以“ ” 結(jié)束。比如:

3.JSP輸出表達(dá)式:

輸出變量的值,后邊不能加

4.JSP Scriptlet【腳本】:

例子:

5.JSP聲明:

例子:

String getHello(String name) {

return "Hi," + name + "!";

}

6.迭代標(biāo)簽:

Jstl中的核心標(biāo)簽(core)

7.JSP注釋:

8.el表達(dá)式:${}

9.jsp:include動作是在運(yùn)行時動態(tài)包含。

@include指令是在編譯時包含。

它們兩個都只能包含本項目的相關(guān)文件,不能包含其他項目的。

如果要包含其他項目的文件可以使用c:import

二十五、過濾器

filter的概述:

filter是一個過濾器,用來在請求前和響應(yīng)后進(jìn)行數(shù)據(jù)的處理。

filter的生命周期是:

實例化--->初始化(init)-->進(jìn)行過濾(doFilter)--->銷毀(destroy)-->釋放資源

一個Filter必須實現(xiàn)javax.servlet.Filter接口

在項目中我們通常通過filter進(jìn)行編碼轉(zhuǎn)換,

進(jìn)行安全驗證,進(jìn)行重復(fù)提交的判斷。

了解(不需要主動說)

filter相當(dāng)于 攔截器 相當(dāng)于Spring AOP

servlet+jsp+javabean+jdbc+filter

encodingFilter

encode

utf-8

encodingFilter

*

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容