再下一城 - springMVC框架笔记(一)
发布日期:2021-05-11 00:06:05 浏览次数:21 分类:精选文章

本文共 4181 字,大约阅读时间需要 13 分钟。

SpringMVC框架第一天

一、三层架构与MVC

  • 三层架构
  • SpringMVC属于Spring框架的一部分,主要用于构建Web应用程序。其三层架构包括:

    表现层(WEB层):负责接收并处理客户端的请求,与用户进行数据交互。表现层通常采用MVC设计模式。

    业务层:处理公司具体的业务逻辑。

    持久层:与数据库进行数据交互。

    1. MVC模型
    2. MVC全称Model View Controller,分为三大部分:

      Model(数据模型):用于封装数据,通常由JavaBean类实现。

      View(视图):用于展示数据,常见的有JSP和HTML。

      Controller(控制器):负责接收用户请求并控制整个流程的执行,通常由SpringMVC框架提供。

      二、SpringMVC入门案例

    3. SpringMVC概述
    4. SpringMVC是一种基于Java实现的MVC框架,是SpringFrameWork的后续产品。它支持请求驱动开发,适合构建轻量级Web应用程序。

      1. SpringMVC在三层架构中的位置
      2. SpringMVC主要负责表现层的框架支持。

        1. SpringMVC优势
        2. 与Struts2框架相比,SpringMVC具有以下优势:

          • 更加简洁,支持JSR303规范。
          • 处理AJAX请求更为方便。
          • 执行效率比Struts2更高。
          1. SpringMVC入门程序

          2. 创建Web项目

            • 配置Maven插件:archetypeCatalog - internal
            • 在pom.xml中添加必要的Spring依赖和Servlet依赖。
            1. 配置DispatcherServlet
            2. 在web.xml中配置核心控制器:

              dispatcherServlet
              org.springframework.web.servlet.DispatcherServlet
              contextConfigLocation
              classpath:springmvc.xml
              1
              dispatcherServlet
              /
              1. 配置SpringMVC框架
              2. 在springmvc.xml中添加配置:

                <context:component-scan base-package="cn.itcast" />
                <mvc:annotation-driven />

                1. 编写入门程序
                  • index.jsp:
                  SpringMVC入门

                  SpringMVC入门

                  点击进入
                  • HelloController:
                  package cn.itcast.controller;
                  import org.springframework.stereotype.Controller;
                  import org.springframework.web.bind.annotation.RequestMapping;
                  @Controller
                  @RequestMapping("/hello")
                  public class HelloController {
                  @RequestMapping
                  public String sayHello() {
                  System.out.println("Hello SpringMVC!");
                  return "success";
                  }
                  }
                  • pages/success.jsp:
                  成功页面

                  入门成功

                  四、@RequestMapping注解

                2. RequestMapping注解作用
                3. 用于建立请求URL与控制器方法之间的对应关系。可以作用在类和方法上。

                  1. RequestMapping的属性
                    • path:指定请求路径。
                    • value:与path属性功能相同。
                    • method:指定请求方法。
                    • params:限制请求参数。
                    • headers:指定必须包含的请求头。
                    • cookies:指定必须包含的cookie。

                    三、请求参数绑定

                  2. 请求参数的绑定过程
                  3. SpringMVC通过自动绑定请求参数到控制器方法参数,实现数据的自动传输。

                    1. 支持的数据类型
                      • 基本数据类型和字符串类型。
                      • 实体类型(JavaBean)。
                      • 集合数据类型(List、Map等)。
                      1. 自定义类型转换器
                      2. 通过实现Spring的Converter接口,可以自定义数据类型转换。例如:

                        package cn.itcast.utils;
                        import org.springframework.core.convert.converter.Converter;
                        import java.text.SimpleDateFormat;
                        import java.util.Date;
                        public class StringToDateConverter implements Converter
                        {
                        public Date convert(String source) {
                        if (source == null) {
                        throw new RuntimeException("请您输入日期");
                        }
                        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
                        try {
                        return df.parse(source);
                        } catch (Exception e) {
                        throw new RuntimeException("数据类型转换错误");
                        }
                        }
                        }

                        在SpringMVC.xml中注册自定义转换器:

                        五、常用注解

                      3. @RequestParam注解
                      4. 用于获取请求参数:

                        @RequestMapping("/testRequestParam")
                        public String testRequestParam(@RequestParam("name") String username) {
                        System.out.println(username);
                        return "success";
                        }
                        1. @RequestBody注解
                        2. 用于获取请求体内容:

                          @RequestMapping("/testRequestBody")
                          public String testRequestBody(@RequestBody String body) {
                          System.out.println(body);
                          return "success";
                          }
                          1. @PathVariable注解
                          2. 用于获取URL占位符:

                            @RequestMapping("/testPathVariable/{sid}")
                            public String testPathVariable(@PathVariable("sid") String id) {
                            System.out.println(id);
                            return "success";
                            }
                            1. @CookieValue注解
                            2. 用于获取cookie值:

                              @RequestMapping("/testCookieValue")
                              public String testCookieValue(@CookieValue("JSESSIONID") String cookieValue) {
                              System.out.println(cookieValue);
                              return "success";
                              }
                              1. @SessionAttributes注解
                              2. 用于多次执行控制器方法间的参数共享:

                                @Controller
                                @RequestMapping("/anno")
                                @SessionAttributes(value = {"msg"}, types = {String.class})
                                public class AnnoController {
                                @RequestMapping("/saveSessionAttributes")
                                public String saveSessionAttributes(Model model) {
                                model.addAttribute("msg", "大佬");
                                return "success";
                                }
                                @RequestMapping("/getSessionAttributes")
                                public String getSessionAttributes(ModelMap modelMap) {
                                String msg = (String) modelMap.get("msg");
                                System.out.println(msg);
                                return "success";
                                }
                                @RequestMapping("/delSessionAttributes")
                                public String delSessionAttributes(SessionStatus status) {
                                status.setComplete();
                                return "success";
                                }
                                }

                                六、技术总结

                              3. 创建SpringMVC项目并配置依赖包。

                              4. 配置DispatcherServlet并启动服务器。

                              5. 编写SpringMVC.xml配置文件。

                              6. 编写入门示例,理解@RequestMapping注解的使用。

                              7. 掌握请求参数绑定机制,解决中文乱码问题。

                              8. 学习常用注解的使用,如@RequestParam、RequestBody等。

                              9. 通过以上内容,可以快速入门SpringMVC框架,掌握基础配置和常用功能。

    上一篇:Typora有用技巧
    下一篇:战斗伊始 - MyBatis框架入门学习(一)

    发表评论

    最新留言

    路过按个爪印,很不错,赞一个!
    [***.219.124.196]2025年05月09日 12时00分09秒