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


相关推荐

  • 最强内存稳定性测试软件,内存稳定性测试软件TM5「建议收藏」

    最强内存稳定性测试软件,内存稳定性测试软件TM5「建议收藏」内存稳定性测试软件TM5是一款非常好用的内存超频软件,内存稳定性测试速度快,我个人一般跑3圈没有报错就行了,使用简单,直接打开软件自动运行,有需要的朋友赶紧下载试试吧。软件说明;在Cycle达到4时一般就可以停止测试了,想更稳的可以测试更长时间个人在Error出现错误后,就会重新调整内存参数(1,2个错误有时候可能是由温度引起的)测试毕竟不是绝对的,日常正常使用不会出现问题即可使用方法:1下载T…

    2025年10月12日
    4
  • 深入理解Java虚拟机–javac命令[通俗易懂]

    深入理解Java虚拟机–javac命令[通俗易懂]目录指定编译源文件命令选项非标准选项-Xjavac命令用于将.java源文件编译成.class字节码文件,在windows命令行中使用”javac-help”命令查看其用法:语法格式:javac<options><sourcefiles>options#命令行选项,可指定多个…

    2022年5月28日
    42
  • 情感词典是什么_中文情感分析词典

    情感词典是什么_中文情感分析词典【实例简介】1.褒义词及其近义词;2.否定词典;3.情感词汇本体;4.清华大学中文褒贬词典;5.台湾大学NTUSD情感词典;6.知网情感词典;7.汉语情感极值表;8.情感词典及其分类。【实例截图】【核心代码】SentimentAnalysisDic`–SentimentAnalysisDic|–知网Hownet情感词典||–主张词语(中文).txt||–主张词语(英文)…

    2022年8月23日
    6
  • windows下的pycharm配置 linux环境

    windows下的pycharm配置 linux环境由于最近学习python的需要,为了方便程序的调试,尝试在Windows下的Pycharm远程连接到虚拟机中Centos下的python环境。(这里我采用的是ssh的远程连接)1、准备工作:固定ce

    2022年7月6日
    26
  • 远程代码托管平台–GitHub、Gitee的使用

    远程代码托管平台–GitHub、Gitee的使用本文章需要阅读者有Git基础,如果不知道Git是什么或者不知道Git的基本操作的小伙伴可以先看一看我上一篇文章:Git的介绍、安装及其基本操作在上一节中我们学习了目前全球最流行的分布式版本控制工具–Git的产生、安装以及基本使用,了解了如何通过Git进行版本控制,但是我们可以发现,在上一节中我们所有的操作都是在本地进行的(由工作区添加到暂存区,由暂存区提交到本地库),但是我们知道,在公司内部,一个项目的开发是由一个团队协作完成的,这种协作包括团队内协作和跨团队协作,那么如何实现团队协作呢?事实上,实

    2025年5月30日
    2
  • vue中使用定时器setInterval

    vue中使用定时器setIntervalvue中使用定时器setIntervalthis.timer=setInterval(this.fetchData,1000);clearInterval(this.timer);beforeDestroy(){clearInterval(this.timer);},

    2025年6月22日
    5

发表回复

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

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