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这里有映射“/”的情况,其他地方一切照旧。

  • 相关阅读:
    用 for/in 在 Java 5.0 中增强循环
    http://blog.sina.com.cn/s/articlelist_1973273451_0_1.html
    android PreferenceActivity
    高通芯片中的MDP模块[msm7x27]
    Android学习使用单例模式实现一键退出APP
    Android 开发之使用Eclipse Debug调试详解
    修改dll,效率提升50%—单键完成“复制”、“粘贴”
    MyEclipse 断言(assert)设置
    java enum 笔记 日期时间格式化
    common.logging相关网址
  • 原文地址:https://www.cnblogs.com/javawxid/p/12812075.html
Copyright © 2011-2022 走看看