实例介绍
传智播客_Springmvc+Mybatis由浅入深全套视频教程-SpringMVC笔记(两天) 这是本人整理的笔记,整理不易,谢谢支持
有了 Dispatcher Servlet减少了其它组件之间的耦合度 2、处理器映射器 landlerMapping(不需要程序员开发) 作用:根据请求的ur1查找 Handler 、处理器适配器 HandlerAdapter 作用:按照特定规则( HandlerAdapter要求的规则)去执行 Handler 4、处理器 Handler(需要程序员廾发) 注意:编写 Handler时按照 HandlerAdapter的要求去做,这样适配器才可以去正确执行 Handler 5、视图解析器 View resolver(不需要程序员开发) 作用:进行视图解析,根据逻辑视图名解析成真正的视图(view) 6、视图View(需要程序员廾发jsp) view是一个接口,实现类支持不同的view类型(jsp、 freemarker、pdf..) Handler处理器 平常叫做 controller 返 ModelAndviewe 我们会写不 枚行 的 handler,不同 的 handler不可能处理器适配器, 都由前端控制器执 HandlerAdapterw 行,所以要由不去执行 Handler 的适配器执行对的 handler 3. spr inigillvc入门程序 环境准备 (1)jar包 a commons-logging-1 1.1 jar au istl-1.2. jar aU spring-aop-3.2.0. RELEASEjar ad spring-aspects-3.2.0.RELEASE. jar ad spring-beans-3.2.0.RELEASE,jar ad spring-context-3.2.0.RELEASE. jar a spring-context-support-3.2.0. RELEASE ja ad spring-core-3.2.0. RELEASE. jar ad spring-expression-3.2.0.RELEASE,jar a spring-jdbc-3.2.0.RELEASE. jar a spring-orm-3.2.0.RELEASE,jar ng spring-test-3. 2.0.RELEASE. jar ad spring-tx-3.2.0.RELEASE,jar a spring-web-3.2.0.RELEASE,jar a spring-webmvc-3.2.0.RELEASE jar (2)在web.xm中配置前端控制器。 <serylet> Kservlet-name>springmvc</ servlet-name> Kservlet-class>org. springframework. web. servlet Dispatcher Servlet</servlet-class) Kinil-param param-name>contextConfigLocation/param-name> <param-value>classpath: springmvc. xml/param-value> √init- param> (/servlet> Kservlet-imapp ing <servlet-name>springmvc/servlet-name> Kurl-pattern)* action</url-pattern K/servlet-mapping) 详细解析如下 !-9 eminem-前端控制器-> seU⊥∈t <servlet-name>epringmvc</servlet-nar ccrvlct clos3org spr=ngEramewcrk, web servlet. Diapat=her Servlet<'scrvlct !-- contextcomficlocation配置 3E1111gL1κc加载的配置文件(配置处理器映射器、适配器等等 如果不配置 nLexLCur. LigLocaLion,默认加的是/WEB-INF/serv1eL名称-s9r1veL,2m1( soLItoN vC-serv19-.x1) </init-param> /servlet servI∈L-I14 <serrlet-mama>springmvc</servlet-name> 第一种;*,at i问以,atio结尾由 Dispatchersorv.行解析 以访问的地都山 Dicpat chcrs-rvlct进行解析,对于静态文件的解析需要配置不让 icpatchorsarⅥlc进行解析 使用比种方式可以实现FT风格的ur1 种:1,这样酡置不对,使月这种配置,最终要转发到 仍然会由3 jaLcherserye解析i地址:不能根据su页面找到 handler:会报铛。 curl-pattern*actione,url-pattern </servlet-mapping 关于 contextConfigLocation <!- context( onfigLocation配置 springmvc加载的配置文件(配置处理器映射器、适配器等等) 如果不配置 contextConfiglocation,默认加载的是/WEB-INF/ servlet名称- serlvet.xm1( springmvc servlet. xml) 关于 url-pattren 第一种:*. action,访问以. action结尾由 DispatcherServlet进行解析 第二种:/,所以访问的地址都由 DispatcherServlet进行解析,对于静态文件的解析需要配置不讣 Dispat cherServlet进行解析 使用此种方式可以实现 RESTful风格的ur1 第三种:/*,这样配置不对,使用这种配置,最终要转发到个jsp页面吋, 仍然会由 Dispatcher serv le解析jsp地址,不能根据jsp页面找到 handler,会报错 插播一个知识: tomcat debug启动和 start启动的区别: debug启动后修改代码不用重启也能生效, start启动的话修改代 码后需要重启 tomcat才能生效 (3)在 classpath下的 springmvc.xm中配置处理器适配器 !—处理器适酉器所有处理器适器都实现 Handleradapter接∏— <bean class-org springframework web servlet mvc. SimpleControllerHandlerAdapter" /> 此适配器能执行实现 Controller接口的 Handler (4)开发 Handler 需要实现 controller接∏,才能由 org, springframework.web. servlet.mvc. SimplecontrollerHandlerAdapter适配器执行。 public class ItemsControllerl implements Controller oVerride public ModelAndView handleRequest(IlttpServletRequest request HttpservletreSponse response throws Exception ( /调用 service查找数据库,查询商品列表,这里使用静态数据模拟 List(Items> itemsList- new ArrayList<Items>O //向list中填充静态数据 Items items 1= new Items O i tems1. setName("联想笔记本") items 1. setPrice(6000f) tems1. setDetail(" ThinkPad T430联想笔记本电脑!") Itemsitems 2= new Items o i tems2. setName(苹果手机"); items 2. setPrice(5000f 1 tems_2. setDetail(" i phonet6苹果于机!"); itemsList. add(items 1) itemsList. add(items 2 //返回 Modelandview Mode lAndView mode l And View= new Mode l AndViewO //相当于 request的 setAttribut,在jsp页面中通过 itemslist取数据 modelAndView. addObject(itemsList", itemsList //指定视图 modelAndView. setViewName("/WEB-INF/jsp/items/itemsList jsp ") return modelAndview (4)视图编写 ae WebContent b META-INF 4②WEB-INF sp items B itemcliticn Jsp D C x web,xm 核心如下 高品列表 <table width=100 border=1> <tr> <td>商品名称</td> <td>商品价格</td> <td>生产日期</td> <td>商品描述</td> <td>操作</td> </tx> <c: forEach items="sfitemsList n var=item"> <tr> <td>s(item name </td> <td>s(item price ]</td> <td><fmt: formatDate value-"s(item createtime)" pattorn-"Yyyy-MM-dd HH: mm: ss"/></td> <td>s(item detail )</td> <td>< a href=" s(pageContext. request. contextpath}/item/ed主 titem. action?id=【item.id}">修改</a×</td> </tx> </c: forEach> </table> 商品列表 <table width=100% border=1> <tr> <td>商品名称</td <Ld>商品价格<Ld <td>生产日期</td <td>商品描述<td〉 <td>操作</td Kc: forEach items="SitemsList)var=item tr> <td>litem name</td> <td>$litem price)</td> <td>(fmt: formatDate value="Sitem. createtime."pattern=yyyy MM dd Ill: mm: ss"/></td> <td>litem dctail(/td> <td>a href=s page Context request. contextPath )/item/edit tem. action?id=s[item id">k/a/td) K/tr) K /c: forEach> K/table> (5)配冒 Handler( springmvc,xm1) 将编写 Handler在 spring容器加载。 !_-配置 Handler- <bean name-/queryItems test action class-"cn. itcast ssm controller. Items Controller1"/> (6)配置处理器映射器( springing.xml) 在 classpath下的 springmvc.xm中配置处理器映射器 !—处理器映射器将bean的nue作为ur进行查找,需要在配置 Handler时指定 beanname(就是ur1) 所有的映射器都实现 HandlerMapping接口 Bean class="org. springframework. web. servlet. handler BeanName HandlerMapping/> (⑦)配置视图解析器( springmVc.xm1) !—视图解析器 解析jsp解析,默认使用jstl标签, classpath下的得有jstl的包 <bean class"org. springframework. web. servlet view. Internal Resource ViewResolver 总结:本次入门程序的 springmvc.xm所有配置如下(暂时很少) !--配置 Handler-- <bean namme-/query Items. ac Lion class-"cn. itcasl sSll springmvc controller I Lems Controller"/> !--处理器映射器 (bean class=org. springframework. web. servlet. handler BeanName Url Handler Mapping /> !--处理器适配器-> <bean class="org. springframework. web. servlet mvc. SimpleControllerllandlerAdapter/) !--视图解析器-> Bean class-org. spring framework, web servlet view. InternalResourceView Resolver"/> http://www.springframeworkorg/schema/mvc http://www.springframeworkorg/schema/mvc/spring-mvc-3.2.xsd http://www.springframeworkorg/schema/context http://www.springframeworkorg/schema/context/spring-context-3,2.xsd http://www.springframeworkorg/schema/aop http://www.springframeworkorg/schema/aop/spring-aop-3.2.xsd http://www.springframeworkorg/schema/tx http://www.springframeworkorg/schema/tx/spring-tx-3.2.xsd"> <! 配置Hand1 <bean name="/queryItems action"class="cn. itcast ssm springmvc controller ItemsController"/> <!--处理器映射器 <bean class="org. springframework. web. servlet. handler. BeanNameUrlHandlerMapping"/> !--处理器适型器 <bean class=org. springframework. web. servlet mvc. SimpleControllerHandlerAdapter/> <!--视图解析器--> <bean class="org. springframework, web servlet view. InternalResourceviewResolver"/> (8)部署调试 访问地址http://localhost:8080/springmvcfirst1208/queryltems.action 处理器映射器棖据ur1找不到 Handler,报下边的错误。说明url错误。 4ehttp://localhost:8080/springavefirst1208/queryitesss.action 9访问最多火狐官方站点□新手上路口常用网址 Http stAtus 404 type Status report message escription The requested resource is not available Apache Tomcat/7.0.52 处理器映射器根据ur1找到了 Handler,转发的jsp页面找到,报下边的错误,说明jsp页面地址错误了 ←hHt8/r/urk 访问最多口火算官方站点口新手上路常用址 Http Status 404-/springmvcfirst1208/web-inf/jsp/items/itemslists jsp type Status report age lsonmgmvcfrst 1208/WER- INFAspremsitemst stsisn rptior Tha requested resource k not anable. 测试成功贞面如下: 查询商品列 尸☆自喜合 画访可最多火孤方站占口新手上路草用网址 查询条件 商品列表 匾品名称 商品价格 商品猫述 作 联想笔记本 nkPad T430联想笔记本电脑! 苹果手机 phone6苹果手机 条改 木人测试的结果页面: 》 查询商品列表 查询条件 商品列表: 商品名称 商品价格 生产日期 商品描述 操作 000.0 2007-07-1019:40:00 患音笔记本 陛为手机22 2000.0 2016-09-1219:20:00 华为荣手机4 4. sprlnglllvc入门程序-非注解映射器和适軋器( sprlngIllvc.xml) (1)非注解的处理器映射器 处理器映射器 org. springframework. web. servlet. handler. BeanNameUrl Handler Mapping 另一个映射器 org. springframework. web. servlet. handler. SimpleUrlHandlerMapping http://www.springframeworkorg/schema/tx/spring-tx-3.2.xsd"> !--配置 Handler-- <bean id="items Control Ler]"name="/queryItems action class="cn. itcast ssm, controlLer. Items Controller1"/ <1--处理器映射器将bean的name作为u1进行查找,需要在置 Handler时指定 beanname(就是ur1)-- <bean class="org. springframework web servLet. handLer. BeanNameUMkHandLerMapping"/> <!-简单u1映射 <bean class="org. springframework. web. servLet. handLer. SimpLeUrLHandleNMapping"> <property name="mappings"> <props> !--对 items Contro11er1进行ur1映射,ur1是/ queryItems1, action-- 3个ur可以访问同一个 <prop key="/queryItemsl action"it <prop key="/queryltemsz action">items Controller1</pre Controller </props> </property> !--配置 Handler-> Bean id-"i Lems Controller"nlame-/query I Lems action class="cn. itcast ssm springmvc controller ItemsController"/> <bean id="items Controller2 class="cn. itcast ssm springmvc controller. Items Controller2"/> !处埋器映射器 <bean class-org springframework wcb. scrvlct handler BcanNamcUrlHandlcrMapping"/> <bean class=org. springframework. web. servlet. handler. SimpleUrlHandlerMapping Property name-nappings"> props <prop key=/query Items1 action>items Controllers/prop Kprop key=/queryltems2 action >itemsController(/prop) prop kcy/qucryItcms3 action >items Controllcr2</prop> props </property </bean> 二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二 (2)非注解的处理器适配器 org. springframework. web. servlet mvc SimpleControl lerHandlerAdapter 要求编写的 andler实现 Controller接凵。 org springframework web servlet mvc Http request hAndleradapter 要求编写的 Handler实现 HttprequesthanDler接口。 对应编写 handler如下 public class ltemscontroller2 implements Httprequesthandler Override publicvoidhandlerequest(httpservletreQuestrequest Httpservletresponse response throws Servletexception, IoexCep=iOn [ //调用 servicε查找数据斥,查询商品列表,这里使用静态数据模拟 List<Items> itemsIist new Arraylist<items>( //问_ist中填充静态数据 Itemsitems 1= new Items( a tems1. setName("联想笔记本"); items 1. netPrice(6000f Items1. setDetai1(" Thinkpad t430联恕笔记木本电脑!"); Items items 2= new Items(i a tems2. setName("苹果于机"); items 2. setPrice(5000f)i items2. setDetai1(" iphone6苹果手机!"); itemslist. add(items 1); itemslist. add(items 2); //设置模型数据 request. seLAtLribute("itemslist itemsList)i //设置转发的视图 request getRequestDispatcher(/WEB INF/jsp/items/itemsuistjsp). forward (request, response) /使用此方法可以通过修改 response,设置响应的数据格式,比如响应json数据 response. setCharacterEncoding(utf-8 )i response. setContentType ("application/ison; charset=utr-8")i resoonse. getwriter(). write(ison:");*/ 【实例截图】
【核心代码】
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论