`
donald3003a
  • 浏览: 65674 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论
  • 淼淼E馒头: 这举列有点不恰当啊。。电影人和不同类型的电影。是两个不同概念 ...
    合成模式

学习写一个web框架入门 如何加载配置(一)

 
阅读更多
一直以来都觉得写框架是一个很困难的事情,但是随着经验的增加也开始研究了一些主流的webmvc框架,现在依样画瓢来完成一个最简单的框架。
既然是web框架servlet是必不可少的
一般的主流web框架加载配置不外乎xml配置filter或者listener当然或许也有用servlet的。。
我们先看下用listener filter 以及servlet的配置
首先我用一个servlet 2.5的api
    <filter>
    <filter-name>testFilter2</filter-name>
    <filter-class>cn.github.studyframework.filter.TestFilter2</filter-class>
  </filter>
  <filter>
    <filter-name>testFilter1</filter-name>
    <filter-class>cn.github.studyframework.filter.TestFilter1</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>testFilter1</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <filter-mapping>
    <filter-name>testFilter2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <servlet>
    <servlet-name>testServlet1</servlet-name>
    <servlet-class>cn.github.studyframework.servlet.TestServlet1</servlet-class>
    <load-on-startup>0</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>testServlet1</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>testServlet2</servlet-name>
    <servlet-class>cn.github.studyframework.servlet.TestServlet2</servlet-class>
    <load-on-startup>-111</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>testServlet2</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>

  <listener>
    <listener-class>cn.github.studyframework.listener.TestListener2</listener-class>
  </listener>
   <listener>
    <listener-class>cn.github.studyframework.listener.TestListener1</listener-class>
  </listener>

代码中各个init方法我们都加上system.out.println这样可以看出servlet加载的先后顺序
启动容器
可以看出listener首先执行 其次是fitler 最后才是servlet.listener跟fitler的执行顺序跟配置先后相关。
最后说下servlet
在servlet上 load-on-startup 这个参数可以控制servlet的加载策略以及顺序。
0是立即加载 正数越大加载越慢。负数跟不配置调用才会执行。
我使用tomcat6 7都是这样的顺序,但是我本机用的嵌入式的jetty 这个时候-111明显执行而且优于0,也许是jetty默认的设置原因,但是请使用servlet的人都注意点

最后的结论是我建议大家使用listener来加载,这样优先级更高。
下章继续说明。
分享到:
评论

相关推荐

    zk入门.web框架

    ZK 是一个基于 Java 的轻量级Web框架,专门用于构建富客户端的Web应用程序。它提供了丰富的用户界面组件和事件处理机制,使得开发者能够轻松创建交互式的Web应用。本篇文章将深入探讨ZK框架的基本概念、开发环境的...

    Django Web框架入门到精通 中文版

    本书所讲的是Django:一个可以使Web开发工作愉快并且高效的Web开发框架。 使用Django,使你能够以最小的代价构建和维护高质量的Web应用。 第一章:介紹Django 第二章 入门 第三章 视图和URL配置 第四章:模版 第五...

    Delphi+Web前端开发教程基于TMS+WEB+Core框架.pdf

    TMS WEB Core的另一个优势在于其高效的开发流程。通过快速原型制作和强大的组件库,开发者可以迅速构建应用程序。部署方面,由于生成的是HTML/JS代码,因此可以轻松地在全球范围内分发和托管。 总之,Delphi Web...

    Spring Web Services 框架入门研究--发布服务

    标题 "Spring Web Services 框架入门研究--发布服务" 提到的是关于使用Spring框架构建Web服务的内容。Spring Web Services是Spring生态体系中的一部分,它专注于创建基于SOAP(Simple Object Access Protocol)的互...

    springBoot+mybatisplus+thymeleaf框架入门web系统

    《SpringBoot+MybatisPlus+Thymeleaf框架入门Web系统详解》 SpringBoot、MybatisPlus和Thymeleaf是现代Java开发中常见的三大框架,它们各自在Web开发的不同领域发挥着重要作用。SpringBoot简化了Spring应用的初始...

    ssm框架学习入门例子

    学习这个SSM框架入门例子,你需要理解每个组件的作用,配置文件的含义,以及它们如何协同工作来处理请求和响应。实践操作是理解SSM框架的关键,你可以尝试修改配置、添加新的Controller或Mapper,观察系统如何响应...

    WebApi入门到精通-WebApi列表

    通过这个教程,初学者可以学习到Web API的基础知识,以及如何利用它与数据库交互,构建出一个简单的数据列表服务。这个过程不仅有助于理解Web API的工作原理,也为后续的高级应用开发打下坚实基础。

    用java中的ssh三大框架做的一个入门的例子

    Struts是MVC(Model-View-Controller)设计模式的一个实现,主要用于处理Web层的业务逻辑。它提供了一个灵活的控制器,使得开发者可以将用户请求映射到特定的动作,并在执行后返回相应的视图。在本例中,"student...

    JAVA PLAY框架入门学习手册

    JAVA PLAY框架入门学习手册 Java PLAY框架是基于Java语言的Web应用程序框架,旨在提高Web应用程序的开发效率和可维护性。下面是Java PLAY框架的入门学习手册,涵盖了框架的主要概念、目录结构、请求生命周期、HTTP...

    6节课入门Flask框架web开发资料.zip

    “6节课入门Flask框架web开发资料”可能包含了上述所有内容,是一个完整的Flask学习资源包。学习过程中,建议按照课程的顺序逐步深入,先理解基础概念,再通过实战项目将理论与实践相结合,从而真正掌握Flask框架的...

    WebApi基础入门学习项目,新手入门学习实践,工程源码

    本项目是一个针对初学者的WebApi基础入门学习项目,旨在帮助开发者熟悉WebApi的核心概念和技术,并通过实际操作来提升技能。 首先,项目中使用了Log4,这是一个广泛使用的日志记录库。Log4在.NET Core WebApi中的...

    golang实战使用gin+xorm搭建go语言web框架详解.pdf

    构建一个基于Gin和Xorm的Web框架,涉及到多个方面的知识,包括但不限于框架基本结构、配置参数、路由设置、控制器和模型的实现、视图的配置、模板的使用,以及项目实战等。 框架基本结构主要包括以下几个部分: - ...

    JAVA WEB 应用入门配置

    ### JAVA WEB 应用入门配置知识点详解 #### 一、Java Web 应用的基本目录结构与部署 在Java Web开发中,了解应用的基本目录结构及其部署方式是非常重要的。以下是对这些概念的详细介绍: 1. **Web 应用的目录结构...

    入门学习SSM框架的一个小例子

    这个名为"入门学习SSM框架的一个小例子"的项目,旨在帮助初学者理解并掌握这三大框架的集成与应用。以下是关于SSM框架及其实例的详细解释: **Spring框架**:Spring是Java领域的一个全面的开源应用框架,它提供了...

    SSH框架入门

    在"SSH框架入门"的学习资源中,可能包含了以下内容: 1. **Struts2基础**:如何配置Struts2的配置文件,编写Action类,以及如何利用Interceptor实现业务逻辑。 2. **Spring集成**:讲解Spring的IoC容器配置,如何...

    使用NetBeans开发Struts Web 框架的快速入门指南

    为此,我们将指导您如何使用 NetBeans IDE 创建一个 Struts 应用程序,从安装所需软件到创建新 Struts 应用程序,并配置项目结构。 知识点一:安装所需软件 在开始编写代码之前,需要在计算机上安装以下软件: * ...

    dwr框架入门学习文档

    DWR 框架入门学习文档 DWR(Direct Web Remoting)是一个开放源码的使用 Apache 许可协议的解决方案,它包含服务器端 Java 库、一个 DWR Servlet 以及 JavaScript 库。DWR 框架是最成熟的 Ajax-RPC 工具包之一,...

    c#+web应用程序入门经典.pdf

    随着学习的深入,读者可能会了解到如何使用***框架提供的各种控件和组件,例如*** Web Forms、MVC(Model-View-Controller)模式、以及Web API等,来构建可扩展、安全且易于维护的Web应用程序。 除了技术知识以外,...

    若依框架分布式事务配置和项目启动手册

    若依框架(RuoYi)是一款基于Spring Boot和Vue.js的前后端分离的管理系统框架,旨在提高开发效率,提供简洁易用的API,支持快速搭建企业级Web应用。它具有良好的模块化设计,使得代码结构清晰,易于扩展和维护。 2...

    python web py入门配套源代码

    Web.py是Python的一个轻量级Web框架,它设计的目标是保持简洁且易于使用,适合快速开发小型到中型的Web应用。 1. **Web.py框架介绍** Web.py是一个微框架,它提供了基本的路由系统,允许开发者通过定义URL模式来...

Global site tag (gtag.js) - Google Analytics