struts2請求參數 struts2的執行過程

很多朋友對于struts2請求參數和struts2的執行過程不太懂,今天就由小編來為大家分享,希望可以幫助到大家,下面一起來看看吧!Java新手如何學習Spring、S...
很多朋友對于struts2請求參數和struts2的執行過程不太懂,今天就由小編來為大家分享,希望可以幫助到大家,下面一起來看看吧!
Java新手如何學習Spring、Struts、Hibernate三大框架
學習Spring、Struts和Hibernate是很多初學者都會經歷的階段,要掌握這三個框架首先要清楚這三個框架都分別解決了哪些問題,同時要知道這三大常見框架的使用場景和框架的內部實現細節。
下面我將分別跟頭條的朋友探討一下這三個框架的細節,從它們分別能解決什么問題入手,然后進一步分析它們的組成結構。
Java基礎知識準備要開始學習Spring、Struts和Hibernate這三個框架,需要做充足的Java基礎知識學習,知道這些知識才能知道為什么需要使用這三個框架。下面列出學習三大框架之前的基礎知識:
Java面向對象開發基礎。這部分內容包括類、對象、方法、屬性四大概念,以及封裝、繼承、多態三大特征的使用。要清晰面向對象的開發過程:類的定義、對象的創建、方法的調用。
Java操作數據庫。這部分內容包括Java如何與數據庫進行溝通,如何通過java完成數據庫的增刪改查等基本操作。這部分內容還包括如何使用預處理模式提高效率,如何使用CallableStatement完成存儲過程調用,以及如何使用數據庫連接池來優化數據庫操作。當然還要清楚使用DAO模式來規范化代碼結構,而這也為使用Hibernate打下了一定的基礎。
Javaweb開發基礎。這部分內容包括Servlet、JavaBean、JSP的開發、調試、部署,清楚web開發的范圍定義以及web容器的配置管理。要清楚webMVC結構,能使用Model2結構進行web程序開發,而這為使用Struts和Spring打下了基礎。
(如果這部分知識你還不太了解可以關注我,我在頭條上不斷更新關于java開發的系列文章)為什么要使用Hibernate要清楚為什么使用Hibernate,首先要明白Java操作數據庫存在哪些問題,這些問題應該怎么解決?為了描述這些問題,首先我們看一下如何使用JDBC完成數據庫操作,我們看一個圖示:
這個圖示描述了Java通過JDBC(一個專門操作數據庫的JavaAPI)來操作各種數據庫的結構圖,圖中Java代碼直接完成對數據庫的操作。接下來我們再看一下操作的原理圖,也就是java操作數據庫的細節描述圖:
通過這張原理圖,我們可以清楚的看到java如何使用JDBC完成與數據庫的具體交互過程,使用JDBC操作數據是Java的官方標準,在經過不斷的更新后,目前的JDBC性能已經得到了顯著的提高。
在具體開發數據庫操作的時候,我們通常會采用DAO模式,使用DAO的目的是模塊化數據庫操作,方便團隊之間的協同化開發,為了描述DAO,我們看一張圖示:
通過圖示我們能發現,DAO位于業務層和數據庫的中間,可以說它完成了一個映射的任務。這個映射就是從面向對象的Java代碼向面向關系的數據提供了一個映射,再簡單點說就是:DAO可以讓Java程序員以面向對象的方式操作面向關系的數據庫。
Hibernate的作用與DAO的作用是一樣的,就是完成這個映射層的創建,可以說Hibernate是DAO的一個通用的實現。通過Hibernate程序員可以很方便的為程序創建與不同數據庫產品之間的映射,從而讓程序員從開發DAO實現的細節工作中解放出來,這就是為什么要使用Hibernate的原因。
學習Hibernate并不復雜,如果你已經有過編寫DAO實驗的經驗,那么使用Hibernate能讓你十分愉快,因為你再也不用編寫麻煩的“封包”和“拆包”代碼了。
為什么要使用Struts和Spring為什么把Struts和Spring放在一起呢,因為它倆關系密切(其實Spring完全可以獨立一站式解決問題),放在一起解釋更加清晰。
在學習javaweb開發的時候,會學習到如何使用基于MVC結構的web開發,具體點就是使用Servlet+Javabean+JSP來完成Model2結構的開發,結構圖如下所示:
圖中完成了使用java代碼的方式來編寫MVC結構的程序,MVC的開發模式是大家公認的有效且經典的開發結構,目前基本上web開發的標準配置。
但是在大家自己編寫MVC結構的時候,會比較麻煩(如果這部分內容不清楚,關注我,我會在后續文章中詳細闡述如何使用java代碼完成mvc開發),因為所有的導航代碼都需要自己編寫,將來調整的時候也非常麻煩。Struts就很好的解決了這個問題,程序員可以通過配置來完成程序的調整,節省了大量的編碼時間,也讓團隊合作開發變得更容易了。簡單的說Struts就是完成了程序MVC結構的實現。
那么在上圖中,我們還會發現一個問題,在web容器中還運行著Model組件,而通常Model組件就是JavaBean組件。也就是說web容器既提供了web組件的池功能,又提供了業務組件的池功能,這勢必會影響業務組件的運行性能。為了解決這個問題,出現了兩個陣營:官方標準采用了大名鼎鼎的EJB,解決方案如圖所示:
圖中清晰的呈現了EJBserver,已經把業務模塊從web容器中剝離出來了。而另一個解決方案就是Spring,它也是池化業務模塊,只不過Spring更加輕量級,所以得到了廣大程序員的喜愛。也就是從此,java開發背上了“較重”的標簽。但是EJB目前仍然有它自己的特點,雖然重,但是功能也十分強大。
所以簡單的說就是Struts完成了MVC框架的實現,Spring提供了業務模塊的輕量級容器。
學習步驟其實寫到這,大家已經清楚了學習的步驟,因為文章的描述過程就是一個順序的學習步驟。
在簡單總結一下:
學習基礎開發
學習數據庫開發
學習web開發
學習Hibernate
學習Struts
學習Spring
整合
建議多做實驗,也要經常到三大框架的官網多看一看,如果應用基礎好的讀者,可以到這幾個框架的官方社區多看看,社區里有很多能力很強的開發者,跟他們交流一定能讓你受益匪淺。
如果大家覺得這篇文章幫助你了解這三大框架,那么請關注我,跟我一起學習java知識,學習互聯網知識。
謝謝!
strus1和strus2的區別
struts1相對struts2小巧,與servlet和jsp耦合性較高,struts2是以xwork(WebWork)為核心,不是struts1的升級版,可以看成是xwork的升級版
什么是struts2的國際化信息標簽
struts2的國際化,首先在struts2的國際化,我們應必備的前提,首先如果我們要使用struts2的國際化,我們首先要在struts2中配置一個標簽如:<constantname="struts.custom.i18n.resources"value="csdn"></constant>,這樣我們就能使用struts2中的國際化了,但是這個配置必須的是你在你的struts2配置環境能用的基礎上。
struts2配置中,param中為空什么意思。傳遞的是整個action對象嗎
struts2使用chain的方式會保留請求參數當使用redirectAction時,會發生重定向,參數會丟失,可以使用以下兩種方式傳遞參數,兩種方法下目標Action都必須有對應屬性的getter,setter方法param方式:直接傳遞:從上面看出,在struts.xml里調用OGNL表達式并不是使用%{}而是使用${},這和EL表達式在JSP頁面中的用法一樣。
struts2 Action屬性值
在struts2中Action的屬性用來封裝請求參數,可以是普通屬性也可以是對象模型,不管何種方式,問題是:屬性的值是怎么賦值的?考察方式可以在Action中添加一個簡單屬性,生成gettersetter方法,在setter方法中添加斷點可以跟蹤。Action的代碼如下:
ublicclassUserAction{
privateStringname;
publicUserAction(){
System.out.println("==創建UserAction對象=");
}
publicStringexecute(){
System.out.println("執行execute方法...");
System.out.println("name========="+name);
return"success";
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;//在該行添加斷點調試運行Tomcat
}
}
spring與struts2的區別。我覺得他們兩都是mvc框架阿,可是面試官說不對
你確實錯了,spring不是mvc框架。
spring是一個ioc/aop框架,它有一個mvc框架叫springmvc。springmvc是基于spring的mvc框架。
struts才是mvc框架,但一般搭配spring,利用spring的ioc功能來加強。
文章分享結束,struts2請求參數和struts2的執行過程的答案你都知道了嗎?歡迎再次光臨本站哦!
本文鏈接:http://xinin56.com/su/2116.html