SpringMVC框架学习笔记(一)

简单了解

M 模型 javabean中的一个对象
V 视图
C 控制器 接收请求并进行处理,使用javabean将接收到的数据进行封装。
在这里插入图片描述

入门程序

需求:便写jsp的页面,使用超链接,点击链接,发送请求,SpringMVC框架处理请求,转发到成功页面
在这里插入图片描述
一、搭建开发环境
1、创建项目。在这里插入图片描述
然后不停地next即可。如果要解决加载过慢的问题,可以在如下页面添加键值对:
在这里插入图片描述
创建成功后,将文件结构补充完整。在main下面新建一个名为java的目录,按照如下图所示进行设置。
在这里插入图片描述
2、导入开发的jar包(坐标依赖)。打开pom文件,将下面内容复制到文件中:

<properties>
    <spring.version>5.0.2.RELEASE</spring.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.0.2.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>5.0.2.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.0.2.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.0</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>

3、在web.xml文件中配置前端的控制器。
在这里插入图片描述
4、创建springmvc的配置文件,如下图所示:
在这里插入图片描述
二、入门代码编写

1、在webapp目录下的jsp文件中编写代码。
在这里插入图片描述
2、配置springMVC的配置文件。在配置文件当中开启注解扫描。类被扫到以后就变成对象,

        <?xml version="1.0" encoding="UTF-8"?>
        <beans xmlns="http://www.springframework.org/schema/beans"
               xmlns:mvc="http://www.springframework.org/schema/mvc"
               xmlns:context="http://www.springframework.org/schema/context"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://www.springframework.org/schema/beans
                                   http://www.springframework.org/schema/beans/spring-beans.xsd
                                   http://www.springframework.org/schema/mvc
                                   http://www.springframework.org/schema/mvc/spring-mvc.xsd
                                   http://www.springframework.org/schema/context
                                   http://www.springframework.org/schema/context/spring-context.xsd">
        
            <!--配置了内容,启动Tomcat服务器的时候,就会被加载-->
            <!--配置注解扫描-->
            <context:component-scan base-package="main.java.cn.xuqg.demo1"/>
        
            <!--配置视图解释器,进行页面的跳转-->
            <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <!--跳转的页面的路径-->
                    <property name="prefix" value="/" />
            <!--跳转的页面的后缀名称-->
                    <property name="suffix" value=".jsp" />
            </bean>
        
        </beans>

3、配置前端控制器(Servlet,SpringMVC框架提供的)(web.xml)。该步骤的过程主要的作用是使得配置文件被加载。文件中init-param标签的作用在于为param-name所显示的属性传值,将配置文件传入,使得springMVC可以加载所需要的配置文件。load-on-startup表示启动服务器就可以开始创建对象,加载配置文件,扫描生效,类变成对象。

<?xml version='1.0' encoding='UTF-8'?>
        <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xmlns="http://java.sun.com/xml/ns/javaee"
                 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                            http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">


            <!--配置springMVC的前端控制器-->
            <servlet>
                <servlet-name>dispatcherServlet</servlet-name>
                <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
                <!--加载springmvc.xml配置文件,配置的是spring配置-->
                <init-param>
                    <param-name>contextConfigLocation</param-name>
                    <param-value>classpath:springmvc.xml</param-value>
                </init-param>
                <!--配置启动加载-->
                <load-on-startup>1</load-on-startup>
            </servlet>
            <servlet-mapping>
                <servlet-name>dispatcherServlet</servlet-name>
                <url-pattern>*.do</url-pattern>
            </servlet-mapping>
        </web-app>

4、编写Controller类(控制器类)。加载成功后,MVC会跳转到一个成功页面。

//控制器:处理用户的请求
        @Controller
        public class HelloController {
            //处理超链接发出来的请求
            @RequestMapping("/hello.do")
            public String sayHello(){
                System.out.println("入门方法执行了...");
                //返回值为jsp页面跳转的路径,默认使用的是请求的转发
                //return "/suc.jsp";
        
                //配置了视图解析器后的写法
                return "suc";
            }
        }

