栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SSM:Spring+SpringMVC+Mybatis、SpringMVC的web开发

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SSM:Spring+SpringMVC+Mybatis、SpringMVC的web开发

 一、各部分负责的功能

        spring 负责整合整个工程框架,统一创建和管理整个工程的对象

        mybatis 负责管理数据库相关的操作

        spring MVC 负责管理web开发中servlet相关操作 获得请求相应请求等

二、SpringMVC (一)概述     1、springMVC就是一个spring框架,只是专门用于web开发     2、SpringMVC和web开发的关系

(1)SpringMVC是基于Spring的一个框架,实际是Spring的一个模块,专门用来做web开发的

(2)web开发底层是servlet,SpringMVC实质是servlet的一个升级,是在其基础上加一些功能,使web开发更方便

(3)SpringMVC中有一个对象是servlet

 3、SpringMVC和Spring关系

    SpringMVC就是一个Spring容器,能够通过ioc管理对象,使用标签、注解:@component、@Repository、@Service、@Controller创建对象,放到Spring和SpringMVC容器中统一管理,其中控制器对象放在SpringMVC容器中

   @Controller创建的控制器对象是普通类对象,不是一个Servlet,SpringMVC赋予了控制器对象一些额外的功能,SpringMVC中有一个对象时Servlet:

   中央调度器 DispatcherServlet---用来接收请求,调度其他各种器最终来响应请求

   处理映射器 HandlerMapping---用来获得controller对象

   处理适配器 hadleradptor---利用controller对象调用方法

   视图解析器 ViewResoler---处理来自controller方法的返回结果ModelAndView对象,得到view对象,用来在视图显示

   (二)springMVC执行流程

   

 【具体流程】

用户发起请求--->DispatcherServlet接收请求 ,并将请求交给处理器映射器--->处理器映射器获取controller层处理器对象,并将其放在处理器执行链

--->DispatcherServlet将处理器对象交给处理器适配器对象--->处理器适配器对象利用处理器对象调用控制层方法---->得到ModelAndView

---->DispatcherServlet将ModelAndView交给视图解析器对象--->视图解析器对象创建View接口对象,使用View对象和其实现类表示视图,jsp的完整路径

---->DispatcherServlet获取View对象,调用View类的方法,将model数据存到request作用域

----->执行对象视图的forward,展示结果的jsp页面

 【简化】

请求--->DispatcherServlet--->控制层对象--->调用对应方法--->ModelAndView

[注] 处理器执行链保存的对象:处理器对象、拦截器

三、 SpringMVC进行web开发 (一)开发过程 1、实现步骤
  • 新建web maven工程
  • 工程配置文件中加依赖:spring-webmvc(间接将spring的依赖都加入项目)、jsp、servlet
  • 在web.xml配置文件中注册springmvc框架的核心对象DispatcherServlet

            DispatcherServlet ---中央控制器,是一个servlet,父类继承HttpServlet

                                           负责接收用户请求,调用控制器对象,并把请求的处理结果显示给用户

            DispatcherServlet页---前端控制器,front controller     

 2、  控制层--控制器类:处理请求

   (1)加@Controller注解

   (2)定义处理请求的方法    

         @RequestMapping:用来指定前端请求名和后端对应的处理方法, vlaue是前端请求名

                              当指定一个方法处理多个或多种类型请求时,形式如下:

@RequestMapping(value={“/请求名1”,“/请求名2”,...},method=RequestMethod.POST/GET)

  【注】能处理请求的都是控制器(处理器),myController就是后端处理器

@Controller
public class MyController{

 //处理some.do请求的方法
  @RequestMapping(value="/some.do")
  public ModelAndView doSome(){
   ModelAndView mv=new ModelAndView ();
   mv.addObject("msg","执行的是doSome方法");//前端接收变量名为msg,后面为变量值,key value形式
   mv.setViewName("/show.jsp");//跳转展示的页面
   return mv;//框架会将mv对象的数据加入request对象中,框架自动进行页面跳转
}
}
3、配置web.xml文件  

(1)声明注册springMVC核心对象DispacherSercvlet  指定web文件 servlet全限定名称 (创建servlet对象)

     在服务器Tomcat启动时就创建,原理同监听器,在全局控制对象中创建spring容器对象,只创建一次,需要使用时在servletContext对象中获取

(2)读取springMVC配置文件 springMVC.xml

(3)指定本servlet创建时间,当有多个servlet对象创建时,依照这个数组进行依次创建

(4)servlet mapping :什么样的请求给哪个servlet   


   
  myweb
  org.springframework.web.servlet.DispatcherServlet 
    
  
   contextConfigLocation 
   contextConfigLocation 
  
    
   1
       
 

  
 
   myweb
   *.do  
 
 
   4、配置SpringMVC.xml

       将controller文件配置到SpringMVC.xml中,将利用注解方式创建的对象扫描到springMVC框架中统一管理

     

(二)处理接收前端请求参数

    1、三大对象 
  •  HttpServletRequest--- 获取请求参数,地址栏访问时参数 ?属性=属性值
  •  HttpServletResponse--获取响应参数
  •  HttpSession--获取会话参数
    2、使用方式

   以方法参数形式存在,对前端数据进行接收,根据前端传送参数的方式,参数存储的作用域,选择不同对象来接收参数

@Controller
public class MyController{

  @RequestMapping(value="/other.do")
  public ModelAndView doOther(HttpServletRequest request,HttpServletResponse response,HttpSession session){
   ModelAndView mv=new ModelAndView ();
   mv.addObject("msg","执行的是doSome方法"+request.getParameter("id"));//前端以?形式传参
   mv.setViewName("/show.jsp");
   return mv;
}
3、接收用户表单提交的参数

   (1)逐个接收

//前端传参
 
  id:
name:

//后台接收   @RequestMapping(value="/receive.do")   public ModelAndView xxx(int id,String name){   ModelAndView mv=new ModelAndView (); mv.addObject("myid",id); mv.addObject("myname",name); mv.setViewName("/show.jsp"); return mv; } //前端展示 myid:${myid}
myname:${myname}

 (2)多个参数封装成对象接收

//前端传参
 
  id:
name:

//后台接收  //(1)创建一个报讯参数值的普通类,属性名和请求中参数名一致 public class Student{ private Integer id; private String name; //set get封装 } //(2)通过对象接收参数  @RequestMapping(value="/receive.do")   public ModelAndView xxx(Student stu){   ModelAndView mv=new ModelAndView (); mv.addObject("myid",stu.getId); mv.addObject("myname",stu.getName); mv.setViewName("/show.jsp"); return mv; } //前端展示 myid:${myid}
myname:${myname}
4、方法的返回值类型

(1)ModelAndView

  •    Model---数据,最终放在request作用域中
  •    View--框架和视图直接的转发操作 forward
  •   使用场景:同时用数据和视图

(2)String

  •   代表视图部分
  •   使用场景:本次请求只是做的页面跳转操作:a.jsp--->b.jsp

                         当方法上面带@ResponseBody时---表示返回数据

 @RequestMapping(value="/xx.do")

 @ResponseBody
  public String xxx(){

  return " ";

}

(3) void

  •   既不能表示数据 又不能表示视图
  •   使用场景:处理ajax,ajax请求服务器返回的是数据,与视图无关

         利用响应对象response来输出数据,来响应ajax请求

  •  数据的传输形式是json

(4)object【重要】

  • 框架利用反射对象 响应ajax 处理json数据
  • 表示数据,与视图无关
  • 使用场景:响应ajax请求
四、整合SSM

待更...

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/361825.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号