Java Web应用开发项目教程 课件 第9、10章 基于Spring MVC框架的应用开发、后台用户管理模块_第1页
Java Web应用开发项目教程 课件 第9、10章 基于Spring MVC框架的应用开发、后台用户管理模块_第2页
Java Web应用开发项目教程 课件 第9、10章 基于Spring MVC框架的应用开发、后台用户管理模块_第3页
Java Web应用开发项目教程 课件 第9、10章 基于Spring MVC框架的应用开发、后台用户管理模块_第4页
Java Web应用开发项目教程 课件 第9、10章 基于Spring MVC框架的应用开发、后台用户管理模块_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

JavaWeb应用开发计算机与软件学院第9章基于SpringMVC框架的应用开发■本章要点:

Spring框架概念SpringIoC容器Spring依赖注入SpringBean配置方式SpringMVC执行流程SpringMVC接口基于SpringMVC的应用程序创建9.1Spring框架■Spring简介:

SpringMVC是Spring提供的一个基于MVC设计模式的轻量级Web开发框架,本质上相当于Servlet。SpringMVC角色划分清晰,分工明细。性能方面具有先天的优越性,是当今业界最主流的Web开发框架,最热门的开发技能。9.1Spring框架■Spring的基本框架主要包含六大模块:DAO、ORM、AOP、JEE、WEB、CORE。

9.2SpringIoC容器IoC不是一种技术,只是一种思想,一个重要的面向对象编程的法则,IoC指的是将对象的创建权交给Spring去创建。IoC

容器是Spring的核心,也可以称为Spring容器。Spring中使用的对象都由IoC

容器进行实例化和初始化,包含从创建到销毁的整个生命周期。有了IoC容器后,把创建和查找依赖对象的控制权交给了容器,由容器进行注入组合对象。对象与对象之间是松散耦合,使得程序的整个体系结构变得非常灵活。

9.3Spring依赖注入Spring

依赖注入(DependencyInjection,DI)和控制反转含义相同,它们是从两个角度描述的同一个概念。使用依赖注入可以更轻松的管理和测试应用程序。使用Spring框架后,被调用者的实例不再由调用者创建,而是由IoC容器创建。IoC容器在创建被调用者的实例时,会自动将调用者需要的对象实例注入给调用者,调用者通过IoC容器获得被调用者实例,这称为依赖注入。

9.4SpringBean在Spring中,构成应用程序主干并由SpringIoC容器管理的对象称为SpringBean。bean是任何Spring应用程序的基本构建块。以前Java框架基本都采用XML作为配置文件,但是现在Java框架又不约而同地支持基于Annotation(注解)的“零配置”来代替XML配置文件,而在Spring3.x提供了三种选择,分别是:基于XML的配置、基于注解的配置和基于Java类的配置。

