• SpringMvc入门


    目录

    1.什么是SpringMvc

    2.SpringMVC工作流程

    3.SpringMVC核心组件

     4.SpringMvc入门

    添加依赖

    编写spring-mvc.xml

     编写IndexController类

    编写jsp

    编写web.xml

    测试结果

    5.静态资源处理 

    编写Spring-mvc.xml

    测试结果

    ​编辑 


    1.什么是SpringMvc

    Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。

    此外,Spring MVC 的注解驱动和对 REST 风格的支持,也是它最具特色的功能。无论是在框架设计,还是扩展性、灵活性等方面都全面超越了 Struts2 等 MVC 框架。并且由于 Spring MVC 本身就是 Spring 框架的一部分,所以可以说与 Spring 框架是无缝集成,性能方面具有先天的优越性,对于开发者来说,开发效率也高于其它的 Web 框架,在企业中的应用越来越广泛,成为主流的 MVC 框架。

    2.SpringMVC工作流程

    1. 用户发来一个请求,首先进入的是前端控制器DispatcherServlet

    2. 前端控制器(DispacherServlet)将用户发来的请求发送给处理器映射器(HandlerMapping)

    3. 处理器映射器根据前端控制器发来的用户的请求找到对应符合的控制器(Handler),并且将其封装成处理器执行链,返回给前端控制器。

    4. 处理器适配器接收到来自前端控制器的执行链后,找到对应执行此执行链的处理器适配器(HandlerAdapter)来调用的具体的控制器(就是说其对应的方法或者逻辑)

    5. 处理器适配器 (HandlerAdaptoer) 会调用对应的具体的 Controller(处理业务逻辑)

    6. 控制器执行完成后,会返回一个ModelAndView对象给处理器适配器

    7. 处理器适配器将返回来的ModelAndView对象返回给前端控制器(到这里所有的业务处理过程就要完了,接下就是将结果以页面的的形式响应给用户)

    8. 前端控制器将返回回来的ModelAndView对象交给视图解析器(ViewResolver),视图解析器根据传过来的View对象解析成对应的页面对象

    9. ViewResolver 将封装好的将页面对象和Model对象返回给 DIspatcherServlet

    10. 前端控制器再将返回回来的对象交给视图(View)

    11. 视图根据传过来的Model对象再一次的对页面进行渲染(将模型数据填充至视图中),然后在返回给前端控制器。

    12. 前端控制器将完成的结果响应给浏览器,然后浏览器在展现给用户。

     

    3.SpringMVC核心组件

    SpringMVC是一个基于Java的Web框架,它使用了一些核心组件来处理Http请求和响应。以下是SpringMVC的一些核心组件:

    1. DispatcherServlet:作为前端控制器,它是SpringMVC处理请求的入口点。它接收所有的请求,并将它们分发给相应的控制器来处理。

    2. HandlerMapping:根据请求的URL地址和相关的配置信息,将请求映射到对应的处理器(Controller)。

    3. HandlerAdapter:负责调用处理器(Controller)来处理请求,并返回结果。

    4. ViewResolver:根据处理器返回的逻辑视图名解析出实际的视图对象。

    5. View:负责渲染数据,并生成最终的响应。

    6. Model:用于存储和传递数据,在处理器和视图之间进行交互。

    7. Interceptor:用于在请求处理的各个阶段添加拦截逻辑,例如日志记录、权限校验等。

     4.SpringMvc入门

    添加依赖

     

    编写spring-mvc.xml
    1. "1.0" encoding="UTF-8"?>
    2. "http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xmlns:context="http://www.springframework.org/schema/context"
    5. xmlns:mvc="http://www.springframework.org/schema/mvc"
    6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    7. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    8. package="com.zking"/>
    9. "org.springframework.web.servlet.view.InternalResourceViewResolver">
    10. "viewClass"
    11. value="org.springframework.web.servlet.view.JstlView">
    12. "prefix" value="/WEB-INF/jsp/"/>
    13. "suffix" value=".jsp"/>
     编写IndexController类
    1. package com.zking.web;
    2. import org.springframework.stereotype.Controller;
    3. import org.springframework.stereotype.Repository;
    4. import org.springframework.stereotype.Service;
    5. import org.springframework.web.bind.annotation.RequestMapping;
    6. /**
    7. * @author bing人
    8. * @site
    9. * @company xy集团
    10. * @create 2023-09-04 16:31
    11. * @Controller替换了自定义mvc中的
    12. * extends ActionSupport
    13. */
    14. @Controller
    15. public class IndexController {
    16. //首页
    17. @RequestMapping("/hello")
    18. public String hello(){
    19. System.out.println("hello soringmvc");
    20. return "hello";
    21. }
    22. }
    编写jsp
    1. <%--
    2. Created by IntelliJ IDEA.
    3. User: 30340
    4. Date: 2023/9/4
    5. Time: 16:36
    6. To change this template use File | Settings | File Templates.
    7. --%>
    8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    9. Title
    10. hello word!
    编写web.xml
    1. "1.0" encoding="UTF-8"?>
    2. "http://xmlns.jcp.org/xml/ns/javaee"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    5. version="3.1">
    6. Archetype Created Web Application
    7. contextConfigLocation
    8. classpath:spring-context.xml
    9. org.springframework.web.context.ContextLoaderListener
    10. encodingFilter
    11. org.springframework.web.filter.CharacterEncodingFilter
    12. true
    13. encoding
    14. UTF-8
    15. encodingFilter
    16. /*
    17. SpringMVC
    18. org.springframework.web.servlet.DispatcherServlet
    19. contextConfigLocation
    20. classpath:spring-mvc.xml
    21. 1
    22. true
    23. SpringMVC
    24. /
    测试结果

    5.静态资源处理 

    编写Spring-mvc.xml

     

    测试结果
     
  • 相关阅读:
    毫米波雷达点云 DBSCAN聚类算法
    Java案例找素数(三种方法)
    浅谈架构.补缺.V2
    【Javaweb 2】JSP,Filter,Listener,AJAX,Vue
    拯救pandas计划(24)——数据框形状的转换:​列转行,行转列
    Final Cut Pro使用教程
    三剑客之 awk
    小说网站,小说阅读器,小说阅读网站毕业设计
    DevOps在物联网解决方案中的应用
    github新手用法详解
  • 原文地址:https://blog.csdn.net/2201_75455485/article/details/132671825