`
donald3003a
  • 浏览: 64023 次
  • 性别: 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来加载,这样优先级更高。
下章继续说明。
分享到:
评论

相关推荐

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

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

    Java高手真经_应用框架卷_Java_Web核心框架.part1.rar

     表现层框架struts 1:讲解struts 1的入门配置、核心组件、标签库、国际化、数据校验、sitemesh集成、数据库开发技术,并分别实现与hibernate、ibatis持久层框架的集成开发。..  表现层框架struts 2:讲解struts 2...

    AppFuse学习笔记(J2EE入门级框架)

    Appfuse是Matt Raible 开发的一个指导性的入门级J2EE框架,它对如何集成流行的Spring、Hibernate、iBatis、Struts、xDcolet、Junit、Taperstry、JSF等基础框架给出了示范。在持久层,AppFuse采用了Hibernate O/R映射...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    1.7.1 创建第一个Java Web项目 1.7.2 将图片输出到JSP页面之中 1.8 疑难解惑 1.8.1 Tomcat端口被占用导致不能启动 1.8.2 Eelipse没有创建JSP项 1.9 精彩回顾 第2章 JavaWeb开发必修课 ——JSP语法 2.1 本章学习任务...

    SpringMVC框架入门配置 IDEA下搭建Maven项目

    想必每一个配置Spring的人都已经或多或少了解过一些SpringMVC的基础知识,可能有的人用的myeclipse或者eclipse进行项目的搭建,我会告诉你这里步骤是很相似的,在myeclipse里面需要建立web项目,然后加入Spring支持...

    Quartz 框架快速入门

    Quartz 框架快速入门 在前面两篇文章中简单介绍了在java应用程序中如何使用Quartz框架,这一篇中我们将看到如何在web环境下通过配置文件来完成Quartz的后台作业调度,而不必手工去创建Trigger和Scheduler

    Sman是一个轻量级的web网络多线程爬虫框架

    Sman是一个轻量级的web网络多线程爬虫框架,无需配置即可完成一个自定义的网络爬虫。本框架可以作为爬虫的入门学习

    WebUI自动化测试框架Dagger.zip

    Dagger是网易杭州研究院QA团队开发的一个轻量级、运行稳定的WebUI自动化测试框架,主要基于Selenium及TestNg可以认为是对Selenium进行二次封装的一个框架(俗称 造轮子 )。之所以把这个轮子开源出来,主要在于...

    python web框架django开发入门含代码,自己整理 good

    (推荐)从python django配置到 django一步步配置开发环境到实例开发。非常适合喜欢django框架开发的朋友学习讨论。

    Java高手真经_应用框架卷_Java_Web核心框架.part3.rar

     表现层框架struts 1:讲解struts 1的入门配置、核心组件、标签库、国际化、数据校验、sitemesh集成、数据库开发技术,并分别实现与hibernate、ibatis持久层框架的集成开发。..  表现层框架struts 2:讲解struts 2...

    Java高手真经_应用框架卷_Java_Web核心框架.part2.rar

     表现层框架struts 1:讲解struts 1的入门配置、核心组件、标签库、国际化、数据校验、sitemesh集成、数据库开发技术,并分别实现与hibernate、ibatis持久层框架的集成开发。..  表现层框架struts 2:讲解struts 2...

    Furion Web开发框架

    Furion Web开发框架是一个为了让 .NET 开发更简单,更通用,更流行的开发框架。 Furion框架特点: 全新面貌:基于 .NET5/6 平台,没有历史包袱 极少依赖:框架只依赖两个第三方包 极易入门:只需要一个 Inject() ...

    基于框架的Web开发-Mybatis入门.doc

    7.1 Mybaits入门 1 环境搭建 1 .1 依赖包下载 首先下载mybatis的jar包: /mybatis/...Mybatis配置文件 log4j配置文件 测试包,包含一个测试类 mappers包存放sql映射,一个sql映射包含一个接口和一个xml文件 do

    轻量级 Java Web 框架

    使用 Java 注解取代 XML 配置 使应用充分做到“前后端分离” 客户端可使用 HTML 或 JSP 作为视图模板 服务端可发布 REST 服务(使用 REST 插件) 客户端通过 AJAX 获取服务端数据并进行界面渲染 提高应用程序的开发...

    Java后端学习路线图 - 从入门到工作的全流程 - 适用于在校学生、入门、转行学IT的同学

    Java后端开发是目前非常热门的技术方向之一,下面是一个从入门到工作的Java后端学习路线图: 1. 基础知识学习: - 学习Java语言基础:掌握Java的语法、面向对象编程等基本概念。 - 学习数据结构和算法:了解常用...

    基于框架的Web开发-使用springJDBC入门.doc

    本章文件夹下有sampledb.sql文件,将其导入mysql中,会创建一个数据库sampledb,包含两张数据表。导入方法如下图: 3 项目组织 创建一个java工程,名为springJDBC,包和类组织如下图所示。 测试资源文件夹放配置文件...

    Web快速开发框架NanoFramework.zip

    NanoFramework是一个用于快速开发Web及任务调度项目的框架,以极少量的配置即可搭建Web项目或任务调度项目。环境要求NanoFramework基于JDK8进行开发,内部使用了JDK8的一部分新特性,开发时必须使用JDK8进行开发和...

    C# .NET Element Vue uniapp快速开发框架,非常强大的功能,移动、安卓、小程序全解决,非常合适初学入门

    支持(主从表)一对一前后端代码全自动生成、并支持数据源自动绑定与业务代码扩展,不需要写任何代码 支持一对多从表自定义扩展(不限从表类型与从表数量) , 一对多从表使用扩展可轻松实现 框架适用范围 编写各种后台...

    Java的学习之路,学习JavaEE以及框架时候的一些项目,结合博客和源码,让你受益匪浅,适合Java初学者和刚入门开始学框架者

    文件名与介绍: [Database-support-...[myDbPoolUse]C3P0连接池配置/DBCP连接池配置/Apache的DBUtils框架使用 [myFilterDemoWeb]过滤器Filter学习-设置全站编码与设置页面缓存 [myGzipWeb]全站压缩 [myJavaMainDe

    聊聊Python之Web框架Djiango

    文章目录创建Django框架项目web服务启动成功图Django Web应用框架的使用和快速入门创建自己的另外一个应用开发view页面配置url映射路径成功访问创建模版login.html创建视图函数路径配置全局路径成功实现MTV模式开发...

Global site tag (gtag.js) - Google Analytics