ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

SpringMVC小记(一)

2019-10-30 14:55:34  阅读:192  来源: 互联网

标签:请求 SpringMVC 配置 视图 Controller 处理器 DispatcherServlet 小记


MVC模型(Model-View-Controller):一种架构性的模式,帮助我们将开发的代码结构、组织

的更加合理。

Model(数据模型),提供要展示的数据,包含数据和行为。

View(视图),进行模型的展示。

Controller(控制器),接收用户请求,委托给模型进行处理,处理完毕之后吧返回的模型数据交给视图。【调度作用】


在标准的MVC中,模型能主动把数据给试图进行更新(可以采用观察者设计模式),但是,在Web开发中模型是无法主动给视图的,即无法主动更新用户界面,因为在Web的访问是请求-响应的模式。必须由客户端主动发出请求之后,服务器才能把数据返回。


核心组件:

1.DispatcherServlet:(前端控制器),用来过滤客户端发送过来,想要进行逻辑处理的请求。

2.HandlerMapping:(处理器映射器),DispatcherServlet接收到客户端请求的URL之后,根据一定的匹配规则,  再把请求转发给对应的Controller,这个匹配规则由HandlerMapping决定。

3.HandlerAdaptor:(处理器适配器)。处理器适配器用来适配每一个要执行的Handler对象。
     通过HandlerAdapter可以支持任意的类作为处理器
4.Controller/Hendler:(控制器/处理器)。用来处理用户请求,并且处理完成之后返回给用户指定视图的对象。
5.ViewResolver:(视图解析器)。Handler返回的是逻辑视图名,需要有一个解析器能够将逻辑视图转化为实际的物理视图。

SpringMVC框架提供一个核心的Servlet对象(DispatcherServlet前端控制器)来对服务器接收到的请求进行解析,当这个请求被DispatcherServlet获取到之后,DispatcherServlet需要根据HandlerMapping对象的映射关系,将这个请求转交给真正能够处理客户请求的【Controller控制器】来处理。Controller处理完成之后,返回ModelAndView对象,也就是模型和视图的结合体。ViewResolver根据ModelAndView中的逻辑视图名找到真正的物理视图,同时使用ModelAndView中模型里面的数据对视图进行渲染。

SpringMVC在项目中的搭建:
    1.构建Web项目
    2.导入jar包
    3.配置前端控制器
     (就是一个Servlet对象),继承自HttpServlet。在web.xml中配置
        例如:
        <servlet>
            <servlet-name>SpringMVC</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
             </servlet>
        <servlet-mapping>
          <servlet-name>SpringMVC</servlet-name>
          <url-pattern>*.action</url-pattern>
        </servlet-mapping>
    4.编写Controller控制器
        实现Controller接口
    5.配置处理器映射器(有默认配置)
        作用:将url和bean的name对应
    6.配置处理器适配器(有默认配置)
    7.配置视图解析器(有默认配置)
        前缀和后缀都是 空
    8.配置处理器
        把编写好的handler/controller在spring中进配置,让其接受Spring IoC容器管理
      <bean name="/hello.action" class="com.briup.web.controller.HelloWorldController"/>  
    
拦截所有请求:
        <url-pattern>/</url-pattern>
自定义拦截请求:
        *.html,*.css......
解决静态资源被拦截:
        一.利用Tomcat的defaultServlet来处理静态文件
            例如:
        <servlet-mapping>
            <servlet-name>default</servlet-name>
            <url-pattern>*.jpg</url-pattern>
        </servlet-mapping>
        特点:1.要配置多个
              2.要写在DispatcherServlet前面
              3.高性能
        二.使用<mvc:resources>标签
            例如:
                <mvc:resources mapping="/images/**" location="/images/"/>
                mapping: 映射
        两个*,表示映射指定路径下所有的URL,
        三. 使用<mvc:default-servlet-handler/>标签
        在spring配置文件中加入此标签配置即可
spring提供的编码过滤器:
        <filter>
        <filter-name>CharacterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

标签:请求,SpringMVC,配置,视图,Controller,处理器,DispatcherServlet,小记
来源: https://www.cnblogs.com/JSB-Li/p/11764843.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有