三、流程总结
1、启动服务器,加载配置文件。在web.xml文件当中配置一个前端的控制器。启动服务器时,servlet对象被创建,配置文件被加载。
2、配置文件当中含有注解扫描,一开始就可以将控制器类进行加载,变成对象,默认是单例的。视图解析器也可以直接变成对象,完成跳转页面的操作。最后,开启springMVC框架注解支持。
3、发送http请求,后台处理。页面上有超链接,可以通过点击来发送超链接。首先会执行servlet,它会拦截所有请求。servlet是前端控制器,起到一个指挥中心的作用。servlet会根据之前方法上方编写的注解,找到具体的方法,让方法执行。
4、执行完成后,控制器找别的方法去执行,找视图解析器。视图解析器会帮助我们找到返回页面。servlet最后将请求响应到客户端。
四、组件介绍
在这里插入图片描述
五、RequestMapping注解
作用:建立请求URL和处理请求方法之间的对应关系。客户端发送请求,服务端执行,需要在二者之间建立对应关系。
在这里插入图片描述
如果将注解放在类上,可以声明一级目录,使得URL更加清晰。将注解放在方法上,可以声明请求URL的二级访问目录。
属性:
value:用于指定请求的URL。它和path属性的作用是相同的。
method:用于指定请求的方式。
params:用于指定限制请求参数的条件。它支持简单的表达式,要求请求参数的key和value必须一模一样。

请求参数的绑定

客户端在发送请求时,会携带请求参数,服务端会获取参数,这个过程称为请求参数的绑定。
请求表单提交数据时,以键值对的形式进行。springMVC框架会在方法上加入参数,参数来源于表单提交的数据。底层通过反射的方式拿到方法的属性,将表单的名字传给属性的值。
在这里插入图片描述
支持的数据类型:
1、基本数据类型和字符串类型。
2、实体类型javabean
3、集合数据类型list、map等等。
基本数据类型和字符串类型。
示例:
页面的代码:
在这里插入图片描述

控制器类的代码:
在这里插入图片描述
要做到方法的参数和提交的参数相绑定,如下图所示:
在这里插入图片描述
在这里插入图片描述
请求参数绑定实体类型
1、新建一个Account类。
在这里插入图片描述
2、创建一个表单。其中name与javabean的属性名称相同。
在这里插入图片描述
3、编写表单提交后,后台的处理方法。
在这里插入图片描述
当Account类中还有另一个类的引用时,如下图所示:
在这里插入图片描述
如果要往User类对象当中注入数据,应该如下写法:
在这里插入图片描述
解决中文乱码的配置
当在表单中提交中文时,会出现乱码现象,如下图所示:
在这里插入图片描述
在这里插入图片描述
可以通过在web.xml文件中配置过滤器来解决这个问题。如下图所示:
在这里插入图片描述
请求参数绑定集合类型
假设类中含有集合类型,需要将数据封装到类当中。
在这里插入图片描述
应当在jsp文件当中进行如下配置:
在这里插入图片描述
自定义类型转换器
在这里插入图片描述
当格式不支持时可能会发生报错。如下图所示,User类中有一个属性date表示日期。
在这里插入图片描述
按下图所示的方式编写表单:
在这里插入图片描述
在控制器类当中添加如下方法:
在这里插入图片描述
测试后发现出现异常。解决方法:自定义类型转化器。
实现方法:1、定义一个类,实现Converter接口,该接口有两个泛型。
注册类型转换器,前端控制器会寻找类型转换器,将字符串转为日期格式。接口的源码如下图所示。其中S是原始类型,T是目标类型。
在这里插入图片描述
编写一个新的类实现Converter接口,如下图所示:
在这里插入图片描述
2、打开springMVC的配置文件。最外层bean标签中的class后面的内容固定,可以通过查文档找到。内层bean标签中的class表示第一步所编写的类的全限定类名。
在这里插入图片描述
3、使得配置生效
在这里插入图片描述
获取Servlet原生的API
在方法上加参数即可。想获得谁就写对应的对象即可。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值