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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vb中copymemory如何用_vb中lcase函数

    vb中copymemory如何用_vb中lcase函数vb中copymemory函数的使用挺耐人寻味的。copymemory的使用说明资料书上就一句“该函数用于将一块内存的数据从一个位置复制到另一个位置”。其参数数据类型destinationasany,sourceasany。尽管是any型可理解成任一类型但是我看很多地方都说参数是指针类型的。因此起初我很不解,既然是指针型的参数我们往往直接将变量传递过去而不是变量的地址传递过去不是非法的吗?

    2025年7月7日
    2
  • 如何备份mysql_史上最全的MYSQL备份方法

    如何备份mysql_史上最全的MYSQL备份方法本人曾经用过的备份方式有:mysqldump、mysqlhotcopy、BACKUPTABLE、SELECTINTOOUTFILE,又或者备份二进制日志(binlog),还可以是直接拷贝数据文件和相关的配置文件。MyISAM表是保存成文件的形式,因此相对比较容易备份,上面提到的几种方法都可以使用。Innodb所有的表都保存在同一个数据文件ibdata1中(也可能是多个文件,或者是独立的表…

    2022年6月22日
    46
  • UVa – The 3n + 1 problem 解读

    UVa – The 3n + 1 problem 解读

    2022年1月6日
    38
  • java四舍五入取整算法(小数四舍五入取整公式)

    简介Math类中提供了5个与取整相关的函数,如下所示:staticdoubleceil(doublea):天花板函数,返回大于等于a的最小整数(但是以浮点数形式存储)。staticdoublefloor(doublea):地板函数,返回小于等于a的最大整数(但是以浮点数形式存储)。staticdoublerint(doublea):四舍五入函数,返

    2022年4月16日
    380
  • python列表中的所有值转换为字符串,以及列表拼接成一个字符串

    python列表中的所有值转换为字符串,以及列表拼接成一个字符串直接看代码:>>>ls1=[‘a’,1,’b’,2]>>>ls2=[str(i)foriinls1]>>>ls2[‘a’,’1′,’b’,’2′]>>>ls3=”.join(ls2)>>>ls3’a1b2′

    2022年6月8日
    34
  • 粒子群优化算法matlab程序_多目标优化算法

    粒子群优化算法matlab程序_多目标优化算法1.粒子群优化算法概述2.粒子群优化算法求解     2.1连续解空间问题     2.2构成要素     2.3算法过程描述     2.4粒子速度更新公式     2.5速度更新参数分析3.粒子群优化算法小结4.MATLAB

    2022年10月11日
    4

发表回复

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

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