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

2021-09-29 SpringMVC回顾第一天

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

2021-09-29 SpringMVC回顾第一天

一、回顾MVC 1. 简介

是模型、视图、控制器的简写,是一种软件设计规范

是用将显示、业务逻辑、数据分离的方法来组织代码

主要作用是降低了视图与业务逻辑间的双向耦合

最典型的MVC:JSP+Servlet+JavaBean

2. 包括 2.1 Model

模型,包括数据DAO和业务逻辑Service,

提供要展示的数据,因此包括数据和行为

2.2 View

视图JSP

2.3 Controller

控制器Servlet,接收用户请求,委托给模型进行处理,处理完毕后把模型返回的数据返回给视图,由视图负责展示

3. Model2时代 3.1 流程
  1. 用户发请求
  2. Servlet接收请求数据,并调用对应的业务逻辑方法
  3. 业务处理完毕,返回更新后的数据给Servlet
  4. Servlet跳转到jsp,由jsp来渲染页面
  5. 响应更新后的页面给前端
3.2 职责 Controller
  1. 取得表单数据
  2. 调用业务逻辑
  3. 转向指定的页面
Model
  1. 业务逻辑
  2. 保存数据的状态
View
  1. 显示页面
4. MVC框架要做的事情
  1. 将url映射到java类或java的方法
  2. 封装用户提交的数据
  3. 处理请求–调用相关的业务处理–封装响应数据
  4. 将响应的数据进行渲染
二、回顾Servlet 三、SpringMVC简介

SpringMVC是Spring framework的一部分,是基于Java实现MVC的轻量级Web框架

SpringMVC的web框架围绕DispatcherServlet设计

Dispatcher的作用是将请求分发到不同的处理器,其本质也是一个Servlet,因为其顶层实现了HttpServlet

SpringMVC以请求为驱动,围绕着一个中心Servlet分派请求及提供其他功能

四、HelloSpringMVC 步骤 1. 导入相关Jar包
  1. junit
  2. springmvc
  3. jsp
  4. servlet
  5. jstl
 
        
            junit
            junit
            4.11
            test
        
        
            org.springframework
            spring-webmvc
            5.3.9
        
        
        
            javax.servlet
            servlet-api
            2.5
        
        
        
            javax.servlet
            jsp-api
            2.0
        
        
        
            javax.servlet
            jstl
            1.2
        
    
2. 配置web.xml

注册DispatcherServlet

在DispatcherServlet里绑定springmvc.xml、设置启动级别

    
    
        springmvc
        org.springframework.web.servlet.DispatcherServlet
        
        
            contextConfigLocation
            classpath:spring-mvc.xml
        
        
        1
    

    
    
        springmvc
        /
    
3. 配置springmvc.xml
  1. 配置处理器映射器
  2. 配置处理器适配器
  3. 配置视图解析器
 
    
    
    

    
    
        
        
    
4. 写Controller类
public class HelloController implements Controller
{
    @Override
    public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
        ModelAndView modelAndView = new ModelAndView();

        //业务
        String hello="helloSpringmvc";
        modelAndView.addObject("msg",hello);
        //跳转
        modelAndView.setViewName("hello");

        return modelAndView;
    }
}
5. 在springmvc.xml中配置controller的bean
    
6. 写JSP
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title

 
  ${msg}
 

五、SpringMVC原理 1. 原理简述
  1. 用户发起请求,请求被前置的控制器(DispatcherServlet)拦截,根据请求参数生成代理请求

  2. 找到请求对应的实际控制器(Controller),控制器处理请求,创建数据库模型,访问数据库,将响应相应给中心控制器

  3. 控制器使用 模型 与 视图渲染 视图结果

  4. 将结果返回给中心控制器

  5. 中心控制器将结果返回给请求者

2. 执行原理

  1. 用户发出请求,DispatcherServlet接受请求,并拦截请求

    我们假设请求的url为 : http://localhost:8080/SpringMVC/hello
    该url将被拆分成三部分:
    服务器域名:http://localhost:8080
    部署在服务器上的web站点:SpringMVC
    控制器:hello
    通过分析,如上url表示为:请求位于服务器localhost:8080上的SpringMVC站点的hello控制器。
    
  2. DispatcherServlet调用处理器映射器HandlerMapping,HandlerMapping根据url查找Handler

    根据: http://localhost:8080/SpringMVC/hello
    
  3. HandlerExecution表示具体的Handler,去查找控制器

    查找到的控制器为hello
    
  4. HandlerExecution将解析后的信息传递给DispatcherServlet

    解析控制器的映射,即 
    
  5. 处理器适配器HandlerAdapter根据特定的规则去执行Handler

  6. Handler让具体的Controller执行

    让实现了Controller接口的HelloController类中,实现Controller接口方法的方法执行
    
  7. Controller将具体的执行信息返回给HandlerAdapter,如ModelAndView

    modelAndView.addObject("msg",hello);
    //跳转
    modelAndView.setViewName("hello");
    
  8. HandlerAdapter将视图逻辑名或模型传给DispatcherServlet

  9. DispatcherServlet用视图解析器ViewResolver来解析HandlerAdapter传给DispatcherServlet的视图逻辑名

    解析结果=prefix+视图逻辑名+suffix
    
    即视图逻辑名:hello,解析结果:/WEB-INF/jsp/hello.jsp
    
     
            
            
     
    
  10. ViewResolver将解析结果传回给DispatcherServlet

  11. DispatcherServlet根据视图解析器解析的视图结果,调用具体的视图

  12. 最终视图呈现给用户

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

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

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