Struts2自學入門(一)

注:黃色部分爲從網絡引用內容。



概念:Struts2與Servlet的區別:

1.編程思想相同,通過前臺請求後臺數據,再得到返回值。因此Struts2本質還是Servlet。

2.代碼的規範。因爲jsp+servlet開發隨意。規範性應差。控制語句到處有,爲維護及修改帶來不便。也使接手的人爲解讀代碼帶來不便。
3.安全性。web開發最不安全的就是session的使用.servlet的開發離不開request。有了request,那也就有了session,以前我們有個組開發,亂用session,使系統的性能很着。而且有很多保密信息外漏。如果你在servlet中封裝request,那你就會發現越來越象struts。而struts的值都保存在ActionForm中,所以進行簡單的封裝就可以使底層人員,看不到requet,又不影響取值。
4.可維護性。

5.servlet是單例,線程安全,每次請求都是由第一個請求到來後建立的那個servlet招呼,所以servlet裏面不能有成員變量;struts2是通過一個servlet負責招待每個到來的線程,併爲這個線程向action工廠要一個全新的action,並把它們倆放進一個叫Threadlocal的容器中,直到線程斷掉,這些東西才被gc這個收垃圾的收走。所以struts2是多線程的。當然struts2實現上覆雜很多,比如負責各種轉換的攔截器


構建Struts2項目

要構建Struts項目需要導入Struts2基礎包和依賴包,可以去Struts官網下載: Struts2官網


在項目的src文件夾下 需要建立一個 Struts2.xml 以及 存放 Struts Action的Action包

Struts2.xml 基礎設置:

在struts標籤下加入 Package和Action

		<package name="studentInfo" extends="struts-default" namespace="/" >
		<action name="login" class="com.gw.action.LoginAction">
			<span style="white-space:pre">	</span><result name="error">/index.jsp</result>
			<span style="white-space:pre">	</span><result name="success" type="redirect">/main.jsp</result>
	<span style="white-space:pre">	</span></action>
		
		  <action name="grade" class="com.gw.action.GradeAction">
			</action>
<span style="white-space:pre">		</span></package>


其中 result設置了返回結果 如:
		<span>	</span><result name="error">/index.jsp</result>

標識 當Action中return了 error這個值 就可以跳轉到Index.jsp action的name屬性指定了前端頁面訪問Action的URL


在頁面中如此設置便可以直接將 請求參數傳給Action 並且不用request來獲取參數。

其中 s_gradeName=""; 表示 該請求參數爲NULL時的默認值。

同時Actrion要extends ActionSupport implements ServletRequestAwar

ServletRequestAwar用來獲取Sevlet的成員


  並且Action中必須要重載excute方法 在這個方法裏可以寫後臺的代碼

其中 return值 對應XML裏的 result 標籤。

1、前端頁面通過表單提交的方式訪問Aciton

2、前段頁面通過Ajax的方式訪問Action

其中!和?之間的字符串指定了 Action要執行的方法。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章