SpringMVC执行流程

目录

1. 什么是SpringMVC

2. SpringMVC的特点

3. SpringMVC核心控件

4. SpringMVC执行流程

5. 常用注解

6. 编写SpringMVC程序的步骤

1. 什么是SpringMVC

        Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),Struts 2(一般老项目使用)等等。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText和POI。Spring MVC 框架并不知道使用的视图,所以不会强迫开发者只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、过滤器以及处理程序对象的角色,这种分离让它们更容易进行定制。

2. SpringMVC的特点

  • 轻量级,简单易学
  • 高效:基本请求相应的MVC框架
  • 与Spring兼容特别好,无缝衔接
  • 预定大于配置
  • 功能强大
  • 简单灵活

Spring的web框架围绕DispatcherServlet  设计。DispatcherServlet的作用是将请求分发到不同的处理器。从Spring 2.5开始,使用Java 5或者以上版本的用户可以采用基于注解形式进行开发,十分简洁;正因为SpringMVC好 , 简单 , 便捷 , 易学 , 天生和Spring无缝集成(使用SpringIoC和Aop) , 使用约定优于配置 . 能够进行简单的junit测试 . 支持Restful风格 .异常处理 , 本地化 , 国际化 , 数据验证 , 类型转换 , 拦截器 等等…所以我们要学习 。最重要的一点还是用的人多 , 使用的公司多。

3. SpringMVC核心控件

  • 前端控制器(DispatcherServlet):对其他组件进行解耦,这样就增加了组件的可扩展性 无需开发直接配置
  • 处理器映射器(HandlerMapping):无需开发,直接用,作用见上面
  • 处理器适配器(HandlerAdapter):无需开发
  • 处理器(Handler):需要开发,方式很多,也就是编写的 xxxController
  • 视图解析器(ViewResolver):无需开发
  • 视图(View):需要开发

4. SpringMVC执行流程

5. 常用注解

  1. @Controller                标注在类上,表示这是一个Controller层组件
  2. @Service                    标注在类上,表示这是一个Service层组件
  3. @Repository               标注在类上,表示这是一个Dao持久层组件
  4. @RequestMapping     标注在类或方法上,用来映射Web请求(访问路径和参数)
  5. @ResponseBody        标注在返回值或者方法上,表示支持将返回值放在response体内,返                                      回json数据
  6. @RequestBody           标注在参数前,表示允许request的参数在request体中,而不是在直                                        接链接在地址后面
  7. @PathVariable            标注在参数前,用来接收路径参数
  8. @RestController          标注在类上,组合注解,组合了@Controller和@ResponseBody

6. 编写SpringMVC程序的步骤

  1. 新建一个Moudle , springmvc-hello , 添加web的支持!
  2. 导入了SpringMVC 的依赖!
  3. 配置web.xml , 注册DispatcherServlet
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <!--注册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:springmvc-servlet.xml</param-value>
        </init-param>

        <load-on-startup>1</load-on-startup>

    </servlet>

    <!-- 这里有三种配置url-pattern方案
          1、*.do:后缀为.do的请求才能够访问到该servlet[用这个]
          2、/ :所有请求都能够访问到该servlet(除jsp),包括静态请求(处理会有问题,不用)
          3、/* :有问题,因为访问jsp也会到该servlet,而访问jsp时,我们不需要这样,也不用
       -->
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

    4. 编写SpringMVC 的 配置文件!名称:springmvc-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
                        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
                        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">



    <!--添加处理器映射器-->
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

    <!--添加处理器适配器-->
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>

    <!--添加视图解析器-->
    <!--视图解析器:DispatcherServlet给他的ModelAndView-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="InternalResourceViewResolver">
        <!--前缀-->
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <!--后缀-->
        <property name="suffix" value=".jsp"/>
    </bean>

    <!-- 使用注解的handle,则需要配置组件扫描器,加载handler 
         base-package:指定要扫描的包
         -->
    <context:component-scan basepackage="com.johong.springmvc.controller</context:component-scan>


</beans>

   5. 编写我们要操作业务Controller ,有三种方式,一是实现Controller接口,二是使用注解(掌握注解方式),三是实现HttpRequestHandler接口

  6. 编写视图页面

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值