本文是上一篇文章的後續文,具體請回顧上文
二十一、Ssh的概述:
ssh是web開發中常見的一種框架
s-struts
s-spring
h-hibernate
其中struts在框架中充當控制器,實現MVC,主要用來處理用戶的請求,和跳轉頁面。使項目結構清晰,開發者只需要關注業務邏輯的實現即可。
spring在ssh充當粘合劑,粘合struts-sping-hibernate,主要用來進行事物的控制,
hibernate-充當數據庫持久層,主要用它來與數據庫交互,提高開發效率,減輕程序員sql控制要求,而且hibernate通過反射機制,有靈活的映射性,還支持各種關係,一對一,一對多,多對多。
在進行ssh整合的時候,我們應該注意:
1. Action繼承於ActionSupport
引入struts-spring-plugin.jar包,從而完成struts和spring的整合
在struts2的action中注入service,保證service的名字和配置文件中的一致,並生成get,set方法
Dao層繼承於hibernateDaoSupport
在dao層的配置文件中注入sessionFactory
二十二、防止表單重複提交
針對於重複提交的整體解決方案:
1.用redirect來解決重複提交的問題
2.點擊一次之後,按鈕失效
3.通過loading
4.自定義重複提交過濾器
5.解決struts2重複提交
可以結合s:token標籤來解決重複提交問題
利用token的原理:
1.在前端的jsp頁面中加入s:token標籤,在訪問該頁面時就會生成
隱藏域,該隱藏域中包含一個隨機生成的字符串,並把該字符串
存入session中
2.在struts2的配置文件中加入token攔截器後,當正常訪問action
的時候,會從session中取出該字符串,然後和頁面隱藏域中提交
字符串做對比,如果一致則正常執行並刪除session中存儲的字符串。
二十三、JSP標籤:
1.JSP include動作
jsp:include 動作
以“
比如:
2.JSP指令:
以“ ” 結束。比如:
3.JSP輸出表達式:
輸出變量的值,後邊不能加
4.JSP Scriptlet【腳本】:
例子:
例子:
String getHello(String name) {
return "Hi," + name + "!";
}
%>
6.迭代標籤:
Jstl中的核心標籤(core)
7.JSP註釋:
8.el表達式:${}
9.jsp:include動作是在運行時動態包含。
@include指令是在編譯時包含。
它們兩個都只能包含本項目的相關文件,不能包含其他項目的。
如果要包含其他項目的文件可以使用c:import
二十四、過濾器
filter的概述:
filter是一個過濾器,用來在請求前和響應後進行數據的處理。
filter的生命週期是:
實例化--->初始化(init)-->進行過濾(doFilter)--->銷燬(destroy)-->釋放資源
一個Filter必須實現javax.servlet.Filter接口
在項目中我們通常通過filter進行編碼轉換,
進行安全驗證,進行重複提交的判斷。
瞭解(不需要主動說)
filter 相當於 攔截器 相當於Spring AOP
servlet+jsp+javabean+jdbc+filter
二十五、攔截器的理解
什麼是攔截器:
攔截器是AOP中的概念,它本身是一段代碼,可以通過定義“織入點”,來指定攔截器的代碼在“織入點”的前後執行,從而起到攔截的作用
正如上面 Struts2的Reference中講述的,Struts2的Interceptor,其攔截的對象是Action代碼,可以定義在Action代碼之前或者之後執行攔截器的代碼。
在項目中,我們經常用來攔截通過非正常程序而進行的訪問
Struts2的攔截器和Servlet過濾器類似。在執行Action的execute方法之前,Struts2會首先執行在struts.xml中引用的攔截器,在執行完所有引用的攔截器的intercept方法後,會執行Action的execute方法。
其中intercept方法是攔截器的核心方法,所有安裝的攔截器都會調用之個方法。在Struts2中已經在struts-default.xml中預定義了一些自帶的攔截器,如timer、params等。如果在
攔截器是Struts2框架的核心,它主要完成解析請求參數、將請求參數賦值給Action屬性、執行數據校驗、文件上傳等工作
在struts-default.xml中有一個默認的引用,在默認情況下(也就是
自定義攔截器需要特別注意的是不要忘記引入struts2默認的攔截器。為了實現某些操作,我們可以自定義攔截器,
自定義攔截器有三種方式定義。分別為實現Interceptor接口,繼承抽象類AbstractInterceptor,繼承MethodFilterInteceptor類。
攔截器在項目中的運用:
同時可以減輕代碼冗餘,提高重用率。
如果要求用戶密碼、權限等的驗證,就可以用自定義的攔截器進行密碼驗證和權限限制。對符合的登入者才跳轉到正確頁面。
二十六、Spring融入框架
我們通過在web.xml中配置ContextLoaderListener這個監聽器也加載
spring的配置文件,從而融入到項目框架中。
二十七、項目的部署方式
1、如果項目單獨部署到tomcat中的時候,應該看tomcat中的server.xml;
2、如果和eclipse結合使用進行項目部署的時候,應該看eclipse裡面的server.xml.
本文為下一篇文章的前篇,下一篇是--------數據庫篇,詳情請關注
閱讀更多 動作要快姿勢要帥 的文章