Lecture01-SpringMVC简介

文章目录

    [toc]

    单词词性音标含义
    Requestn. / v./rɪˈkwest/请求(Web开发中表示客户端向服务器发送的请求,Spring MVC中@Request相关注解用于处理请求数据,如@RequestBody获取请求体)
    Mappingn. / v./ˈmæpɪŋ/映射(Spring MVC中@RequestMapping注解用于将请求URL与处理方法关联,定义请求路径、方法、参数等映射规则)
    Paramn./ˈpærəm/参数(指请求参数,@RequestParam注解用于绑定请求参数到方法参数,可指定参数名、是否必需等属性)

    Lecture01-SpringMVC简介

    1、SpringMVC 优势

    SpringMVC 是 Spring 为表述层开发提供的一整套完备的解决方案。在表述层框架历经 Strust、WebWork、Strust2 等诸多产品的历代更迭之后,目前业界普遍选择了 SpringMVC 作为 Java EE 项目表述层开发的首选方案。之所以能做到这一点,是因为 SpringMVC 具备如下显著优势:

    • Spring 家族原生产品,与 IoC 容器等基础设施无缝对接
    • 表述层各细分领域需要解决的问题全方位覆盖,提供全面解决方案
    • 代码清新简洁,大幅度提升开发效率
    • 内部组件化程度高,可插拔式组件即插即用,想要什么功能配置相应组件即可
    • 性能卓著,尤其适合现代大型、超大型互联网项目要求

    2、表述层框架要解决的基本问题

    • 请求映射
    • 数据输入
    • 视图界面
    • 请求分发
    • 表单回显
    • 会话控制
    • 过滤拦截
    • 异步交互
    • 文件上传
    • 文件下载
    • 数据校验
    • 类型转换

    3、SpringMVC 代码对比

    ①基于原生 Servlet API 开发代码片段

    • Servlet 无法将请求路径直接映射到方法上,而仅仅只能映射到类上
    • API 非常冗长
    • 基于编程式实现功能,需要自己编写代码
    @WebServlet("/user/login")
    public class XxxServlet extends HttpServlet {
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {   
    
            String userAgeStr = request.getParameter("userAge");
            
            Integer userAge = Integer.parseInt(userAgeStr);
    
            System.out.println("userAge="+userAge);
    
            request.getRequestDispatcher("/pages/result.jsp").forward(request, response);
        }
    }
    

    ②基于 SpringMVC 开发代码片段

    • SpringMVC可以把请求路径直接映射到方法上
    • API 非常简洁
    • 基于声明式实现功能,大大减少了要编写的代码
    @RequestMapping("/user/login")
    public String login(@RequestParam("userAge") Integer userAge){
        
        System.out.println("userAge="+userAge);
        
        return "result";
    }
    
    end