SpringMVC笔记(1)

SpringMVC笔记(1)

一、SpringMVC简介

1.1 MVC模型

MVC模型
MVC全名是Model View Controller,是模型(model)- 视图(view)- 控制器(controller)的缩写,是一种用于设计创建web应用程序表现层的模式。MVC中每个部分各司其职:
1、Model(模型):
通常指的就是我们的数据模型。作用一般情况下用于封装数据。

2、View(视图):
通常指的就是我们的jsp或者html。作用一般就是展示数据的。通常试图是依赖模型数据创建的。

3、Controller(控制器)
是应用程序中处理用户交互的部分。作用一般就是处理程序逻辑的。它相对于前两个不是很好理解,这里举个例子:
我们要保存一个用户的信息,该用户信息中包含了姓名,性别,年龄等等。这时候表单输入要求年龄必须是1 ~ 100之间的整数。姓名和性别不能为空。并且把数据填充到模型之中。此时除了js的校验之外,服务器端也应该有数据准确性的校验,那么校验就是控制器该做的。当校验失败后,由控制器负责把错误页面展示给使用者。如果校验成功,也是控制器负责把数据填充到模型,并且调用业务层实现完整的业务需求。

1.2 SpringMVC介绍

简介:

​ SpringMVC是一种基于Java的实现MVC设计模式型的请求的驱动类型的轻量级Web框架,属于Spring Framework的后续产品。
它通过一套注解,让一个简单的Java类成为处理请求的控制器,而无须实现任何接口。同时它还支持RESTFUL编程风格。

流程图示:
<span>SpringMVC笔记(1)</span>

1.3 快速入门

步骤:

  1. 导入SpringMVC包

    <!--    spring-mvc-->
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-webmvc</artifactId>
          <version>5.0.5.RELEASE</version>
        </dependency>
    
  2. 配置DispathcerServlet(前端控制器)

    web.xml中

    <!--  配置SpringMVC的前端控制器-->
      <servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
    
  3. 编写Controller

    /**
     * Bean注入
     */
    @Controller
    public class UserController {
    
        //添加请求映射
        @RequestMapping("/save")
        public String save(){
            System.out.println("Controller saving..");
            return "success.jsp";
        }
    }
    
  4. 将Contrller使用注解配置到Spring容器中并配置业务方法的映射地址(@Controller,@RequestMapping)

  5. 配置spring-mvc.xml(配置组件扫描

    spring-mvc.xml中

    <!--    配置controller的组件扫描-->
    <context:component-scan  base-package="controller"></context:component-scan>
    

二、SpringMVC组件解析

2.1 SpringMVC的执行流程

<span>SpringMVC笔记(1)</span>

<span>SpringMVC笔记(1)</span>

2.2 SpringMVC注解解析

  1. @RequestMapping

    作用: 用于建立请求 URL 和处理请求方法之间的对应关系。

    类上: 请求 URL 的第一级访问目录。此处不写的话,就相当于应用的根目录。
    写的话需要以/开头。 它出现的目的是为了使我们的 URL 可以按照模块化管理:

    方法上: 请求 URL 的第二级访问目录。

    属性: value:用于指定请求的 URL。它和 path 属性的作用是一样的。
    method:用于指定请求的方式。
    params:用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的 key 和 value 必须和 配置的一模一样。
    例如: params = {“accountName”},表示请求参数必须有 accountName params = {“moeny!100”},表示请求参数中 money 不能是 100。

  2. @Controller

    需要在spring-mvc.xml中配置

2.3 XML配置

返回时可以选择重定向或者转发

return "redirect:success.jsp";

可以在spring-mvc.xml中配置内部资源视图解析器

<!--    配置内部资源视图解析器-->
    <bean id ="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/jsp"/>
        <property name="suffix" value=".jsp"/>
    </bean>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115194.html原文链接:https://javaforall.net

(0)
上一篇 2021年11月11日 下午10:34
下一篇 2021年11月11日 下午11:00


相关推荐

  • Oracle监听器Server端与Client端配置实例

    Oracle监听器Server端与Client端配置实例

    2021年8月1日
    67
  • 不是单组分组函数

    不是单组分组函数问题:一:SELECT tablespace_name, SUM(bytes) freeFROM dba_free_space不是单组分组函数原因: 1、如果程序中使用了分组函数,则有两种情况可以使用:程序中存在group by,并指定了分组条件,这样可以将分组条件一起查询出来改为:  SELECT tablespace_name, SUM(bytes) freeFROM dba_free_spa…

    2022年6月30日
    32
  • 按右手定则求已经知三点的法向量

    按右手定则求已经知三点的法向量编程这么久了还没有一个自己常用的数学库 每每需要求解什么算法 都在网上查找相关资料 不过好处是可以复习一些已经忘却很久的知识 体验一下温故而知新 背景知识向量积 已知向量 a a1 a2 a3 b b1 b2 b3 其向量积可表示为 a b a2b3 a3b2 a3b1 a1b3 a1b2 a2b1 问题抽象已知三点 P1 x1 y1 y1 P2 x2

    2026年3月18日
    1
  • 安卓 自定义分辨率_android图片适配不同分辨率

    安卓 自定义分辨率_android图片适配不同分辨率Bluestacks是一款非常好用的电脑上的安卓模拟器,用Bluestacks来玩手机游戏是不少朋友的选择,但是Bluestacks默认分辨率都非常大,比如小编的默认分辨率就达到了1280*720。运行Bluestacks后,不仅字和图标很小,打开游戏、软件都显得很模糊,但是安卓界面本身又很大,好多空白的地方。那么多大的分辨率才合适呢?Bluestacks分辨率修改方法1.Bluestacks的合…

    2022年8月13日
    3
  • 建议收藏!2025年最好用的14个免费AI工具,包括DeepSeek、豆包、腾讯ima…(全是干货)

    建议收藏!2025年最好用的14个免费AI工具,包括DeepSeek、豆包、腾讯ima…(全是干货)

    2026年3月12日
    2
  • 一元三次方程重根判别式_一元三次方程的求根公式

    一元三次方程重根判别式_一元三次方程的求根公式一元二次方程的回顾和启示学过初中数学都知道对于任何一个实系数一元二次方程 通过配方可以得到 根据判别式的符号 可以判断方程实根的个数 并且可以得到求根公式要么是个不同的实根 要么是个二重实根 要么是对共轭虚根 计算重数的情况下都是个根 记两根为可以直接验证韦达定理 两根之和以及两根之积 判别式 求根公式看上去复杂 但如果把上述两式代入求根公式 注 如果

    2026年3月20日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号