天天看点

1.springmvc_由浅入深springmvc

纸上得来终觉浅,绝知此事要躬行。

1.介绍springmvc

SpringMVC是基于Java实现的MVC设计模型的

请求驱动类型的轻量级Web框架

,能让简单的Java类成为请求的控制器,并且支持RESTful风格

1.一图一demo

1.springmvc_由浅入深springmvc

流程:

①导入springmvc依赖坐标

②在web.xml配置springmvc核心控制器(DispatcherServlet和核心配置文件的位置)

③创建Controller类和视图页面

④在配置文件中开启组件扫描

2.spring集成springmvc

在web.xml中配置如下

<listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <!--初始化全局参数-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>

    <!--spring前端控制器-->
    <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>
    </servlet>
    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
           

2.详解

1.springmvc流程图一览

1.springmvc_由浅入深springmvc

过程:请求想通过前端控制器

DispatcherServlet

,会调用

HandlerMapping

处理器映射器,会返回一串执行链(请求不止会访问一个Controller还会经历filter,会返回执行的流程),会调用

HandlerAdapter

处理器适配器,而具体指向的是

Controller

(具体的处理器),会返回

ModelAndView

教给

DispatherServlet

,再传给

ViewReslover

视图解析器,返回具体的View,再交由View进行渲染视图,再响应

终上所述:

springmvc的五大组件包括:

DispatcherServlet

,

Handlermapping

,

HandlerAdapter

,

Controller

,

ViewResolver

2.springmvc注解解析

@RequestMapping

属性包括:

value:用于指定请求的URL

method:用于指定请求的方式(RequestMethod枚举中定义了很多请求方式)

params:用于指定限制请求参数的条件,支持简单的表达式

//params中表示必须要有名为username参数
@RequestMapping(value = "quick1",method = RequestMethod.DELETE,params = {"username"})
    public String quick1(){
        return "success.jsp";
    }
           

3.springmvc的xml配置解析(配置视图解析器)

Springmvc的默认配置都是DispatcherServlet.properties中配置的,如下

1.springmvc_由浅入深springmvc

同样,我们能通过依赖注入的方式配置自己的组件,比如视图解析器,跟源码能知道视图解析器定义的类中有两个重要的属性,并且提供了set/get方法,这不正合我意吗?咱知道spring的依赖注入原理啊

1.springmvc_由浅入深springmvc

spring-mvc.xml文件中配置如下

<!--增加视图解析器的前后缀-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/jsp"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>
           

当现在配置这行配置,咱就不会太疑惑了吧,

prefix

表示前缀

suffix

表示后缀当需要调整/jsp/index.jsp时,咱只需要知道返回是index就行了,最后经过前后缀拼接成了/jsp/index.jsp

总结,本章节主要介绍springmvc的简单使用,以及一些简单的配置,需要掌握的是springmvc执行流程,五大组件