版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、SpringMVC的搭建一直以來(lái)接觸到的都是SSH的框架,形成了 MVC模式,本來(lái)并 沒(méi)有想著去弄另一個(gè)MVC模式,但現(xiàn)在springMVC模式很熱,所以 我也學(xué)習(xí)一下,首先我聲明一下,這個(gè)框架我也是在網(wǎng)上找了一些資 料才完成的,源文件等也是利用的網(wǎng)上的現(xiàn)成的,但是有對(duì)其進(jìn)行修 改。下面來(lái)詳細(xì)的說(shuō)一說(shuō)這個(gè)模式的搭建。首先在 spring中是以 controller來(lái)作為控制器(相當(dāng)于SSH中的action),其他的和SSH框 架沒(méi)有區(qū)別。因?yàn)镾pring是基于注解的,所以在整個(gè)的模式中都是采 用注解的方式來(lái)處理,這個(gè)項(xiàng)目是用springMVC+hibernate 一起來(lái)搭 建的。這個(gè)項(xiàng)日的搭建
2、我花了很久的時(shí)間,也弄了蠻久才成功,希望 日后能更加完善!理解更加的深入。一:整體框架的結(jié)構(gòu)圖以及所需的jar包。這里spring是3.0.1, hibernate是用的3.6,數(shù)據(jù)庫(kù)是用的mysql 5.6,前提工作是要建立 好一個(gè)數(shù)據(jù)庫(kù),我這里是名為springmvc的數(shù)據(jù)庫(kù)來(lái)進(jìn)行操作,這里 是采用的hibernate自動(dòng)更新的方式,所以可以不需要建表只需要建 立起數(shù)據(jù)庫(kù)就好。 & lib菖.antlr-2.7.&.jarya, .mchange.vS.cSpO-.jar旭 .sf.cglib-2.2.O.jar旭 .aopalliance-l.O.Ojarya, . a mons.fil
3、&uplo ad-1.2.0 jar ya, com. s p ri n g so u rce. org. a p a ch e.coirn mon s. httpcl i ent- 3. l.O.j a r 旭 mons.lang-2.4.0jar 旭 mons.logging-1.1.1.jar ya, mons.pool-l,.5.3.jar ya, . a pache.log4i-1.2.15 J arya, com .springsou rce. org. a spectj .weaver- I.6.S. RE LEASE jar 旭 com. s p ri n g so u rce
4、. org .cod eh a u s.j a ckson. m a pper-1.0.O.j a r ya, commons-collections-S.l.jar ya, commons-dbcp.jarya, commons-fileupload-1.2.2.jar旭 commons-io-2.0.1.jar旭 commons-logging-1.1.1.jarM dom4j-1.6.1.jarM hibernate-jpa-2.0-api-1.0.1.Final.jarM hibernateS.jara _ j ava ssi st- 3.12.0. GA.j a r蛆 jmxtool
5、s-1.2.1.jara _ j otm Jara _ jstl-1.2.jara _ jta-l.l.jar5 Iog4j-1.2.11.jar,mysql-connector-java-5.1.25-binjariTJRU -D LL站org. springframework, asm-3.0.1. RE LEASE-A.j ar 如 org.springfra mework.aspects-3.0.1. RE LEASE-A.ja r H org .sprin gfra m ework, bea ns-3.0.1.RE LEASE-A.j ar 3 org .sprin gfra m e
6、work, context-3.0.1.RE LEASE-A.j ar 站org .sprin gfra m ework, core-3.0.1. RE LEASE-A.j a r 妃org. springframawork. express ion-3.0.1. RE LEASE-A.j ar H org.springfra mework.instrum ent-3.0.1.RE LEASE-A.j a r3 org .sprin gfra m ework, in stru m ent.tom cat-3.0.1. RE LEASE-A.j a r 站org .sprin gfra m ew
7、ork.j d be- 3.0.1. RE LEASE-A.j ar 如 org. s pri n gf ra m ework, o rm-3.0.1. RE LEASE-A.j ar 姐 org.springfra mework.oxm- 3.0.1.RE LEASE-A.ja r H org.springframework.transaction-S.O.l.RELEASE-A.jar 站org.springframework.web-3.0.1.RELEASE-A.jar 如 org .sprin gfra m ework.web. portl et-3.0.1. RE LEASE-A.
8、j a r 姐 org .sprin gfra m ework.web. servl et-3.0. l.RE LEASE -Aja r .,persist&nce.jar項(xiàng)目框架的代碼結(jié)構(gòu):M 七 xapooljarJ 027 springMVCJ 西 &rc工由 com.mvc工由 controller= T Stu d entControl I sr.j avaJ 田 dao,J, EntityDaoJava工由entity= T Student.javaffi serviceentServi ce.j ava工西config兇 a ppi i cati onContext.xm I.
9、gRE System Library jdkl.6A Apache Tomcat v6.0 Apache Tomcat vS.O.顫 Web App Libraries工由 WebContentl B META-1NF導(dǎo) styleJ & WEB-INF._ lib 臼? viewiKi spring-servlet.xmII% web.ximl國(guó) index.jsp二:開(kāi)始搭建環(huán)境。1,首先把上面所需的包添加進(jìn)來(lái)后,我們要在/WEB-INF日錄下的web.xml里面添加spring的監(jiān)聽(tīng)器,以及相關(guān)的配置。源碼如下:s3h3contextConfigLocationclasspath:app
10、licationContext*.xmlorg.springframework.web.context.ContextLoaderList enerspringorg.springframework.web.servlet.DispatcherServletcontextConfigLocation/WEB-INF/spring-servlet.xml 1spring *.doindex.html index.htm index.jsp default.html default.htm default.jsp 2,接下來(lái)可以編寫(xiě)spring的配置文件,來(lái)整合hibernate,主要的配置寫(xiě)在一
11、個(gè)專門存放配置文件的源碼日錄下config文件夾下,這 里的applicationContext.xml是spring的主要配置文件,包括數(shù)據(jù) 源等的配置。源碼如下: org.hibernate.dialect.MySQL5InnoDBDialectupdatetruetruecom.mvc.entity3,完成上面的工作后,我們可以來(lái)進(jìn)行下面的spring-servlet.xml文件的編寫(xiě)了,這個(gè)文件是放在/WEB-INF日錄下,應(yīng)該他也可以放 到config日錄里,這里我就不做這一步工作了,具體的源碼如下: 4, 配置文件完成后,最好進(jìn)行一下測(cè)試,這樣子保證環(huán)境沒(méi)有出錯(cuò)。 如果測(cè)試通過(guò)了,
12、就可以進(jìn)行下面的工作啦!三:開(kāi)始編寫(xiě)代碼。1,首先要建立需要用到的實(shí)體,這里我是采用的一個(gè)對(duì)學(xué)生的簡(jiǎn)單增刪改查的操作來(lái)進(jìn)行測(cè)試案例的。項(xiàng)日中采用注解的方式來(lái)進(jìn) 行映射。實(shí)體是放在com.mvc.entity包里面,名為Student.java, 源碼如下:package com.mvc.entity;import java.io.Serializable;import javax.persistence.Basic;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.G
13、eneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.Table;EntityTable(name=student)public class Student implements Serializable(private static final long serialVersionUID = 1L;private Integer id;private String name;private String psw;IdBasic(opt
14、ional=false)Column(name=id)GeneratedValue(strategy=GenerationType.IDENTITY)public Integer getId() (return id;public void setId(Integer id) (this.id = id;Column(name=name)public String getName() (return name;public void setName(String name) ( = name;Column(name=psw)public String getPsw() (return psw;
15、public void setPsw(String psw) (this.psw = psw;2、來(lái)添加控制層代碼即controller層代碼,這里是放在了 com.mvc.controller 包里,我這里建立的是 StudentController.java 文 件,源碼如下:package com.mvc.controller;import java.util.List;import javax.servlet. HYPERLINK http:/http.HttpServletRequest http.HttpServletRequest;import javax.servlet. HY
16、PERLINK http:/http.HttpServletResponse http.HttpServletResponse;import mons.logging.Log;import mons.logging.LogFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.ModelMap;import org.springframework.web.
17、bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import com.mvc.entity.Student;import com.mvc.service.StudentService;ControllerRequestMapping(/student.do)public class StudentControllerprotected final transient Log log =LogFactory.getLog(StudentController.cla
18、ss);Autowiredpublic StudentService studentService;public StudentController()RequestMappingpublic String load(ModelMap modelMap)List list = studentService.findAll();modelMap.put(list, list);return student;RequestMapping(params = method=add)public String add(HttpServletRequest request, ModelMap modelM
19、ap) throws Exceptionreturn student_add;RequestMapping(params = method=save)public String save(HttpServletRequest request, ModelMap modelMap)Student st = new Student();String name = request.getParameter(name);String psw = request.getParameter(psw);st.setName(name);st.setPsw(psw);trystudentService.sav
20、e(st);modelMap.put(addstate,添加成功);catch(Exception e)e.printStackTrace();log.error(e.getMessage();modelMap.put(addstate,添加失敗 b);return student_add;RequestMapping(params = method=del)public void del(RequestParam(id) String id, HttpServletResponse response)tryStudent st = new Student();st.setId(Integer
21、.valueOf(id);studentService.delete(st);response.getWriter().print(del:true);catch(Exception e)這里只用了兩層,即dao層和service層來(lái)實(shí)現(xiàn)業(yè)務(wù)的控制。用dao 層來(lái)操作數(shù)據(jù)庫(kù)。具體的是EntityDao.java,這里的命名不太規(guī)范,最 規(guī)范的命名應(yīng)當(dāng)為StudentDao.java,這里我就不做修改了,他的具體 源碼如下:package com.mvc.dao;import java.util.List;import org.hibernate.SessionFactory;import or
22、g.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository;import com.mvc.entity.Student;Repository(entityDao)public class EntityDao (Autowiredprivate SessionFactory sessionFactory;public void save(Student s)( sessionFactory.getCurrentSession().save(s);Sup
23、pressWarnings(unchecked)public List findAll()(returnsessionFactory.getCurrentSession().createQuery(from Student).list();public void update(Student model) ( sessionFactory.getCurrentSession().update(model);public void delete(Student model) ( sessionFactory.getCurrentSession().delete(model); 4. servic
24、e層來(lái)調(diào)用dao層的方法來(lái)實(shí)現(xiàn)業(yè)務(wù)。這里主要是放在 com.mvc.service 包里,建立了 StudentService.java 方法。具體的源碼 如下:package com.mvc.service;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;i
25、mport com.mvc.dao.EntityDao;import com.mvc.entity.Student;Service(studentService)Transactionalpublic class StudentService Autowiredpublic EntityDao entityDao;public void save(Student st)entityDao.save(st);public void delete(Student obj)entityDao.delete(obj);public List findAll() return entityDao.findAll();public void update(Student model)entityDao.update(model);四:最后我們只需要進(jìn)行表現(xiàn)層的編寫(xiě),這里頁(yè)面的代碼我是放在了/WEB-INF/view目錄 下,主要有student_add.jsp和student.jsp頁(yè)面,我還沒(méi)有完成編輯頁(yè)面的編寫(xiě),可以由大 家自己去實(shí)現(xiàn)。student_add.jsp頁(yè)面源碼如下: Insert ti
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 培訓(xùn)中心停車場(chǎng)運(yùn)營(yíng)辦法
- 地鐵車輛段建設(shè)機(jī)械臺(tái)班施工合同
- 甜品店門頭租賃協(xié)議
- 農(nóng)村林地租賃合同:林業(yè)碳匯項(xiàng)目
- 藝術(shù)團(tuán)體管理助理招聘協(xié)議
- 設(shè)計(jì)單位流程優(yōu)化方案
- 咖啡館炊事員工作守則
- 建筑工程備案審批合同ktv
- 機(jī)場(chǎng)航站樓廣告牌安裝施工合同
- 養(yǎng)殖場(chǎng)地轉(zhuǎn)讓書(shū)
- 部編版道德與法治五年級(jí)上冊(cè)中華民族一家親第一課時(shí)課件
- 女子沙灘排球跳發(fā)球空中擊球技術(shù)的分析
- 氣浮機(jī)使用說(shuō)明書(shū)
- 《公務(wù)員回避制度》課件
- 品質(zhì)管理與質(zhì)量控制提升產(chǎn)品品質(zhì)
- 四川省涼山州西昌市2023-2024學(xué)年四年級(jí)上學(xué)期期末數(shù)學(xué)試卷
- 康復(fù)護(hù)理的歷史發(fā)展
- 煙花爆竹從業(yè)人員安全培訓(xùn)試題
- 電梯使用現(xiàn)場(chǎng)類隱患專項(xiàng)排查清單
- Part1-2 Unit3 Internship教案-【中職專用】高一英語(yǔ)精研課堂(高教版2021·基礎(chǔ)模塊2)
- 一例下肢靜脈潰瘍患者的個(gè)案護(hù)理論文
評(píng)論
0/150
提交評(píng)論