9.4SpringBean首先需要创建JavaBean。BeanFactory.java类packagecom.njcit.Service;publicinterfaceBeanFactory{publicvoidBeantest();}BeanFactoryImpl.java类packagecom.njcit.service.impl;importcom.njcit.service.BeanFactory;publicclassBeanFactroyImplimplementsBeanFactory{@OverridepublicvoidBeantest(){

System.out.println("这是XML配置的bean!}}9.4SpringBean1.基于XML的配置<?xmlversion="1.0"encoding="UTF-8"?><beans

xmlns="/schema/beans"

xmlns:xsi="/2001/XMLSchema-instance"

xmlns:context="/schema/context"

xsi:schemaLocation="/schema/beas/schema/beans/spring-beans-3.0.xsd/schema/context/schema/context/spring-context-3.0.xsd"><beanid="beanFactroy"class="com.stonegeek.service.impl.BeanFactroyImpl"></beans>9.4SpringBean2.基于Annotation的配置<?xmlversion="1.0"encoding="UTF-8"?><beans

xmlns="/schema/beans"

xmlns:xsi="/2001/XMLSchema-instance"

xmlns:context="/schema/context"

xsi:schemaLocation="/schema/beas/schema/beans/spring-beans-3.0.xsd/schema/context/schema/context/spring-context-3.0.xsd"><beanid="beanFactroy"class="com.stonegeek.service.impl.BeanFactroyImpl"></beans>9.5SpringMVCSpringMVC是什么?SpringMVC是结构最清晰的Servlet+JSP+JavaBean的实现,是一个典型的教科书式的MVC构架。在SpringMVC框架中,Controller替换Servlet来担负控制器的职责,用于接收请求,调用相应的Model进行处理,处理器完成业务处理后返回处理结果。Controller调用相应的View并对处理结果进行视图渲染,最终客户端得到响应信息。SpringMVC的注解驱动和对REST风格的支持,也是它最具特色的功能。SpringMVC与Spring框架是无缝集成,性能方面具有先天的优越性,对于开发者来说,开发效率也高于其它的Web框架,在企业中的应用越来越广泛,成为主流的MVC框架。9.5SpringMVCSpringMVC的执行流程9.5SpringMVCSpringMVC接口SpringMVC涉及到的组件有DispatcherServlet(前端控制器)、HandlerMapping(处理器映射器)、HandlerAdapter(处理器适配器)、Handler(处理器)、ViewResolver(视图解析器)和View(视图)。1)DispatcherServletDispatcherServlet是前端控制器,从图9-2可以看出,SpringMVC的所有请求都要经过DispatcherServlet来统一分发。DispatcherServlet相当于一个转发器或中央处理器,控制整个流程的执行,对各个组件进行统一调度,以降低组件之间的耦合性,有利于组件之间的拓展。2)HandlerMappingHandlerMapping是处理器映射器,其作用是根据请求的URL路径,通过注解或者XML配置,寻找匹配的处理器(Handler)信息。3)HandlerAdapterHandlerAdapter是处理器适配器,其作用是根据映射器找到的处理器(Handler)信息,按照特定规则执行相关的处理器(Handler)。9.5SpringMVCSpringMVC接口4)HandlerHandler是处理器,和JavaServlet扮演的角色一致。其作用是执行相关的请求处理逻辑,并返回相应的数据和视图信息,将其封装至ModelAndView对象中。5)ViewResolverViewResolver是视图解析器,其作用是进行解析操作,通过ModelAndView对象中的View信息将逻辑视图名解析成真正的视图View(如通过一个JSP路径返回一个真正的JSP页面)。6)ViewView是视图,其本身是一个接口,实现类支持不同的View类型(JSP、FreeMarker、Excel等)。基于SpringMVC的应用程序创建E-STORE后台登录页面基于SpringMVC的应用程序创建E-STORE后台登录后管理页面基于SpringMVC的应用程序创建数据表的概念设计管理员信息实体。管理员信息实体包括管理员编号、管理员名称、密码、管理员真实姓名、年龄、管理员类型标识等属性。其中管理员类型标识用来区分管理员的类型,字段是“1”表示为超级管理员,“0”表示为普通管理员。tb_manager表的结构基于SpringMVC的应用程序创建功能实现流程设计(1)用户在managerLogin.jsp页面中填写登录用户名和密码,以请求参数的形式提交给控制器ManagerController;(2)ManagerController(Controller层)调用Service层,Service层调用Dao层,Dao层完成对数据库的查询,最后逐层返回结果给ManagerController来处理客户请求;(3)若登录验证成功,跳转至Manager主页ManagerIndex.jsp;(4)登录验证失败则跳转至登录页面managerLogin.jsp。基于SpringMVC的应用程序创建新建工程并引入SpringMVC支持在Eclipse中新建一个项目,项目名称为estore_back,如图。在项目创建完成后,可以在WebContent/WEB-INF下看到自动生成的web.xml文件。基于SpringMVC的应用程序创建基于SpringMVC的应用程序创建将提供的jar包复制到WebContent/WEB-INF下的lib文件夹内基于SpringMVC的应用程序创建创建Controller层

创建Service层基于SpringMVC的应用程序创建创建Dao层

创建配置文件

基于SpringMVC的应用程序创建创建实体类和工具类在cn.estore下新建包domain;domain包下新建四个类:CategoryBranch、

CategoryMain、Manager和Product。在cn.estore下新建包utils;在utils包下新建类DBHelper拷贝静态资源并修改web.xml配置文件拷贝给出的静态资源pages文件夹和resources文件夹到WebContent下,此时会出现jsp报错,请将Tomcat依赖添加到项目中基于SpringMVC的应用程序创建部署应用与测试(1)部署本Web应用系统。本例中使用的服务器为Tomcat,在Eclipse中配置Tomcat,然后将本示例中的Web项目部署到目标服务器Tomcat中。(2)启动服务器。(3)部署基于SpringMVC的应用程序创建在浏览器中输入“http://localhost:8080/estore_back/”JavaWeb应用开发计算机与软件学院第10章后台用户管理模块■本章要点:

