• spring MVC学习(一)---前端控制器


    1.spring MVC中的前段控制器就是DsipatcherServlet,它在spring MVC框架中的结构图如下:

    image

    2.DispatcherServlet其实就是一个Servlet,它继承了HttpServlet这个抽象类。

    先来看下该类在的位置:

    image

    为了使用它,你需要在你的web应用程序中的web.xml中配置一下,配置如下:

    <servlet>
            <servlet-name>dispatcher</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value></param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>dispatcher</servlet-name>
            <url-pattern>/example/*</url-pattern>
        </servlet-mapping>

    这样配置后,在你应用程序中所有请求中带/example的都会被DispatcherServlet拦截到。

    对于3.0++的容器,还有另外一种配置方式,那就是用代码方式代替:

    public class MyWebApplicationInitialzer implements WebApplicationInitializer {
    
        public void onStartup(ServletContext servletContext) throws ServletException {
            // TODO Auto-generated method stub
            ServletRegistration.Dynamic regist = 
                    servletContext.addServlet("dispatcher", new DispatcherServlet());
            regist.setLoadOnStartup(1);
            regist.addMapping("/example/*");
            
        }
    
    }

    设置容器加载时就启动,设置映射的路径。

    3.每一个DispatcherServlet都有自己的上下文环境(WebApplicationContext),它继承了些上下文环境中的bean,而且可以根据条件自己重写。

    下面就是一个继承图解:

    image

    4.在web.xml中配置好DispatcherServlet后,容器启动时回去WEB-INF文件夹下去找(默认[servlet-name]-servlet.xml)dispatcherServlet-servlet.xml,解析文件初始化里面中的bean等。

    5.在实际的应用中我们一般不使用这种默认的配置,你只需要在web.xml中配置下面的文件就可,下面给一个例子,把param-value换成你自定义就可:

    <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/root-context.xml</param-value>
        </context-param>
    <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
    <servlet>
            <servlet-name>dispatcher</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value></param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>dispatcher</servlet-name>
            <url-pattern>/*</url-pattern>
        </servlet-mapping>

    6.好了,一个通用简单spring MVC基本配置就完成了。

     

  • 相关阅读:
    使用SecureCRTP 连接生产环境的web服务器和数据库服务器
    CSS之浮动
    CSS之定位
    Session的过期时间如何计算?
    浏览器关闭后,Session会话结束了么?
    Spring事务注意点
    Lucene 的索引文件锁原理
    Mysql数据库的触发程序
    记一次jar包冲突
    关于jvm的OutOfMemory:PermGen space异常的解决
  • 原文地址:https://www.cnblogs.com/haoke/p/4993273.html
Copyright © 2020-2023  润新知