zoukankan      html  css  js  c++  java
  • Spring MVC框架:第一章:SpringMVC概述及初步体会SpringMVC使用过程

    第一节 SpringMVC在知识体系中的坐标

    在我们学习框架知识以前,JavaSE+JDBC+JavaWeb+SQL这样的技术组合已经可以实现任何业务逻辑了。为什么还要学习SSM这样的框架呢?

    很简单,MyBatis是对JDBC的封装,而SpringMVC是对JavaWeb的封装。
    其中JavaWeb和SpringMVC提供了表述层(或称表示层)的解决方案,而JDBC和MyBatis是持久化层的解决方案。那Spring到哪去了?Spring中的IOC容器为我们的整个项目管理组件,而我们配置的各种bean、切面类、事务通知等等其实都是在容器中工作的组件,我们开发人员的任务其实就两件事:开发组件、组装组件。

    在这里插入图片描述
    第二节 使用SpringMVC前后代码的对比

    使用原生ServletAPI获取请求参数:

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String userName = request.getParameter("userName");
        System.out.println("userName="+userName);
    }
    

    使用SpringMVC获取请求参数:

    @RequestMapping("/user/login")
    public String login(@RequestParam("userName") String userName){
        System.out.println("userName="+userName);
        return "result";
    }
    

    这仅仅是其中一个例子,使用SpringMVC后确实大大简化了表述层开发。

    通过这个HelloWorld,大家初步体会SpringMVC使用过程中的总体流程。
    第一步 创建DynamicWebProject项目
    第二步 导入jar包

    commons-logging-1.1.3.jar
    spring-aop-4.0.0.RELEASE.jar
    spring-beans-4.0.0.RELEASE.jar
    spring-context-4.0.0.RELEASE.jar
    spring-core-4.0.0.RELEASE.jar
    spring-expression-4.0.0.RELEASE.jar
    spring-web-4.0.0.RELEASE.jar
    spring-webmvc-4.0.0.RELEASE.jar
    

    第三步 在web.xml中配置SpringMVC的前端控制器:DispatcherServlet

    <servlet>
    	<servlet-name>DispatcherServlet</servlet-name>
    	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    	<init-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>classpath:spring-mvc.xml</param-value>
    	</init-param>
    	<load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
    	<servlet-name>DispatcherServlet</servlet-name>
    	<url-pattern>/</url-pattern>
    </servlet-mapping>
    

    第四步 在src目录下创建Spring配置文件spring-mvc.xml并指定自动扫描的包

    <context:component-scan base-package="com.mvc.controllers"/>
    

    注意:Spring配置文件的文件名必须和web.xml中classpath:后一致,否则将无法找到。
    第五步 在自动扫描的包下创建类HelloHandler

    import org.springframework.stereotype.Controller;
    @Controller
    public class HelloHandler {
    
    }
    

    第六步 在HelloHandler类中声明一个方法用来处理请求

    @RequestMapping("/hello")
    public String hello() {
        System.out.println("SpringMVC处理了这个请求!");
        return "/WEB-INF/pages/result.jsp";
    }
    

    在这里插入图片描述
    第九步 访问测试
    控制台输出:
    SpringMVC处理了这个请求!
    在这里插入图片描述

    在这里插入图片描述
    看看其它类似的项目,相比对SpringMVC使用过程中的总体流程有所了解了吧

    在这里插入图片描述

    疑问 url-pattern中为什么是“/”而不是“/*”?
    SpringMVC在url-pattern的配置中支持两种风格
    REST风格:
    <url-pattern>/</url-pattern>

    扩展名风格:
    <url-pattern>*.action</url-pattern>

    以“/”开头的路径会被认为是REST风格,而“/*”的写法是不符合REST风格规范的。只有在SpringMVC这里有映射“/”的情况,其他地方一切照旧。

  • 相关阅读:
    dubbo入门(一)
    java中文件操作《一》
    Unity 游戏框架搭建 2019 (七) 自定义快捷键
    凉鞋:我所理解的框架 【Unity 游戏框架搭建】
    Unity 游戏框架搭建 2019 (六) MenuItem 复用
    Unity 游戏框架搭建 2019 (五) 打开所在文件夹
    Unity 游戏框架搭建 2019 (四) 导出 UnityPackage
    Unity 游戏框架搭建 2019 (三) 生成文件名到剪切板
    Unity 游戏框架搭建 2019 (二) 文本复制到剪切板
    Unity 游戏框架搭建 2019 (一) 简介与第一个示例文件名的生成
  • 原文地址:https://www.cnblogs.com/javawxid/p/12812075.html
Copyright © 2011-2022 走看看