亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Spring MVC+JDBCTemplate的Web系統(tǒng)的研究與應用

        2017-03-22 12:37:09趙璘王紅霞
        軟件工程 2017年1期
        關鍵詞:視圖校驗語句

        趙璘 王紅霞

        摘 要:Spring MVC以其松散耦合的特性在業(yè)內(nèi)被廣泛使用,JDBCTemplate對數(shù)據(jù)庫的操作在JDBC層面做了深層次的封裝,簡化了項目中繁瑣的JDBC操作。Spring MVC與JDBCTemplate的有機結(jié)合,優(yōu)化了軟件開發(fā)的過程。在分析Spring MVC與JDBCTemplate的技術要點、工作原理的基礎上,通過實例,展示了Spring MVC+JDBCTemplate的整合應用給項目帶來的便利。

        關鍵詞:SpringMVC;JDBCTemplate;封裝;整合

        中圖分類號:TP311.5 文獻標識碼:A

        1 引言(Introduction)

        在Web應用中,表現(xiàn)層是Web應用不可忽略的重要組成部分,Spring為表現(xiàn)層提供了一個十分優(yōu)秀的Web框架——Spring MVC。與大多數(shù)其他的Web框架一樣的設計理念,都是遵循MVC的思想架構(gòu)。Spring MVC通過注解的方式,讓POJO成為處理請求的控制器,無需實現(xiàn)任何的接口[1]。另外,Spring MVC最大的優(yōu)點就是松散耦合,更具有靈活性和可擴展性[2]。

        JDBC已經(jīng)能夠滿足大部分用戶最基本的對數(shù)據(jù)庫的需求,但是在使用JDBC時,應用必須自己來管理數(shù)據(jù)庫資源。JDBCTemplate正是為了減少JDBC繁瑣的代碼而設計出來的。Spring對數(shù)據(jù)庫操作需求提供了很好的支持,并在原始JDBC基礎上,構(gòu)建了一個抽象層,提供了許多使用JDBC的模板和驅(qū)動模塊,為Spring應用操作關系數(shù)據(jù)庫提供了更大的便利[3-6]。Spring封裝好的模板,封裝了數(shù)據(jù)庫存取的基本過程,方便使用。

        2 Spring MVC的技術要點(Technical points of Spring MVC)

        2.1 Spring MVC的組件

        (1)DispatherServlet:前置控制器,負責接收并處理所有的web請求,根據(jù)HandlerMapping找到具體的Controller,由Controller完成具體的處理邏輯。

        (2)HandlerMapping:負責處理web請求和具體的Controller之間的映射關系匹配。

        (3)Controller:DispatherServlet的次級控制器,web請求的具體處理者。DispatherServlet獲得HandlerMapping的返回結(jié)果后,調(diào)用Controller的方法處理前端發(fā)出的請求,處理結(jié)果通過ModelAndView對象返回。

        (4)ViewResolver:用來處理視圖名與具體的View實例之間的映射對應關系。根據(jù)ModelAndView中的視圖名查找相應的View實現(xiàn)類,然后將查找的結(jié)果返回給DispatcherServlet,DispatcherServlet最終會將ModelAndView中的模型數(shù)據(jù)交給返回的View處理最終的視圖渲染工作。

        (5)View:為支持多種視圖技術而存在,統(tǒng)一抽象視圖的生成策略,根據(jù)模型數(shù)據(jù)輸出具體的視圖。

        2.2 Spring MVC的體系架構(gòu)

        Spring MVC是基于Model 2實現(xiàn)的,Model 2是MVC模型在Java Web應用中的一個變體。Spring MVC的底層機制是MVC,是利用處理器分離模型、視圖和控制達到松散耦合的效果。Spring MVC的框架模型如圖1所示。

        從接收請求開始,到返回響應為止,Spring MVC框架中的各個組件各司其職,通力合作,有序配合地完成各自的工作。在整個Spring MVC框架中,DispatcherServlet處于核心領導地位。它負責組織和協(xié)調(diào)不同的組件完成從請求到響應的任務。其處理請求的整體過程如下:

        (1)整個過程從客戶端發(fā)出一個HTTP請求開始,Web應用服務器接收請求,如果與DispatcherServlet的請求路徑相匹配,Web容器就將該請求轉(zhuǎn)發(fā)給DispatcherServlet處理。

        (2)DispatcherServlet接收到這個請求后,將根據(jù)請求的信息及HandlerMapping的配置找到處理請求的處理器,即Handler。注意:Spring MVC中并沒有定義Handler接口。

        (3)當DispatcherServlet根據(jù)HandlerMapping得到對應當前請求的Handler后,通過HandlerAdapter對Handler進行封裝。再通過統(tǒng)一的適配器接口調(diào)用Handler(HandlerAdapter是Spring MVC的框架級接口)。

        (4)處理器完成業(yè)務處理后,返回一個ModelAndView給DispatcherServlet,ModelAndView包含視圖邏輯的名稱和模型數(shù)據(jù)的信息。

        (5)ModelAndView中包含的是邏輯視圖名,不是真正意義的視圖對象。DispatcherServlet通過ViewResolver完成從邏輯視圖名到真實視圖對象的解析。

        (6)當?shù)玫秸嬲囊晥D對象后(View),DispatcherServlet就使用這個View對象對ModelAndView中的模型數(shù)據(jù)進行視圖渲染。

        (7)最后客戶端得到的響應信息可能是一個頁面(HTML、JSP),也可能是XML、JSON串或其他不同的媒體形式。

        2.3 Spring MVC配置

        (1)配置DispatcherServlet

        DispatcherServlet在web.xml中進行配置,它讓Spring MVC能夠生龍活虎?;敬a如下所示:

        webservlet

        org.springframework.web.servlet.DispatcherServlet

        contextConfigLocationclasspath:web-servlet.xml

        1

        webservlet

        *.do

        3 JDBCTemplate的應用(The application of JDBCTemplate)

        由于JDBC API過于底層,直接進行JDBC編寫數(shù)據(jù)庫程序,需要完成數(shù)據(jù)庫代碼(SQL)、還需要編寫獲取JDBC連接、異常處理、釋放連接資源等代碼,實在是過于繁瑣。Spring JDBC通過模板和回調(diào)機制簡化了JDBC編寫數(shù)據(jù)庫程序的復雜度。借助JDBCTemplate,程序員只需要編寫處理業(yè)務的核心SQL語句即可。

        3.1 JDBCTemplate配置

        在Spring的配置文件ApplicationContext.xml中進行數(shù)據(jù)源的配置。以下代碼以mariadb數(shù)據(jù)庫為例,代碼如下:

        destroy-method="close"p:driverClassName="org.mariadb.jdbc.Driver"

        p:url="dbc:mysql://localhost:3306/asms?useUnicode=true&characterEncoding=UTF-8"

        p:username="asms"

        p:password="asms"/>

        3.2 JDBCTemplate中的常用方法

        (1)update()方法用于執(zhí)行數(shù)據(jù)庫表的新增、修改、刪除的SQL語句。

        (2)batchUpdate()方法用于執(zhí)行批處理相關的SQL語句。

        (3)query()方法及queryForXXX()方法:用于執(zhí)行查詢相關的SQL語句。其中queryForXXX()根據(jù)返回對象類型進行方法的選擇(queryForObject,queryForList等)。

        (4)call()方法用于執(zhí)行存儲過程、函數(shù)相關的SQL語句。

        3.3 JDBCTemplate實例

        在代碼中,以向表nps_classes中插入數(shù)據(jù)為例。首先定義SQL語句,然后使用JDBCTemplate執(zhí)行該SQL。

        privatestaticfinal String SQL_ADD_CLASS="insert into nps_classes(classid,classname,classdesc,batid,apid) values(?,?,?,?,?)";

        publicvoidaddClass(Map map) {

        Object[]params=MapUtil.getObjectArrayFromMap(map, "classid,classname,classdesc,

        batid,apid");

        jt.update(SQL_ADD_CLASS,params);

        }

        4 應用實例(Application instance)

        運用實際案例介紹Spring MVC在項目中的實現(xiàn)過程?;竟δ苷f明:畢業(yè)生首次登錄系統(tǒng)要完成自主注冊功能,該功能分為兩步完成:第一步,通過姓名和身份證號在畢業(yè)生信息中進行校驗,校驗成功后進入第二步,校驗失敗重新填寫姓名和身份證號進行校驗。第二步:在第一步校驗成功后,需要填寫姓名拼音、電子郵箱、驗證碼、密碼、確認密碼提交至系統(tǒng)保存,保存成功即畢業(yè)生注冊成功。

        (1)在注冊第二步,填寫相應信息后,點擊“下一步”按鈕,向服務端發(fā)送post請求,如圖2所示。

        (2)分發(fā)器得到客戶端請求后,通過控制器映射匹配到負責業(yè)務邏輯處理的控制器,并將請求轉(zhuǎn)發(fā)給該控制器。該控制器所在的Java類為StuRegisterController.java,代碼如下:

        @RequestMapping(value="/stu/registerasmsstep2.do")

        public Mapregisterasmsstep2(String studentno,String stupwd,Stringstudentnameen)

        throwsIOException {

        Mapjsonrslt=new HashMap();

        boolean flag=false;

        flag=this.registerService.updateregisterasmsstep2(studentno,stupwd,studentnameen);

        jsonrslt.put("flag",flag);

        returnjsonrslt;

        }

        (3)控制器調(diào)用RegisterServiceImpl處理注冊第二步的業(yè)務邏輯,其處理方法如下:

        @Override

        publicboolean updateregisterasmsstep2(String studentno,

        Stringstupwd,Stringstudentnameen) {

        boolean flag=false;

        MaprmParam=new HashMap();

        rmParam.put("studentno",studentno);

        rmParam.put("stupwd",stupwd);

        rmParam.put("studentnameen",studentnameen);

        int i=jdbctemplate.update(sql.updateregisterasmsstep2(),rmParam);

        if(i==1){

        flag=true;

        }

        return flag;

        }

        (4)由于業(yè)務要求第一步注冊校驗時已將畢業(yè)生信息插入到數(shù)據(jù)表中,所以第二步注冊僅僅是更新部分數(shù)據(jù)信息,RegisterServiceImpl中的JDBCTemplate更新數(shù)據(jù)表的信息,調(diào)用SQL如下:

        public String updateregisterasmsstep2() {

        return"update ASMS_STUREGINFO set stupwd=:stupwd,studentnameen=:studentnameen where studentno=:studentno";

        }

        (5)響應返回至客戶端獲取flag數(shù)據(jù),則顯示“注冊成功,請使用學號和密碼進行系統(tǒng)登錄”信息,如圖3所示。

        5 結(jié)論(Conclusion)

        本文分析了Spring MVC的技術要點和JDBCTemplate的應用。Spring MVC技術要點包括組件、框架模型和配置,JDBCTemplate的應用包括配置和常用方法。最后通過實際項目,介紹了web請求在Spring MVC中的應用,以及JDBCTemplate如何操作數(shù)據(jù)表。

        綜上得出:Spring MVC大大簡化了程序開發(fā)的繁瑣度,JDBCTemplate降低了編寫數(shù)據(jù)庫程序的復雜度。Spring MVC+JDBCTemplate的組合值得在Web應用軟件開發(fā)中廣泛使用。

        參考文獻(References)

        [1] 張文宇,許明健,薛昱.論spring的零配置與XML配置[J].計算機系統(tǒng)應用,2015,24(2):270-275.

        [2] 周燕玲.Spring MVC框架開發(fā)WEB應用程序的探索與研究[J].科技廣場,2016(6):25-28.

        [3] 葉雯.基于Spring MVC框架的Web登錄模塊的設計與實現(xiàn)[J].電腦知識與技術,2013(35):7983-7984.

        [4] Zhang Chao,Zhao Ping,He Jing.Design and Implementation of the Control System Software Based on MVC Model[J].High Power Laser and Particle Beams,2013(S1):91-95.

        [5] TianPengfei,Tian Di,Yang Guang.Design and Implementation of LIBS Software Based on MVC Architecture[J].Journal of Jilin University(Engineering and Technology Edition),2016(1):242-245.

        [6] Lin HC,et al.Development of a Real-Time Clinical Decision Support System upon the Web MVC-Based Architecture for Prostate Cancer Treatment[J].BMC Med Inform DecisMak,2011(926):3306-3309.

        作者簡介:

        趙 璘(1981-),男,碩士,助教.研究領域:軟件工程.

        王紅霞(1982-),女,碩士,工程師.研究領域:計算機軟件與

        理論.

        猜你喜歡
        視圖校驗語句
        重點:語句銜接
        爐溫均勻性校驗在鑄鍛企業(yè)的應用
        精彩語句
        5.3 視圖與投影
        視圖
        Y—20重型運輸機多視圖
        SA2型76毫米車載高炮多視圖
        大型電動機高阻抗差動保護穩(wěn)定校驗研究
        電測與儀表(2015年1期)2015-04-09 12:03:02
        基于加窗插值FFT的PMU校驗方法
        鍋爐安全閥在線校驗不確定度評定
        成年人视频在线播放麻豆| 丰满熟妇乱又伦| 男女av一区二区三区| 国产69精品久久久久久久| 久久国产36精品色熟妇| 国产AV无码专区亚洲AWWW| 亚洲男同免费视频网站| 中国人在线观看免费的视频播放| 天天噜日日噜狠狠噜免费| 99re6热在线精品视频播放6| 亚洲欧美国产日产综合不卡| 美女把内衣内裤脱了给男人舔| 一区二区三区国产色综合| 亚洲日韩精品一区二区三区| 日韩精品无码久久一区二区三| 无码人妻丰满熟妇区免费| 在线精品国产亚洲av麻豆| 精品久久久久香蕉网| 97色伦图片97综合影院久久| 久久久精品人妻一区二| 成人国产激情自拍视频| 亚洲av福利无码无一区二区| 国产亚洲精品成人无码精品网站| 邻居少妇张开腿让我爽视频| 精品香蕉99久久久久网站| 国产av人人夜夜澡人人爽| 国产国拍亚洲精品永久69| 无人视频在线播放免费| 337p人体粉嫩胞高清视频| 亚洲精品老司机在线观看| 一本大道综合久久丝袜精品| 我和隔壁的少妇人妻hd| 人妻饥渴偷公乱中文字幕| 日本五月天婷久久网站| 国产精品麻豆A啊在线观看| 亚洲av乱码国产精品观| 樱桃视频影院在线播放| 香蕉色香蕉在线视频| 一本色道久久综合狠狠躁中文| 开心五月激情五月五月天| 国产婷婷色综合av蜜臀av|