Java EE企业级框架技术及案例实战-Spring+Spring MVC+MyBatis(微课版) 课件 第十章 Spring MVC基础_第1页
Java EE企业级框架技术及案例实战-Spring+Spring MVC+MyBatis(微课版) 课件 第十章 Spring MVC基础_第2页
Java EE企业级框架技术及案例实战-Spring+Spring MVC+MyBatis(微课版) 课件 第十章 Spring MVC基础_第3页
Java EE企业级框架技术及案例实战-Spring+Spring MVC+MyBatis(微课版) 课件 第十章 Spring MVC基础_第4页
Java EE企业级框架技术及案例实战-Spring+Spring MVC+MyBatis(微课版) 课件 第十章 Spring MVC基础_第5页
已阅读5页,还剩27页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3第十章SpringMVC基础-掌握MVC设计模式的基本原理-掌握SpringMVC的相关概念-掌握SpringMVC的工作流程-掌握SpringMVC的入门案例01020304项目需求背景知识项目实现经典问题强化本章小结0102030405E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3项目需求01项目需求01项目经理老王:小王,你现在熟练掌握了Spring和MyBatis框架了吧?程序员小王:是的,通过之前的学习和项目实践,我已经掌握了这两个框架,但是现在有个问题是如何接收处理前端页面提交的数据,并在业务处理完后将结果返回给对应的页面呢?项目经理老王:你需要了解一下SpringMVC框架,它是Spring内置的MVC框架,可以解决WEB开发中常见的功能需求,例如参数接收、文件上传、表单验证和国际化等,而且SpringMVC框架使用简单,可以与Spring无缝集成,并支持restful风格的URL请求。程序员小王:好的,我会抓紧时间学习SpringMVC框架以便在项目中使用。功能描述01系统登录页面包括用户名和密码以及免登录选框。功能描述01登录失败要显示失败原因并提示用户,在登录时可能出现的错误情况有以下几种。当用户名或密码填写错误时,会在登录页面提示用户”用户名或密码错误”。当用户的IP地址是不允许访问的网段时,会在登录页面提示用户”ip受限”。当用户的账号过期,会在登录页面提示用户”账号已经过期”。当用户的状态被锁定,会在登录页面提示用户”状态被锁定”。E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3背景知识02知识导图02MVC设计模式02MVC是一种广泛存在于各类语言和开发中的软件设计理念,它将应用程序拆分为模型(model)、视图(view)、控制器(controller)等三部分,以便将程序的业务逻辑、界面及数据访问处理相分离,从而降低各模块之间的耦合度,提升系统的可维护性和可扩展性。SpringMVC基本概念及工作流程02SpringMVC是一个基于Java的MVC框架,它是Spring框架的扩展,其提供了一种用于构建Web应用程序的模型-视图-控制器(MVC)架构,并带有许多有用的功能,如国际化支持、文件上传、数据验证、异常处理等。SpringMVC的核心组件包括:

DispatcherServlet:SpringMVC的中央控制器,它负责接收所有的客户端请求并将其分发给对应的处理器。

HandlerMapping:处理器映射器,用于将URL映射到对应处理器的组件。

Controller:控制处理器,其包含了控制器的内容和其它增强的功能,主要针对客户端请求完成业务逻辑处理。

