• SpingMvc入门



    前言

    Spring MVC是一种基于Java的web应用开发框架,它采用了MVC(Model-View-Controller)设计模式来帮助开发者组织和管理应用程序的各个组件。

    1.MVC Spring的工作流程:

    1.客户端向服务器发送一个HTTP请求。
    1.1前端控制器DispatcherServlet接收到请求,并将其分派给合适的处理器HandlerMapping。
    1.2HandlerMapping根据请求的URL映射找到对应的处理器Handler。
    1.3处理器Handler根据业务逻辑处理请求,并返回一个模型对象和视图名称。
    1.4视图解析器通过视图名称解析出真正的视图对象。
    1.5处理器Handler将模型数据传递给视图对象。
    1.6视图对象使用模型数据生成最终的HTML响应。
    1.7最终的HTML响应由前端控制器DispatcherServlet发送给客户端。
    在整个流程中,前端控制器DispatcherServlet负责协调请求的处理,并处理一些共性的功能,如异常处理、国际化等。HandlerMapping负责将请求映射到合适的处理器Handler,处理器Handler执行具体的业务逻辑并返回模型数据和视图名称,视图解析器将视图名称解析为真正的视图对象,最后视图对象生成HTML响应。
    这个工作流程可以帮助开发者将应用程序的不同组件进行有效的分离和管理,提高了代码的可维护性和可扩展性。同时,Spring MVC还提供了一些额外的功能,如数据校验、表单处理、拦截器等,以满足不同应用场景的需求。
    流程图
    在这里插入图片描述

    2.sping mvc入门

    案列
    1.spring-mvc.xml

    
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:mvc="http://www.springframework.org/schema/mvc"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
          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">
        
        <context:component-scan base-package="com.niyin"/>
    
        
        <mvc:annotation-driven />
    
        
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            
            <property name="viewClass"
                      value="org.springframework.web.servlet.view.JstlView">property>
            <property name="prefix" value="/WEB-INF/jsp/"/>
            <property name="suffix" value=".jsp"/>
        bean>
    
        
        
        <mvc:resources location="/static/" mapping="/static/**"/>
    
    
    beans>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    2.添加依赖

    
    <jstl.version>1.2jstl.version>
    <standard.version>1.1.2standard.version>
    
    <spring.version>5.0.2.RELEASEspring.version>
    ...
    
    <dependency>
        <groupId>org.springframeworkgroupId>
        <artifactId>spring-webmvcartifactId>
        <version>${spring.version}version>
    dependency>
    <dependency>
        <groupId>jstlgroupId>
        <artifactId>jstlartifactId>
        <version>${jstl.version}version>
    dependency>
    <dependency>
        <groupId>taglibsgroupId>
        <artifactId>standardartifactId>
        <version>${standard.version}version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    .配置web.xml

    
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
             version="3.1">
      <display-name>Archetype Created Web Applicationdisplay-name>
      
      
      <context-param>
        <param-name>contextConfigLocationparam-name>
        <param-value>classpath:spring-context.xmlparam-value>
      context-param>
      
      <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>
      listener>
      
    
      
      <filter>
        <filter-name>encodingFilterfilter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class>
        <async-supported>trueasync-supported>
        <init-param>
          <param-name>encodingparam-name>
          <param-value>UTF-8param-value>
        init-param>
      filter>
      <filter-mapping>
        <filter-name>encodingFilterfilter-name>
        <url-pattern>/*url-pattern>
      filter-mapping>
    
      
      <servlet>
        <servlet-name>SpringMVCservlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
        
        <init-param>
          <param-name>contextConfigLocationparam-name>
          <param-value>classpath:spring-mvc.xmlparam-value>
        init-param>
        <load-on-startup>1load-on-startup>
        
        <async-supported>trueasync-supported>
      servlet>
      <servlet-mapping>
        <servlet-name>SpringMVCservlet-name>
        <url-pattern>/url-pattern>
      servlet-mapping>
    web-app>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51

    已经配好啦

    案列:

    package com.niyin.web;
    
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    public class IndexController {
    @RequestMapping("/hello")
        public String hello(){
            System.out.println("hello spring ...");
            return "hello";
                      }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    <%--
      Created by IntelliJ IDEA.
      User: 林墨
      Date: 2023/9/4
      Time: 20:59
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Titletitle>
    head>
    <body>
    springmvc你好
    body>
    html>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    运行结果
    在这里插入图片描述

    3.静态资源处理

    在spring-mvc.xml中

    加入即可访问到
    在这里插入图片描述

  • 相关阅读:
    1536. 排布二进制网格的最少交换次数;754. 到达终点数字;1106. 解析布尔表达式
    软件测试之【单元测试、系统测试、集成测试】
    Java底层HashMap的如何解释?
    C++ Reference: Standard C++ Library reference: C Library: cmath: cos
    Springboot毕设项目个人健康管理系统tfg73(java+VUE+Mybatis+Maven+Mysql)
    Jmeter压力测试工具,下载、安装、汉化超详细教程
    HTML期末学生大作业 基于HTML+CSS+JavaScript通用的后台管理系统ui框架模板
    打开GeoTIFF文件失败:Unknown field with tag
    meta视口标签
    D. a-Good String(递归+二分)
  • 原文地址:https://blog.csdn.net/m0_74018330/article/details/132672628