SpringMvc框架(一)

一、mvc简介

MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分。

M:Model,模型层,就是指我们工程中的JavaBean,是用来处理数据的

JavaBean分为两类,

  • 一类为实体类Bean:用来存储数据,例如我们的Student、User等实体类。
  • 一类为业务处理Bean:就是我们用来处理业务的方法类,即dao对象。

V:View,视图层,指的是工程中的html或是jsp页面,作用是用来和用户进行交互,展示数据。

C:Controller,控制层,就是我们工程中的servlet,用来处理请求和相应请求。

MVC的工作流程:用户通过视图层页面发送请求到服务器,在服务器中Controller接收请求,调用相对应的Model层进行业务处理,处理完成后,将结果返回给Controller,Controller再将处理完成的数据响应到对应的视图层,视图层通过渲染将响应结果呈现给用户。

二、什么是SpringMVC,为什么使用?

SpringMVC它是Spring框架的一个分支,SpringMVC框架主要完成的功能是:接收浏览器的请求响应,对数据进行处理,然后返回页面进行显示,也可以把它理解为和Servlet干的工作是一样的。

使用SpringMVC是为了让controller层更加简便快捷的处理请求,并且提高代码的复用性。

三、使用步骤

3.1 创建Maven-Web工程

        创建工程的参考:

Maven仓库的安装于创建工程_好像认识你好久了的博客-优快云博客1、什么是MavenMaven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。可以理解为Maven就是一个项目管理工具。2、为什么使用Maven使用maven自动下载jar包,我们只需要指定jar的坐标即可。在后期实现项目时,项目较大的话,用到的jar包就会很多很多,这使得我们的程序占用空间就会很大,使用Maven,就是我们在编写项目时,不需要再向工程中手动添加jar包,可以通过添加依赖来导入使用jar包,一定程度上减少工程的占用空间。3https://blog.youkuaiyun.com/weixin_54204139/article/details/125057902?spm=1001.2014.3001.5502       工程创建完成后,一些版本较为低的idea,它的web.xml文件版本太低,建议使用较高版本的xml。下面是4.0版本的web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
</web-app>

3.2 引入jar包依赖

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.2.15.RELEASE</version>
    </dependency>

3.3 创建SpringMVC配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
    <!--包扫描-->
    <context:component-scan base-package="com.xrx.controller"/>

</beans>

3.4 将DispatcherServlet和SpringMVC配置文件注册到web.xml文件上

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <!--默认DispactherServlet加载的springmvc配置文件:WEB-INF/[servlet-name]-servlet.xml
        能不能你指定加载的配置文件呢:可以。
    -->
    <servlet>
        <servlet-name>DispactherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <!--classpath:表示编译后的路径   :后就是创建的SpringMVC配置文件-->
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>DispactherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

3.5 创建一个Controller类来测试 

//这个类为controller的注解标志
@Controller
public class Controll {
    //设置这个方法的请求路径
    @RequestMapping(value="hello")//当只有value这一个属性的时候可以省略,多个属性时不可省略
    public String hello(int id){
        System.out.println("id:"+id);
        return "index.jsp";
    }
}

运行流程总结:

 *     1. 客户端发生请求http://localhost:8080/qy151_springmvc01/abc
 *     2. 来到tomcat服务器。
 *     3. springmvc的前端控制器DipatcherServlet接受所有的请求。
 *     4. 查看你的请求地址和哪个@RequestMaping匹配。
 *     5. 执行对应的方法。方法会返回一个字符串。springmvc把该字符串解析为要转发的网页。
 *     6. 把该字符串经过视图解析器拼接。
 *     7. 拿到拼接的地址,找到对应的网页。
 *     8. 渲染该网页给客户

四、如何在controller接受请求的参数

4.1 少量参数

        接收参数就是在对应方法中设置你要传入数量的参数,特别注意的就是传参时,前端参数的名字必须要和你后端方法中参数的名字相同,Springmvc会在你请求时将参数按照参数名自动绑定,所以一定要保证参数名一致。

4.2 大量参数

        在接收大量参数时,就把多个参数封装成一个实体类对象进行传递。为了方便在前端将要传递的值放在一个数组中,同样数组中的每一个参数名,要和实体类中的每个属性名要一致,否则会在传值时出问题。Springmvc同样会将数据根据名字进行绑定。

 4.3 接收日期类型的参数

我们在传值时,如果有日期类型的参数,在传递时,由于前端传过来时时字符串格式,后端时日期类型,这是就会报错。

 解决办法:在时间类型的属性上添加一个注解:@DateTimeFormat(pattern = "yyyy-MM-dd")

    //yyyy年  MM:月 dd日  24小时制  
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date birthday;//出生日期

并且要在Springmvc配置文件中开启注解驱动

     <!--开启注解驱动-->
    <mvc:annotation-driven/>

五、处理静态资源

我们在编写网页时,一定有着网页的图片、css、js等一些静态资源,但是,在我们在运行时会出现显示不出来的问题,原因是:springmvc的前端控制器DispatcherSerlvet也把静态资源拦截器 ,导致加载不出来,不显示效果。

解决办法:放行静态资源就好了

在配置文件中放行静态资源:

    <!--放行静态资源:哪些资源为静态资源。css img js html-->
    <mvc:default-servlet-handler/>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值