ViewResolver:视图解析器,用于接收、解析DispatcherServlet传来的模型和视图信息,并将模型数据渲染到视图中去,响应用户的请求。SpringMVC基本概念及工作流程02SpringMVC各组件的工作流程如图SpringMVC入门程序021. 需求分析本实例将使用SpringMVC模拟向后端请求所有商品信息数据,并以列表形式展示每个商品的名称、价格、商品描述等信息。SpringMVC入门程序02创建Maven工程创建maven工程3.导入项目依赖包SpringMVC入门程序02创建Items实体对象根据业务需求创建商品实体对象packagecom.demo.pojo;publicclassItems{

privateIntegerid;privateStringname;privateFloatprice;privateStringdetail;/*省略set/get方法*/}SpringMVC入门程序025. 创建ItemsController类在com.demo.controller包下创建控制器类ItemsController,添加如代码清单10-3所示的内容。该控制器用于处理前端发来的URL为"/list"的GET请求,当控制器收到请求后,它会创建两个商品对象并将它们添加到商品列表itemList中,接下来控制器会将itemList存储到ModelAndView对象中,并将视图名称设置为"itemList"后传递给视图解析器ViewResolver,该解析器会依据视图名称来查找名为"itemList.jsp"的JSP文件,并将ModelAndView中的数据渲染到该文件中,从而将结果响应到浏览器中以完成商品列表的显示。SpringMVC入门程序02配置springmvc核心配置文件在resources目录下,创建springmvc的配置文件,在文件中配置控制器和视图解析器信息。配置前端控制器在web.xml中,配置SpringMVC的前端控制器创建视图页面在WEB-INF目录下创建一个JSP目录,并在目录中创建一个商品信息页面文件itemList.jspSpringMVC优点02SpringMVC作为一款优秀的Web框架,具有以下优点:轻量级:SpringMVC是一种轻量级Web框架,它不依赖于其他任何一种Web框架或应用服务器,同时它还使用了Spring的IoC(控制反转)和AOP(面向切面编程)技术,使开发者易于开发出灵活的、可定制的、易于维护的Web应用程序。易于使用:SpringMVC提供了众多的注解和API,使得开发人员可以快速完成Controller创建、映射请求、绑定数据、处理异常等操作,从而使得Web应用程序的开发变得更加容易。易于集成:SpringMVC可以很容易地集成其他的Spring组件,例如SpringSecurity、SpringData等,使得开发人员可以快速创建高度可定制的Web应用程序。灵活性:SpringMVC提供了很多可扩展的组件和插件,使得开发人员可以根据应用程序的需要进行定制。例如开发人员可以自定义ViewResolver来实现自己的视图解析器。易于测试:由于SpringMVC采用了MVC设计模式,使得控制层和视图层是分离的,这样开发人员可以很容易地对各层进行单元测试,从而提高应用程序的质量和可维护性。E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3项目实现03业务场景03业务场景描述:项目经理老王:小王,用户登录功能由你来实现。你现在已经熟悉了SpringMVC的工作原理和开发方法,但对于整合Spring和MyBatis还不了解。不过不用担心,我们可以先在控制层写一些模拟数据来调试,但是登录功能需要对多个条件进行验证,例如用户IP地址、用户名和密码、账户是否过期、用户是否锁定等,在实现时你需要考虑如何处理这些验证。程序员小王:好的,我明白了。这个安全要求比较高,我会认真考虑。还有,我需要自己创建项目吗?项目经理老王:不用。我们已经搭建好了项目框架,你可以使用Git工具从公司版本服务器导入初始架构,然后在此基础上开发。程序员小王:好的,我会尽快开始工作。Maven父子工程03父子工程有以下优点:父子工程能够更高效地分离每个模块,使得修改某个模块时,不会影响到其他模块。在父工程中声明依赖,而在子工程中继承这些依赖,可以有效避免重复依赖的问题。这样当我们需要升级或者更换某个依赖时,只需要在父工程中修改,就可以自动地更新所有子工程的依赖。父子工程可以使代码更加清晰,并提高代码重用性。通过在父工程中声明依赖,可以避免了多个子工程重复引入相同的依赖。这样就可以将这些公共的依赖关系放在一个地方,方便维护。另外父工程中也可以定义一些公共的配置,例如插件配置、编译器配置等,使得所有子工程都可以继承这些配置,避免重复配置的问题。整体项目结构03项目具体包及其作用:graduationdesign-dao:数据访问层,负责与数据库进行交互。graduationdesign-domain:领域层,负责维护面向对象的领域模型。该层主要由POJO类构成,是数据表在面向对象世界中的映射。graduationdesign-service:业务层,负责实现具体业务逻辑。graduationdesign-utils:包含项目所需的各种工具类。graduationdesign-web:控制层,接受用户输入并调用模型和视图完成用户需求。导入项目基本架构03选择File->Open,找到crm项目选择File->Settings,配置项目所需要的maven仓库,请读者根据自己电脑Maven安装位置自行配置。配置web.xml03在web.xml中配置springmvc框架<servlet><servlet-name>dispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--配置初始化参数,创建完DispatcherServlet对象,加载springmvc.xml配置文件--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param><!--服务器启动的时候,让DispatcherServlet对象创建--><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>配置springmvc03编辑springmvc核心配置文件<!--dispatcherServlet截获所有URL请求--><mvc:default-servlet-handler/><!--扫描controller的注解,别的不扫描--><context:component-scanbase-package="com.lindaifeng.ssm.controller"></context:component-scan><!--配置视图解析器--><beanid="viewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!--JSP文件所在的目录--><propertyname="prefix"value="/pages/"/><!--文件的后缀名--><propertyname="suffix"value=".jsp"/></bean>编写用户登录控制层03创建用户登录控制层LoginController.java,添加如代码清单10-9所示的内容,用于模拟一个用户完成登录的流程。编写登录面页03编写用户登录页面Login.jspE6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3经典问题强化04经典问题强化04请

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论