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


相关推荐

  • 两个div在同一行,两个div不换行「建议收藏」

    两个div在同一行,两个div不换行

    2022年1月18日
    46
  • CSS中的媒体类型media type[通俗易懂]

    CSS中的媒体类型media type[通俗易懂]madiatype作用首先要明白一点,我们平时写的HTML页面,可能在不同的媒体类型中显示,如可能显示在屏幕sreen上,也可能显示在纸质print上。那么当页面在不同的媒体类型中显示时,需要的样式可能是不一样的。比如,一般在screen上显示时,页面字体要大一些,在纸质媒体显示时,页面字体要小一些。那么如何告诉别人某个样式是适用于何种媒体类型的呢?这就要靠声明mediatype来实现了。

    2022年5月25日
    92
  • 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办…

    准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办…有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次打开:服务和应用程序—-服务。找到右侧的:windowsUpdate;3、鼠标双击windowsupdate,打开属性启动类型选:禁用,这样就关…

    2022年6月15日
    251
  • sql的嵌套查询_sql子查询嵌套优化

    sql的嵌套查询_sql子查询嵌套优化最近在做各类小应用,用到了MYSQL,有时候会用到一些比较复杂的嵌套查询,在研究怎么通过SQL实现这些。假设下面这张表(stu)描述学生的基本信息:idnamegrade1Jim72Tom83Cake9………另外一张表(sco)描述学生的成绩信息:stu_idsubjectscore1

    2022年8月10日
    9
  • python列表中两个冒号_python字符串中的冒号

    python列表中两个冒号_python字符串中的冒号1.冒号的用法1.1一个冒号a[i:j]这里的i指起始位置,默认为0;j是终止位置,默认为len(a),在取出数组中的值时就会从数组下标i(包括)一直取到下标j(不包括j)在一个冒号的情况下若出现负数则代表倒数某个位置a[i:-j]这里就是从下标i取到倒数第j个下标之前(不包括倒数第j个下标位置的元素)1.2两个冒号a[i:j:h]这里的i,j还是起始位置和终止位置,h是步长,默认为1若i/j…

    2022年8月13日
    5
  • 《启示录-打造用户喜爱的产品》-第一部分

    今天下午读了《启示录-打造用户喜爱的产品》的第一部分,介绍软件开发中的人员职能,其实主要还是产品经理相关的,做了一部分笔记如下。其实平时读书也一直在思考,应该怎么读书,很多读过的书当时很受启发,但是过段时间就会淡忘了,模糊记得一些内容,但是又好像没有什么作用。之后读书读到有启发的地方还是记录一下,回头看看应该也还是有收获的。不知道大家都是怎么读书,有好方法的也欢迎交流下。优秀产品经理的七个特点1、

    2022年3月11日
    41

发表回复

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

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