spring mvc

1、使用Spring MVC,配置DispatcherServlet是第一步。

web.xml

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

<!-- 会影响到静态资源文件的获取,这样就需要有mvc:resources来帮你分类完成获取静态资源的责任 -->
</servlet-mapping>

2.springMVC.xml

    <!-- 对静态资源文件的访问  -->  
    <mvc:resources location="/resources/" mapping="/resources/**" />
    <!-- 配置aop,用于controller权限控制,故配置在此。 若需要对其他例如service,component的类实现aop,需要在applicationContext.xml中再进行配置 -->
    <aop:aspectj-autoproxy />
    <!-- 解决spring mvc @ResponseBody 中文乱码 -->
    <bean
        class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <bean
                    class="org.springframework.http.converter.StringHttpMessageConverter"
                    p:supportedMediaTypes="text/plain;charset=UTF-8" />
            </list>
        </property>
    </bean>
    <!-- 配置注解扫描路径 -->
    <context:component-scan base-package="com.yongtong.controller" />
    <!-- 配置注解映射的支持 -->
    <bean
        class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
    <bean
        class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
    <!-- 视图解释类 -->
    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver"
        p:prefix="/WEB-INF/page/" p:suffix=".jsp"
        p:viewClass="org.springframework.web.servlet.view.JstlView" />
    <bean id="multipartResolver"
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="utf-8"></property>
    </bean>

SpringMVC运行原理

1. 客户端请求提交到DispatcherServlet

2. 由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller

3. DispatcherServlet将请求提交到Controller

4. Controller调用业务逻辑处理后,返回ModelAndView

5. DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图

 

 

Controller接口 -- 控制器

由于我们使用了@Controller注解,添加了@Controller注解注解的类就可以担任控制器(Action)的职责,

 

 

DispatcherServlet   -- 前置控制器

HandlerMapping接口 -- 处理请求的映射

HandlerMapping接口的实现类:

SimpleUrlHandlerMapping  通过配置文件,把一个URL映射到Controller

DefaultAnnotationHandlerMapping  通过注解,把一个URL映射到Controller类上

HandlerAdapter接口 -- 处理请求的映射

AnnotationMethodHandlerAdapter类,通过注解,把一个URL映射到Controller类的方法上

HandlerInterceptor 接口--拦截器

posted @ 2015-07-16 15:33  喝酒骑驴撞城管  阅读(108)  评论(0编辑  收藏  举报