<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 60, comments - 116, trackbacks - 1, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    單獨使用Spring建立簡易開發框架(二)

    Posted on 2007-09-11 18:05 匪客 閱讀(2004) 評論(2)  編輯  收藏 所屬分類: 開發技術

    3. 架構概覽

    MVC 層在 Spring AbstractController 類基礎上進行了繼承和重構,使整個框架僅使用單一的公共控制器,數據操作采用 Spring JdbcTemplate ,在邏輯層中直接集成了 Spring Jdbc 能力,可直接操作數據,表現層 Jstl ,除此之外,未定義任何的表單對象、數據庫表映射對象和其他 ORM 的配置文件,在保留對關鍵功能的集成度的基礎上技術入門度極低,重點關注業務功能和優化 SQL 語句

    請求處理流傳如圖所示:



    1)????? 用戶訪問 http://www.fyyk.com/a.do

    2)????? Web 應用服務器(如 tomcat )解析擴展名為 *.do 的請求,通過 Spring 分發器 org.springframework.web.servlet.DispatcherServlet 讀取 servlet-do.xml 中的配置,將請求轉發給公共控制器類 LogicController.java

    3)????? 公共控制器類 LogicController.java 根據 servlet-do.xml 文件中的配置信息調用 DoLogicImpl.java 類中相對應名稱的方法;

    4)????? DoLogicImpl.java 類中的方法在處理完成業務邏輯后,將數據內容 ModelAndView 返回給公共控制器類 LogicController.java

    5)????? 公共控制器類 LogicController.java 處理 ModelAndView 信息,執行 b.jsp 將結果數據顯示出來;

    3.1. 控制器 Controller




      控制器類配置在

    servlet-xxx.xml 文件中,封裝后的 Controller 特點如下:

    1)??? 繼承 AbstractController 類,便于調用應用環境的 Web 特性;

    2)?? 只用控制器做請求的轉發,業務實現全部在邏輯層;

    3)????? 采用反映射機制( reflect ),運行期調用邏輯類中的方法,而請求 URI 、邏輯類和方法名之間的對應關系只需要在 servlet-xxx.xml 中配置,這樣,控制器實現就只有唯一的一個類文件;

    3.2. 邏輯層 Logic




      邏輯層類在

    applicationContext-xxx.xml 文件配置 Bean 定義中,主要實現兩項功能:一是處理業務邏輯,二是操作數據庫;

    邏輯層類首先需要定義一個接口類,統一以 xxxLogic.java 命名,實現類命名為 xxxLogicImpl.java ,并繼承 JdbcDaoSupport 類,這樣邏輯類便具有了數據庫訪問能力。

    邏輯類的方法如果被公共控制器類 LogicController.java 的反映射機制直接調用,則其接口類需要繼承空的公共接口類 BasicLogic ,定義方法時參數和返回值是固定的,如果是被其他邏輯類調用則不需要。

    public ModelAndView initLogin(HttpServletRequest request, HttpServletResponse response, ServletContext servletContext);

    控制器層直接將請求的 request response servletContext 全部傳遞過來交由邏輯層自由控制,對于 request 中的表單數據,未采用 SimpleFormController 的模式定義表單對象,建議手工獲取,從代碼量本身來將并不復雜,反而更加靈活。在業務處理完成后,必須構造一個 ModelAndView 對象,作為方法返回值回傳給控制器。

    范例代碼如下:

    public class AdminLogicImpl extends JdbcDaoSupport implements AdminLogic

    {

    ?

    public ModelAndView insertUser(HttpServletRequest request, HttpServletResponse response,

    ??? ServletContext servletContext) throws DataAccessException

    ??? {

    ? ???? ??String userId = request.getParameter("userId");

    ? ???? ??String userName = request.getParameter("userName");

    ? ???? ??int age = Integer.parseInt(request.getParameter("age"));

    ? ???? ??double weight = Double.parseDouble(request.getParameter("weight"));

    ?

    ? ???? ??String sqlStr = "insert into testuser (userId,username,age,weight,updatetime) values (?,?,?,?,?)";

    ?? ???? ?Object[] object = new Object[]{userId, userName, age, weight, new Date()};

    ?? ???? ?getJdbcTemplate().update(sqlStr, object);

    ?

    ? ???? ?Map<String, Object> model = new HashMap<String, Object>();

    ?? ???? ?model.put("msg", " 插入用戶成功! ");

    ??? ????model.put("url", "pageForm.user");

    ?? ???? ?String view = "admin/message.jsp";

    ?? ???? ?return new ModelAndView(view, model);

    ??? }

    }

    3.3. 表現層 Jstl

    表現層采用 Jstl taglib 1.2 ,在 *.jsp 頁面中加入 taglib 引用即可使用 Jstl 標簽的大部分功能了,標簽的具體使用方法請參考相關文檔。

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>


    評論

    # re: 單獨使用Spring建立簡易開發框架(二) [未登錄]  回復  更多評論   

    2007-09-11 18:19 by david
    你好, 可以給個例子看一下嗎?
    Email: wst0350@163.com
    QQ : 276527668

    # re: 單獨使用Spring建立簡易開發框架(二) [未登錄]  回復  更多評論   

    2007-09-11 21:10 by john
    en

    主站蜘蛛池模板: 中文字幕亚洲一区| 亚洲国产欧美日韩精品一区二区三区 | 亚洲AV无码久久精品蜜桃| 国产精品免费高清在线观看| 亚洲国产模特在线播放| 啊v在线免费观看| 免费播放一区二区三区| 国产亚洲欧美日韩亚洲中文色| 国产亚洲真人做受在线观看| 野花高清在线电影观看免费视频| 一级毛片免费在线播放| 亚洲va在线va天堂va手机| 亚洲无线一二三四区手机| 中字幕视频在线永久在线观看免费| v片免费在线观看| 亚洲视频在线观看2018| 亚洲另类激情综合偷自拍图| 成人性生交视频免费观看| 波多野结衣免费一区视频 | 亚洲一级免费视频| 无码免费又爽又高潮喷水的视频| 亚洲福利电影一区二区?| 亚洲成av人片天堂网老年人| 57PAO成人国产永久免费视频| 久久久精品视频免费观看| 亚洲日韩看片无码电影| 亚洲邪恶天堂影院在线观看| 免费不卡中文字幕在线| 97无码免费人妻超级碰碰碰碰| 一级毛片免费观看不卡的| WWW国产成人免费观看视频| 亚洲国产成人精品无码区二本| 亚洲视频在线免费观看| 亚洲性日韩精品一区二区三区| 四虎在线视频免费观看| 精品国产免费人成电影在线观看 | 免费播放春色aⅴ视频| 色婷婷7777免费视频在线观看| 亚洲免费视频在线观看| 国产精品无码永久免费888| 直接进入免费看黄的网站|