struts開發經驗匯總

來源:互聯網
上載者:User

標籤:攔截器   匯總   update   架構   管理系統   引擎   文檔   網上   模型   

  筆者接觸struts2之時,對於web開發甚至還沒有概念,僅有的知識是如何利用HTML、CSS和簡單的JS進行靜態網頁的編寫。對於開發一個網站所必需的後台、資料庫基本沒有瞭解。

  因此這篇博文,可以說不單單是筆者利用struts2架構進行web開發的經驗匯總,也是對目前為止web開發的一個簡單梳理。

  作為一名初學者,在沒有系統學習電腦網路以及任何web實戰經驗的前提下,不斷搜尋成為了開發過程中至關重要的一環。因此本文在陳訴經驗與學習脈絡的基礎之上,將羅列出一篇篇對我有協助的文章,將基於struts2的web開發中遇到的一系列細節問題加以重現,希望為struts2以及web開發的初學者提供一定的借鑒。

 

一、web開發基本流程

  我的理解中,基於struts2的web開發其實和它的運作機理相同,也十分很簡單:

  前端(網頁)--------(接收使用者的輸入)-------->

  後台(java寫的action類)----(響應使用者在網頁中做出的輸入,將必要的資料存放區到資料庫中)---->

  資料庫(通常以MySql資料庫中的表的形式存在)------(返迴響應所需的資料)-------------->

  後台(與前一個java寫的action類是同一個)---(處理從資料庫中返回的資料,加工後送到前端網頁,顯示給使用者)----->

  前端(可能是同一個網頁,也可能是不同的,顯示的內容與使用者之前的輸入有關)。

  以上的語言都比較好理解,大概只有後台裡面的“java寫的action類”令人費解。所謂action類,是struts2架構中處理前端網頁和資料庫的“大腦”,也是我們的網站能夠處理一系列業務的核心。通常一個網站會有不同的action類來處理不同的請求/業務。它的主要功能是對接收並處理加工(通常要將新的資料存放區到資料庫中)來自前端網頁的資料(使用者的請求、輸入的資料等待),並訪問資料庫,取出所需的資料,根據業務需求,返回前端網頁展示所需要的資料。之所以叫做action類,其一,它是由java代碼寫成的一個class,其二,其作用在於take action according to request from front end and respond with data in database.(希望這段中英文夾雜不會讓人感到難堪...)

  沒錯,即使是膚淺的大白話,相信你很有可能一個字也看不下去,但是對於像我之前一樣的菜鳥來說,基本的概念卻必須提前建立起來,腦子裡有了這麼個架構,以後再往裡面填東西就簡單得多。(其實struts2本身也是這麼一個填坑的過程)

 

二、MVC模型

  在之前介紹的網頁開發流程中,其實我已經不自覺地把web架構構成分成了三部分:前端、後台和資料庫,並將他們與實體聯絡在一起:網頁、java代碼和資料庫資料。

  這背後事實上蘊含著這樣一個廣為人知的MVC模型,M--Model--Java對象,V--View--網頁--HTML/CSS/Javascript,C--Control--Java控制類。

  網上有很多關於MVC模型的介紹與入門教程,請讀者自行搜尋、閱讀相關內容,想必定會加深讀者對web開發流程的認識,形成初步的印象。

 

  相關連結:

  從MVC架構看MVC架構的設計 – 碼農網  www.codeceo.com/article/mvc-framework-mvc-design.html

  Servlet和JSP開發入門教程 | 天碼營 - 新一代技術學習服務平台  https://course.tianmaying.com/servlet-and-jsp

三、前端入門

  前端在第一部分中,我們將其對應為網頁;在第二部分MVC模型中,對應著View部分。顧名思義,即使用者通過瀏覽器所見的網頁及其內容,便是前端。

  學習前端,我們需要掌握HTML、CSS和Javascript三大神器。

  通俗來說,HTML告訴瀏覽器顯示什麼內容,以怎樣的格式(比如大小、位置等等)顯示。因此HTML中包含著需要顯示的文本以及為了標記文字格式設定的標籤。除了文本,HTML還可以通過一系欄標籤引入映像、視頻、音頻甚至畫圖板等諸多功能。

  更詳細的介紹,請通過w3s網站學習。該網站覆蓋了web開發的整套學習材料,是廣為推崇的web學習網站。

  w3s    http://www.w3school.com.cn/

  HTML 系列教程  www.w3school.com.cn/h.asp

  

  雖然HTML能夠指定文本的大小和位置,但功能十分有限。CSS則對HTML中的元素施加魔法,使之能夠呈現出更多的樣式,以更好的效果展現在使用者面前。

  CSS教程  http://www.w3school.com.cn/css/index.asp

 

  如果你的網頁是一成不變的,那麼HTML和CSS足以做出令人驚豔的網頁。但是一個靜態、難以響應使用者輸入的網頁功能就大打折扣了。Javascript能操縱HTML和CSS,改變它們的展現方式,達到動態效果。

  Javascript教程  http://www.w3school.com.cn/js/index.asp

