5.web.xml配置

java web项目的启动顺序:

java不会按照web.xml写的内容里所写顺序执行,而是有它自己特有的执行顺序

1.容器(Tomcat等)会给当前项目创建一个全局唯一的对象:servletContext(上下文)对象,整个项目中的servlet都共享这个变量,这个对象所起的作用如下图所示,它是一个域对象1

2.容器会读取<context-param>中的内容,并转化为键值对后,存储在ServletContext中。<context-param>中的内容用来声明ServletContext的初始化参数,在整个上下文生命周期中都存在。</context-param></context-param>

3.容器会读取<listener>中的内容,获取监听器对象2,监听类中有一个contextInitialized(ServletContextEvent event)方法,这个方法可以通过event.getServletContext().getInitParameter("contextConfigLocation") 来得到<context-param> 中的值。</context-param></listener>

4.过滤器filter3,服务器和web的中间加工部件,可以写多个过滤器,这些过滤器的执行顺序依赖于<filter-mapping>里面配置的顺序。</filter-mapping>

5.执行<servlet>, DispatcherServlet4,即服务端程序,提供Spring Web MVC的集中访问点(也就是把前端请求分发到目标controller),多个<servlet>的执行顺序依赖于<servlet-mapping>中配置的顺序。</servlet-mapping></servlet></servlet>

二.Rest风格的url(待学会)

三.其他:
Eclipse中下载并安装spring-tool-suite(sts)插件可以自动生成代码,方便配置相关配置文件。比如alt+/ 后选择ContextLoaderListener,就会自动生成监听器代码。

注释:
1.域对象:(待深入学习)
域对象是服务器在内存中创建的存储空间,用于不同servelet之间传递和共享数据。
凡是域对象都有以下三个方法:
SetAttribute(name,value); GetAttribute(name); RemoveAttribute(name)

2.监听器对象:(待学习)

3.过滤器

4.DispatcherServlet:(待学会)
DispatcherServlet主要用作职责调度工作,本身主要用于控制流程,主要职责如下:
(1)文件上传解析,如果请求类型是multipart将通过MultipartResolver进行文件上传解析;
(2)通过HandlerMapping,将请求映射到处理器(返回一个HandlerExecutionChain,它包括一个处理器、多个HandlerInterceptor拦截器);
(3)通过HandlerAdapter支持多种类型的处理器(HandlerExecutionChain中的处理器);
(4)通过ViewResolver解析逻辑视图名到具体视图实现;
(5)本地化解析;
(6)渲染具体的视图等;
(7)如果执行过程中遇到异常将交给HandlerExceptionResolver来解析。
从以上我们可以看出DispatcherServlet主要负责流程的控制(而且在流程中的每个关键点都是很容易扩展的)。

全部评论

相关推荐

点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务