后台管理总体规划

管理员登录功能模块设计与实现

管理员查询功能模块设计与实现

管理员添加功能模块设计与实现

管理员删除功能模块设计与实现10.1E-Store后台总体规划后台开发相关文件的位置描述如下:(1)JSP存放在WebContent/pages。(2)实体类存放在cn.estore.domain。(3)工具类存放在cn.estore.utils。(4)Controller层类存放在cn.estore.controller。(5)Service层接口存放在cn.estore.service,实现类存放在cn.estore.serviceImpl。(6)Dao层接口存放在cn.estore.dao,实现类存放在cn.estore.daoImpl。10.2管理员登录设计与实现■功能说明

与E-Store电子商城的前台不同,前台的未登录用户可以浏览和查询商品,后台管理员只有登录后才能进行所有相关操作,后台登录后页面:10.2管理员登录设计与实现■流程分析与设计

●设计数据库数据库中创建tb_manager表

数据表如图所示:10.2管理员登录设计与实现■开发流程:(1)用户在managerLogin.jsp页面中提供用户登录的信息,由用户输入登录用户名和密码,访问form表单里指定的action,并将用户名和密码封装在manager对象中。(2)根据jsp中action的路径,在ManagerController中编写Controller层处理jsp请求。(3)在ManagerService中编写Service层接口方法,并在ManagerServiceImpl中实现该方法。(4)在ManagerDao中编写Dao层接口,并在ManagerDaoImpl中编写实现类,完成对数据库的查询。(5)逐级返回查询结果并根据不同结果做出相应的处理。10.2管理员登录设计与实现■Manager实体类:Manager实体类中的属性与数据库中的字段相对应,从数据库中查询出的数据将通过实体类完成数据的传递。并使用工具自动生成get/set方法。 privateintid;//自增长主键 privateStringname;//管理员用户名 privateStringpassword;//管理员密码 privateStringrealName;//管理员实名 privateintsign=0;//管理员标识(1:超级管理员、0:普通管理员)。。。10.2管理员登录设计与实现■ManagerDaoDao层为数据库访问层,负责对数据库的增删改查。publicinterfaceManagerDao{ publicManagerlogin(Stringname,Stringpassword);}10.2管理员登录设计与实现■ManagerDaoImpl在Dao层的实现类上我们需要添加@Repository注解来表明这个类具有对数据库进行增删改查的功能。@RepositorypublicclassManagerDaoImplimplementsManagerDao{ privateConnectionconn=DBHelper.getConnection(); privatePreparedStatementps=null; privateResultSetrs=null; privateStringsql="";@OverridepublicManagerlogin(Stringname,Stringpassword){ Managermanager=null; sql="select*fromtb_managerwherename=?andpassword=?"; try{ps=conn.prepareStatement(sql); ps.setString(1,name); ps.setString(2,password); rs=ps.executeQuery();。。。

10.2管理员登录设计与实现■ManagerServiceService层为服务层,使用@Service标记。Service层是比Dao层高层次的一层结构,相当于将几种操作封装起来。publicinterfaceManagerService{ publicManagerlogin(Stringname,Stringpassword);}

10.2管理员登录设计与实现■ManagerServiceImplServiceImpl实现类实现了Service接口,进行具体的业务操作。在ServiceImpl实现类中,需要注入ManagerDao。@ServicepublicclassManagerServiceImplimplementsManagerService{ privateManagerDaomanagerDao; @Autowired publicvoidsetManagerDao(ManagerDaomanagerDao){ this.managerDao=managerDao;} publicManagerlogin(Stringname,Stringpassword){ returnmanagerDao.login(name,password); }}