四、Java入門

  Java是廣為使用的物件導向的程式設計語言,具有多平台的可移植性,附有齊全的庫,也是struts架構中的後台語言。

  struts架構中使用的java代碼並無特殊要求,故在此不對Java做特別介紹,如果讀者對Java語言不瞭解,請自行搜尋相關資料閱讀。在此推薦一個簡明的Java入門教程,有過編程經驗的讀者應該能夠在兩三天的時間掌握基本的Java編程要求。

  

  Java入門教程  https://course.tianmaying.com/java-basic

五、開始你的struts2 Hello World

  接觸一個新的架構/軟體,配置問題往往既麻煩,又耗時,有時需要反覆實驗才能成功。如何在網頁上顯示一個HelloWorld呢?以下兩篇文章可能會對你有所協助。(如果遇到問題,請不要著急,stackoverflow、csdn以及分布各處的熱心網友會答疑解難的,用好搜尋引擎是成功的快捷通道)

  

  為Struts 2.0做好準備 - Max On Java - BlogJava  www.blogjava.net/max/archive/2006/10/10/74353.html

  搭建一個簡單的struts2.0的web工程 - joy_zhao988的專欄 - 部落格頻道 - CSDN.NET  blog.csdn.net/joy_zhao988/article/details/8684283

六、實現一個struts2 CRUD

  所謂CRUD,是Create、Remove、Update、Delete 4個英文單詞的縮寫,這代表著我們的網站不再只是一個能夠顯示Hello World的靜態網站了,而必須能夠根據使用者的操作,在網頁上反應出對應的結果。

  CRUD操作的對象是資料庫裡面的資料,因此我們的網站必須能夠串連到資料庫。CRUD指令是使用者在前端網頁發出的請求,因此我們的後台java程式將發揮用處,一個個action類將根據使用者輸入的資料,訪問資料庫取出資料,經過處理後將結果重新存到資料庫裡,並返回我們希望使用者看到的結果。

  筆者的另一篇部落格記錄了如何?一個具有CRUD功能的圖書管理系統,內附有大量的配置與代碼,希望能夠對讀者有所協助。

  

  struts2 CRUD 入門 配置 - zhangnf - 部落格園  http://www.cnblogs.com/zhangnf/p/struts2.html

  

  與之前的Hello World相比,大量的技術細節問題將逐漸暴露出來。筆者認為,最關鍵的問題是前端頁面與後台java類的資料傳遞。再次附上連結:

 

  struts2中action接收參數的方法 - 大陶陶 - 部落格園  www.cnblogs.com/bukudekong/archive/2012/03/29/2423064.html

  struts2從action向jsp傳參數 - saobchj - 部落格園  www.cnblogs.com/saobchj/archive/2012/05/09/2491641.html

 

  其次便是jsp的如何有效顯示資料。對jsp以及struts2背後的servlet的深入瞭解,可以參考以下教程:

  

  Servlet和JSP開發入門教程 | 天碼營 - 新一代技術學習服務平台  https://course.tianmaying.com/servlet-and-jsp

  

  這篇文章也提供了jsp顯示資料的有用資訊:

  

  Struts2 資料標籤(四)s:param標籤的三種賦值方法 - - ITeye技術網站  wl-ldy.iteye.com/blog/860169

 

  當然,還會有很多的技術問題出現,請各位讀者用好手邊的書和手上的搜尋引擎,自力更生,豐衣足食。

七、struts進階——攔截器

  有人說攔截器是struts2架構的核心,不假。攔截器提供了在前端頁面與後台action類之間施加額外操作的重要手段。一個最典型的例子便是非法登陸瀏覽頁面檢測:

 

  防止未登入使用者操作—struts2攔截器簡單實現 - - 部落格頻道 - CSDN.NET  blog.csdn.net/zhutulang/article/details/38351629

 

  有關struts2攔截器的相關知識覆蓋了struts2的整套工作原理,感興趣的讀者可以自行查閱資料學習。

 

八、web進階

  想要做好一個網站,自然可以從web運作流程中的每個環節都加以考慮。比如,一個十分賞心悅目的前端,定會更加吸引別人的眼球。bootstrap便是一個十分優秀的前端架構,為前端開發人員提供了許多有用的布局、組件、外掛程式支援。使用bootstrap作為前端架構,可以實現現代化的網站布局,效果十分美觀。

 

  bootstrap中文文檔  http://v3.bootcss.com/

 

  如何高效實現一個動態響應的網站呢?jQuery是Javascript的封裝,被譽為寫的更少,做的更多的Javascript。值得一提的是,jQuery中還封裝了ajax,可以實現在不重新整理網頁的前提下執行後台action類操作,並更新網頁內容的強大功能。jQuery的編寫十分容易上手,且功能強大,強烈推薦學習。

 

  jQuery教程  http://www.w3school.com.cn/jquery/

  利用JQuery實現Struts2的Ajax功能 - 編程記錄 - 部落格頻道 - CSDN.NET  blog.csdn.net/yongh701/article/details/44279635

九、小結

  近三個月的學習,我從web小白一步步變成中白,期間推動我不斷學習的動力,正是來自於網上流傳各處的豐富的前人經驗。出於此,我才有了將自己學習經驗發表出來的想法。所以在此,向我文中引用到的各位作者表示感謝。

  在此附上小組web開發的github項目,與各位讀者共勉。

 

  https://github.com/py100/project-staples

 

struts開發經驗匯總

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.