SpringMVC----前段时间学习小结

概述

SpringMVC是一种基于 Java的实现MVC设计模型的请求驱动类型的轻量级Web框架,属于SpringFrameWork的后续产品,已经融给在Spring Web Flow中。

简单来说,就是基于Java抽取思想,实现的一个框架。在Web应用中,有很多经常重复的操作,比如接收请求,包装参数…而MVC将这些重复的代码部分抽取然后包装起来,形成框架。我们只需要编写web层中特有的那部分代码,就可。

MVC中控制这些共有操作的那一部分叫做前端控制器。而我们编写的那部分叫做POJO,也叫后端控制器
我们只需将POJO那一部分编写为简单的JavaBean就行,不必是servlet,因为servlet部分操作由MVC帮我们完成

简单的编写流程

在这里插入图片描述
①导入SpringMVC相关坐标(即导入jar包)

<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.0.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.0.5.RELEASE</version>
        </dependency>


<!--        web配置-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>5.0.5.RELEASE</version>
        </dependency>
<!--        MVC配置-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.0.5.RELEASE</version>
        </dependency>
        <!--        servlet配置-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
        </dependency>
        <!--        jsp配置-->
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>2.3.3</version>
        </dependency>

这里我用的Maven,导入了几个对应的jar包

②配置SpringMVC核心控制器DispathcerServlet
在这里插入图片描述
init-param这个标签得注意一下,这个用来设置配置的servlet的初始化参数,此处设置contextConfigLocation的值为classpath:spring-mvc.xml,即此servlet使用配置路径下的spring-mvc.xml当做配置文件
③创建Controller类和视图页面
在这里插入图片描述
对于web层,我们用@Controller来把它放到spring容器中
④使用注解配置Controller类中业务方法的映射地址
在这里插入图片描述
⑤配置SpringMVC核心文件spring-mvc.xml
在这里插入图片描述
⑥客户端发起请求测试
在这里插入图片描述

SpringMVC的执行流程

在这里插入图片描述
其实前端控制器就类似于一个中转站,MVC中有很多种组件,MVC通过和这些组件进行交互来实现功能的

步骤概述

  1. 用户发送请求至前端控制器DispatcherServlet。

  2. DispatcherServlet收到请求调用Handlermap处理器映射器。

  3. 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

  4. DispatcherServlet调用HandlerAdapter处理器适配器。

  5. HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。

  6. 控制器执行完成返回模型和视图。

  7. HandlerAdapter将控制器执行结果ModelandView返回给DispatcherServlet。

  8. DispatcherServlet将ModelandView传给ViewResover视图解析器。

  9. ViewReslover解析后返回具体View

  10. DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。DispatcherServlet响应用户。

@RequestMapping

@RequestMapping
作用:用于建立请求URL和处理请求方法之间的对应关系
可作用位置:
类上,请求URL的第一级访问目录。此处不写的话,就相当于应用的根目录
方法上,请求URL的第二 级访问目录,与类上的使用@ReqquestMapping标注的一 级目录一 起组成访问虚拟路径
可指定属性:
value:用于指定请求的URL。它和path属性的作用是一样的
method:用于指定请求的方式
params:用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的key和value必须和配置的一模一样。
在这里插入图片描述

返回视图的一些注意事项

在这里插入图片描述

SpringMVC注解扫描的一些解析

在这里插入图片描述

<!--    也可以这么写-->
    <context:component-scan base-package="com">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<!--        这里表示仅扫描com下的Controller注解-->
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<!--        这里表示扫描除指定注解外的其他注解-->
    </context:component-scan>

使用Maven的一些注意点

指定JDK使用版本

在idea中,有的时候,一旦更新jar包,Maven就会把我们当前项目设置的jDK版本改为1.5,我们又需要手动在这里去修改为我们对应的版本:
在这里插入图片描述
然后可能还要把这里改为对应的版本:在这里插入图片描述
这样比较麻烦。所以建议,我们在pom.xml文件中加上下面的配置,来指定JDK版本

<build>
        <plugins>
            <!-- 指定jdk -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <skip>true</skip>
                    <source>JAVA版本号</source>
                    <target>JAVA版本号</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

        </plugins>
    </build>

把普通JAVA项目改为Web项目

在这里插入图片描述
Facets---->Web,这里选择要添加web配置,然后选择要添加到哪个项目上
然后在这里插入图片描述
可以在这里指定我们生成的web文件放在此项目的哪个位置(上面的是指定web.xml文件的路径,下面的指定web包放哪里)
一般放在这里:在这里插入图片描述

java普通项目改为web的项目运行前的必备步骤

  1. 把我们的web项目这样在这个里面添加一下在这里插入图片描述这样我们才能把我们的项目发布到Tomcat中
  2. 这里,在最右边选择我们的项目在这里插入图片描述然后右键,选择第一个点击,然后我们的web项目才能正常运行
    这一步其实就是为了使我通过Maven导入的jar包生效
  3. 注意一点,我们配置的web项目是需要导入jar包的,如下:
    在这里插入图片描述
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值