SpringMVC

什么是MVC架构

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

 MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式,它们各自处理自己的任务:
      MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。

Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
  通常模型对象负责在数据库中存取数据。
View(视图)是应用程序中处理数据显示的部分。
  通常视图是依据模型数据创建的。
Controller(控制器)是应用程序中处理用户交互的部分。
  通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

什么是springMVC

springmvc是spring框架的一种分支。SpringMVC 是类似于 Struts2 的一个 MVC 框架,在实际开发中,==接收浏览器的请求响应,对数据进行处理,然后返回页面进行显示==,但是上手难度却比 Struts2 简单多了。而且由于 Struts2 所暴露出来的安全问题,SpringMVC 已经成为了大多数企业优先选择的框架。

快速入门springMVC

(1)创建一个web工程

 2,引入springmvc的依赖

<!--maven可以把该依赖相关的依赖都引入。-->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>5.2.9.RELEASE</version>
</dependency>

3,创建控制层(controller)

/**
 * @program: spring01
 * @description:
 * @author: 不会代码的坤仔
 * @create: 2021-12-04 09:18
 **/
@Controller//表示为控制层
public class Hellocontroller {
    @RequestMapping("/hello01")//根据请求路径相应的方法
    public String hello01(){
        System.out.println("111111111111111");
        return "hello01";
    }
    @RequestMapping("/a")
    public String a(){
        //System.out.println("aaaaaaaaaaaaaaaaaa");
        return "index";
    }
}

4,配置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"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       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 http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--
包扫描扫描控制层  扫描我们自己的控制层类所在的包或者父包
-->
    <context:component-scan base-package="com.aaa.qy145.ninth.rqk.comtroller"/>
    <!--时间类型放行-->
    <mvc:annotation-driven/>
    <!--静态资源放行-->
    <mvc:default-servlet-handler/>
    <!--视图解析解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

</beans>

5,引入前端控制器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">
    

    <servlet>
        <servlet-name>Spring</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        加载springmvc的配置文件
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:Spring.xml</param-value>
        </init-param>
    </servlet>
        servlet映射路径
            /:表示所有的控制层的路径 以及静态资源
            /*:表示全部 包含jsp网页
    <servlet-mapping>
        <servlet-name>Spring</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

7,springmvc的流程

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

2、  DispatcherServlet收到请求调用HandlerMapping处理器映射器。

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

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

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

6、  Controller执行完成返回ModelAndView。

7、  HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。

8、  DispatcherServlet将ModelAndView传给ViewReslover视图解析器。

9、  ViewReslover解析后返回具体View。

10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。

11、 DispatcherServlet响应用户。

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

springmvc如何接受请求参数

注意:

如果有参数列表参数名必须保持一致

接收参数个数少

@RequestParam:

    @RequestMapping("/a")
    public String hello(
     //@RequestParam: value设置接受的参数名称。 相当于别名
    //required:该参数不是必须  defaultValue:默认值
            @RequestParam(value = "ages",required = false,defaultValue = "33") int age,
            @RequestParam(value = "username",required = false, defaultValue = "张三")String name){
        //System.out.println("姓名:"+age+"年龄:"+name);
        return "index2";
    }

接收多个参数

需要创建一个接收对象的类,用来存放接收来的参数

/**
 * @program: spring01
 * @description:
 * @author: 不会代码的坤仔
 * @create: 2021-12-04 14:59
 **/
@Data
public class Users {
    private String username;
    private Integer age;
    private String sex;
    private String add;
    //接收时间需要添加的注解
    @DateTimeFormat(pattern = "yyyy-MM-dd")//获取时间数据 (yyyy-MM-dd )类型 年-月-日
    private Date birth;
}

contoller层

 @RequestMapping("/b")
    public String forms(Users users){
        System.out.println(users);
        return "index2";
    }

接收时间类型的参数

在接收的参数的上方加上  @DateTimeFormat 注解  并设置想要的时间格式

 @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date birth;

同时配置文件 中放行时间类

  <!--特殊类放行  (时间)-->
    <mvc:annotation-driven/>

静态资源

什么是静态资源

静态资源是浏览器能够直接打开的,一个js文件,在打开方式中选择IE浏览器打开,浏览器可以直接打开没有出现问题,那么就说明它是一个静态资源。html文件、css文件、js文件等它们都是静态资源。

放行静态资源

<!--静态资源放行-->
    <mvc:default-servlet-handler/>

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值