10.2管理员登录设计与实现■ManagerController为了响应前端的请求,我们需要添加@Controller注解来将ManagerController标识为一个Controller,并使用@RequestMapping注解来指定控制器可以处理哪些URL请求。在ManagerController中,需要注入ManagerService。@Controller@RequestMapping("/manager")publicclassManagerController{ privateManagerServicemanagerService; @Autowired publicvoidsetManagerService(ManagerServicemanagerService){ this.managerService=managerService;} @RequestMapping("/managerLogin")publicModelAndViewmanagerLogin(HttpSessionsession,Stringname,Stringpassword){ModelAndViewmav=newModelAndView(); Managermanager=managerService.login(name,password);。。。

10.2管理员登录设计与实现■代码逻辑managerLogin方法会先拿到请求中的“name”和“password”属性,然后通过managerService的login方法来查询用户是否存在。如果存在,将查询出的管理员用户以键值对的形式保存到Session中(key为_USER_),然后跳转到ManagerIndex.jsp页面;如果不存在,则直接跳转到managerLogin.jsp页面。

10.2管理员登录设计与实现■启动服务器,使用浏览器打开“:8080/estore_back/”,测试登录功能。若登录失败则跳转回登录页面;

10.2管理员登录设计与实现■后台主页面main.jsp的设计可以参照前台同名页面来实现。后台main.jsp中将包含三个JSP文件,分别为:top.jsp,left.jsp,statusBarNavigation.jsp这几个JSP文件中包含的都是静态页面,完成方法完全类同于前台。

10.2管理员查询设计与实现■管理员查询功能管理员查询属于后台管理员模块的子功能,管理员登录后在页面左侧中有“查看管理员”菜单,单击该菜单将出现管理员查询结果页面10.3管理员查询设计与实现■功能实现流程设计(1)在ManagerIndex.jsp页面中单击菜单“查看管理员”。(2)根据jsp中action的路径,在ManagerController中编写Controller层处理jsp请求。(3)在ManagerService中编写Service层接口方法,并在ManagerServiceImpl中实现该方法。(4)在ManagerDao中编写Dao层接口,并在ManagerDaoImpl中编写实现类,完成对数据库的查询。(5)逐级返回查询结果并根据不同结果做出相应的处理。10.3管理员查询设计与实现■编程详解●修改ManagerDao和ManagerDaoImpl

为ManagerDao增加方法selectManager

publicList<Manager>selectManager();在ManagerDaoImpl实现该方法。查询所有的管理员信息,返回管理员列表@Override publicList<Manager>selectManager(){ Managermanager=null; List<Manager>list=newArrayList<>();

sql="select*fromtb_manager"; try{

ps=conn.prepareStatement(sql);

rs=ps.executeQuery(); while(rs.next()){ manager=newManager(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getInt(5));

list.add(manager);….}

10.3管理员查询设计与实现■编程详解●修改ManagerService和ManagerServiceImpl为ManagerService添加selectManager方法并在ManagerServiceImpl中实现ManagerService:publicList<Manager>selectManager();ManagerServiceImpl:publicList<Manager>selectManager(){ returnmanagerDao.selectManager();10.3管理员查询设计与实现■编程详解●修改ManagerController为ManagerController添加showAllManagerList方法@RequestMapping("/showAllManagerList") publicModelAndView

showAllManagerList(){

ModelAndView

mav=newModelAndView();List<Manager>managerList=managerService.selectManager();

mav.addObject("managerList",managerList);

mav.setViewName("manager/showManagersList"); returnmav; }10.4管理员添加设计与实现■管理员添加●功能说明管理员可以为系统添加新的管理员用户,添加的管理员为普通管理员。添加管理员时需要注册“用户名”、“密码”、“姓名”等字段,添加管理员页面如图。添加成功后跳转至管理员查询页面,可以看到查询页面已经显示刚添加的管理员信息10.4管理员添加设计与实现■流程分析与设计●功能实现流程设计(1)在ManagerIndex.jsp页面中单击菜单“添加管理员”。(2)根据jsp中action的路径,在ManagerController中编写Controller层处理jsp请求。(3)在ManagerService中编写Service层接口方法,并在ManagerServiceImpl中实现该方法。(4)在ManagerDao中编写Dao层接口,并在ManagerDaoImpl中编写实现类,完成对数据库的查询。(5)逐级返回查询结果并根据不同结果做出相应的处理。10.4管理员添加设计与实现■编程详解1、修改ManagerDao和ManagerDaoImpl为ManagerDao增加方法insertManager和checkManagerName,在ManagerDaoImpl实现这两个方法。其中checkManagerName方法用于在注册时校验管理员名是否已存在。10.4管理员添加设计与实现2、修改ManagerService和ManagerServiceImpl为ManagerService添加insertManager和checkManagerName方法并在ManagerServiceImpl中实现10.4管理员添加设计与实现3、修改ManagerController

10.5管理员删除设计与实现■管理员删除●功能说明在管理员信息的查询页面中可以通过单击“删除”按钮完成删除某个管理员操作10.

温馨提示

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

评论

0/150

提交评论