即興的靈感

          思維是一種藝術; 藝術需要靈感。

          博客好友

          最新評論

          偶遇Spring MVC


          ??? 個人認為Spring其核心是其IOC和AOP方面,對其SpirngMVC框架并不關注,我看好的是JSF,簡單易懂。但最近由于工作上需要,所以有需要對SpringMVC做個了解學習,因此,本次對SpirngMVC的相遇純屬偶遇....下面對其做見識性了解說明:

          ??? SpingMVC的架構其實也很簡單,它通過一個共通的入門DispatcherServlet來接收所有的request,接下來根據request要求的頁面通過handler轉送給Controller處理,處理結果返回View給用戶,因此對SpringMVC來說,其核心為DispatcherServlet。
          ??? DispatcherServlet作為一扇門,我們要使用這個門,首先得安裝上這個門,安裝在哪呢?沒錯,就安裝在web.xml這個大屋子,象其他servlet一樣,描述servlet的名字和類,再給他一個mapping描述對應映射的網頁。在下例中,我們給DispatcherServlet的起名為SpringMVCDemo,并讓container知道所有.do結尾的request都丟給dispatcher。
          ???? < servlet >
          ????????
          < servlet-name > SpringMVCDemo </ servlet-name >
          ????????
          < servlet-class >
          ????????????org.springframework.web.servlet.DispatcherServlet
          ????????
          </ servlet-class >
          ????????
          < load-on-startup > 1 </ load-on-startup >
          ????
          </ servlet >

          ????
          < servlet-mapping >
          ????????
          < servlet-name > SpringMVCDemo </ servlet-name >
          ????????
          < url-pattern > *.do </ url-pattern >
          ????
          </ servlet-mapping >
          ??? 門安裝好了之后,我們需要定義門能打開的范圍,在哪定義呢?就在門的上面貼上一張“入門指導”,介紹從哪方面(hello.do)進門需要使用何種交通方式(springmvcController)進去,并定義該交通方式。
          ???? < bean? id ="urlMapping"
          ????????class
          ="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" >
          ????????
          < property? name ="mappings" >
          ????????????
          < props >
          ????????????????
          < prop? key ="/hello.do" > springmvcController </ prop >
          ????????????
          </ props >
          ????????
          </ property >
          ????
          </ bean >

          ????
          <!-- ?SpringmvcController? -->
          ????
          < bean? id ="springmvcController"
          ????????class
          ="org.improviser.webapp.controller.SpringmvcController" >
          ????
          </ bean >
          ??? 接下來該渲染一下頁面了,下面為渲染所有以
          WEB-INF/pages/ 開頭并以.jsp結尾的頁面。
          ???? <!-- ?ViewSolver? -->
          ????
          < bean? id ="viewResolver"
          ????????class
          ="org.springframework.web.servlet.view.InternalResourceViewResolver" >
          ????????
          < property? name ="viewClass" >
          ????????????
          < value > org.springframework.web.servlet.view.JstlView </ value >
          ????????
          </ property >
          ????????
          < property? name ="prefix" >
          ????????????
          < value > /WEB-INF/pages/ </ value >
          ????????
          </ property >
          ????????
          < property? name ="suffix" >
          ????????????
          < value > .jsp </ value >
          ????????
          </ property >
          ????
          </ bean >
          ???上面提到的SpringmvcController,現在該作個定義了,該類需要實現Controller接口。
          public?class?SpringmvcController?implements?Controller?{
          ????
          /**?Logger?for?this?class?and?subclasses?*/
          ????
          protected?final?Log?logger?=?LogFactory.getLog(getClass());

          ????
          public?ModelAndView?handleRequest(HttpServletRequest?request,
          ????????????HttpServletResponse?response)?
          throws?ServletException,?IOException?{

          ????????Map?model?
          =?new?HashMap();

          ????????String str
          =?"即興詩人";
          ????????logger.info(
          "returning?hello?view?with?"?+?currTime);
          ????????model.put(
          "coldice", str);

          ????????
          return?new?ModelAndView("hello",?"message",?model);
          ????}
          ???編寫jsp測試頁面。
          <html>
          ????
          <head>
          ????????
          <title>Spring?Application</title>
          ????
          </head>
          ????
          <body>
          ????????
          <h1>
          ????????????
          <br?/>
          ????????????Hello
          ??? ??? ??? <c:out?value="${message.coldice}"?/></br>
          ??? ??? ??? Spring?MVC 測試成功!
          ????????
          </h1>
          ????
          </body>
          </html>
          ??? 現在對以上內容作個總結,正如上面所敘述,SpringMVC框架的處理過程機制如下圖所示,接收請求頁面,通過DispatcherServlet映射到相應規則處理,并找到相應的控制器,結果控制器處理后返回相應的頁面最后返回給用戶。
          138199405_8b54d56b71_o.png



          ?
          鳳凰涅槃/浴火重生/馬不停蹄/只爭朝夕
          ???? 隱姓埋名/低調華麗/簡單生活/完美人生

          posted on 2007-11-04 10:44 poetguo 閱讀(6700) 評論(13)  編輯  收藏 所屬分類: Spring

          評論

          # re: 偶遇Spring MVC 2007-11-04 12:00 BeanSoft

          呵呵 Spring MVC 是緊耦合 和它自己的設計理念沖突啊... 所以 Spring Web 連 Struts 也打不過...  回復  更多評論   

          # re: 偶遇Spring MVC 2007-11-04 12:06 improviser

          嗯嗯 目前只是原型系統使用到 偶用一下測試看看而已啊  回復  更多評論   

          # re: 偶遇Spring MVC 2007-11-04 14:21 山風小子

          @BeanSoft
          "Spring MVC 是緊耦合"
          具體體現在哪里呢?謝謝 :)  回復  更多評論   

          # re: 偶遇Spring MVC 2007-11-04 18:08 BeanSoft

          public class SpringmvcController implements Controller {

          這一句就是. 兄弟你用過 Struts 1 和 Struts 2 嘛? Spring 不是一直都講究 POJO 嘛? 也許現在新的 Spring MVC 也不需要繼承自它自己的 Web 層的接口了 呵呵. 這一點是和它自己的理念違背的.  回復  更多評論   

          # re: 偶遇Spring MVC 2007-11-04 18:49 山風小子

          Struts2 中不也是
          public class Login extends ActionSupport {
          嗎?

          您所說的‘緊耦合’似乎各大框架都存在噢 :)  回復  更多評論   

          # re: 偶遇Spring MVC 2007-11-05 16:41 BeanSoft

          呵呵 JSF 不存在. 如果標注算松耦合的話, EJB 3, JPA 也不存在. 不過 Spring 這個地方是緊耦合不假. 所以這里它只能和 Struts 來類比了, 當然不影響使用, 嘿嘿.  回復  更多評論   

          # re: 偶遇Spring MVC 2007-11-05 22:48 improviser

          這也許就是正是欣賞jsf的地方  回復  更多評論   

          # re: 偶遇Spring MVC[未登錄] 2007-12-01 13:58 duma

          @山風小子
          struts2 , webwork 可以不用這樣寫.  回復  更多評論   

          # re: 偶遇Spring MVC 2007-12-23 18:46 廣州_Soar

          Spring Web MVC 也許你只是用來玩玩,呵呵??!
          它的好處做過大型系統的朋友應該都有體會,不過目前大家都使用EXTJS2.0做前臺了,直接跟Service層進行調用??!呵呵!!  回復  更多評論   

          # re: 偶遇Spring MVC 2007-12-24 22:27 improviser

          算玩過2個月了哈哈,還不錯,
          技術本身沒有錯,每一種都有它的有點,存在即合理!  回復  更多評論   

          # re: 偶遇Spring MVC 2008-02-29 13:47 平淡無味

          第一次來 以后就常來了 希望能多寫一些 要好好學習了  回復  更多評論   

          # re: 偶遇Spring MVC[未登錄] 2008-11-26 06:59 Scott.H

          有 Spring 2.5 的 Annotation 以后,就不存在所謂的緊耦合,everything is a POJO  回復  更多評論   

          # re: 偶遇Spring MVC 2010-09-28 17:49 11

          是啊,Spring 2.5 的 Annotation用起來真的很方便。  回復  更多評論   

          主站蜘蛛池模板: 台东市| 呼玛县| 五华县| 皋兰县| 南召县| 利辛县| 神木县| 蛟河市| 郓城县| 平罗县| 沙田区| 普洱| 客服| 布尔津县| 六安市| 高青县| 浙江省| 天祝| 陇西县| 东兰县| 韶山市| 靖江市| 女性| 衡东县| 盘锦市| 堆龙德庆县| 南丹县| 杭锦旗| 凤冈县| 买车| 亳州市| 饶平县| 二手房| 普兰店市| 通江县| 蓝田县| 银川市| 宜兰县| 巴彦淖尔市| 邵东县| 蓬莱市|