2019独角兽企业重金招聘Python工程师标准>>>

曾经看到过一个web.xml有上千行,如果出现点问题,开发人员根本就不知道现场是怎么一种情况。

更要命的是在不同的应用服务器,比如说在旧的websphere版本上用listener启动Spring就是有问题的。

如果要进行软件升级,那悲催了,不仅要修改应用相关的内容,还要对web.xml进行修改。

要把几个模块集成在一起,完蛋了,光web.xml的合并就困难得不行不行。

Tiny构建者深知web.xml给程序员和现场实施人员带来的不便与困扰,因此设计了以下方案进行解决,从此再不用关心web.xml。

先来看一下,tiny框架中,web.xml中配置。

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><display-name>Archetype Created Web Application</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file></welcome-file-list><listener><listener-class>org.tinygroup.weblayer.ApplicationStartupListener</listener-class></listener><filter><filter-name>TinyFilter</filter-name><filter-class>org.tinygroup.weblayer.TinyHttpFilter</filter-class></filter><filter-mapping><filter-name>TinyFilter</filter-name><url-pattern>/*</url-pattern><dispatcher>REQUEST</dispatcher>  <dispatcher>FORWARD</dispatcher>  </filter-mapping>
</web-app>

OK,一个listener用于启动,一个filter用于处理所有内容,结束了。

然后,web.xml文件就不允许再动了,换而言之,使用Tiny框架并用其模板创建了工程之后,web.xml文件就是不被允许修改的。

当然,带来一个问题就是?如果要增加别的listener,filter,servlet怎么办?

Tiny框架接管了所有的这些配置,支持自发现,也就是说你只要按照Tiny配置规范配置,然后就不用管了,Tiny框架会发现并加载它们。当然,Tiny框架还有一套配置管理规范,并有配置框架支持,在Tiny框架中,所有的配置信息都是被集中中一起的。

对于已经实现好的listener,filter,servlet,也不用担心,不用做任何修改,直接配入即可。

比如:资源压缩过滤器就是别人写好的,我们要复用,只要把这个Filter配置为一个Spring的Bean,然后如下配置就可以了:

<tiny-wrapper-filter id="tinyFilterWrapper" class="tinyFilterWrapper"><init-param name="filter_beans" value="gZIPFilter"></init-param><filter-mapping url-pattern=".*"></filter-mapping>
</tiny-wrapper-filter>

当然Servlet也是一样的,下面就是jsp的例子:

<tiny-processor id="jspProcessor" class="tinyProcessorWapper"> <init-param name="servlet_bean" value="jspServlet"></init-param><servlet-mapping url-pattern=".*\.jsp"></servlet-mapping>
</tiny-processor>

所以,没有任何不同。

当然,里面还会有许多Tiny框架的处理器:

比如处理MDA的处理器,就是通过如下配置加入的:

<tiny-processor id="mdaTinyProcessor" class="mdaTinyProcessor"><servlet-mapping url-pattern=".*\.model"></servlet-mapping><servlet-mapping url-pattern=".*\.modellet"></servlet-mapping><servlet-mapping url-pattern=".*\.modeljson"></servlet-mapping>
</tiny-processor>

小结,在Tiny框架中,web.xml中的所有配置都被接管,并被赋予自发现能力,带来的好处就是,如果我依赖了某个Jar包(Tiny中叫业务单元),它需要有某个过滤器或处理器,那它就会被加载,而不需要程序员进行干预,也不需要现场支持人员进行修改。

转载于:https://my.oschina.net/tinyframework/blog/169399

如何让Web.xml变得简洁?相关推荐

  1. web.xml 配置 加载顺序

    web.xml 的加载顺序是:context-param -> listener -> filter -> servlet . 过滤器执行顺序是根据filter-mapping ,不 ...

  2. Web.XML文件中关于代码提示的一些问题

    1. 问题描述   在进行ssm的整合时,我发现在web.xml文件中里按了alt+/以后没有下面的提示: 这样真的很不爽...于是弄了半天(主要是等着)终于解决了,特此写篇博客记录下. 2. 解决方 ...

  3. 在web.xml文件中配置Servlet时,主要配置哪些信息?

    web前端的学习内容是比较多的,其中有一部分就是关于在web.xml文件中配置Servlet时的相关内容,在web.xml文件中配置Servlet时,主要配置哪些信息?来看看下面的详细介绍. 使用ID ...

  4. MAC OS X El CAPITAN 搭建SPRING MVC (1)- 目录、包名、创建web.xml

    一. 下载STS(Spring Tool Suite) 官方地址:http://spring.io/tools/sts 下载spring tool suite for mac 最新版本.这个IDE是很 ...

  5. intellij中的 iml文件与web.xml 文件分别是干什么的

    iml是配置文件,存着当前project的一些配置信息. web.xml是当前的project是个web 工程,包含了web工程具体的配置信息 xml是可扩展标记语言,标准通用标记语言的子集,是一种用 ...

  6. struts.xml web.xml配置正常,访问action时出现404

    工程项目部署成功,能访问默认页面 action 一出来    挂了.... 工程结构 web.xml <?xml version="1.0" encoding="U ...

  7. web.xml 常用标签配置(转)

    2019独角兽企业重金招聘Python工程师标准>>> 1.Web.xml作用: 每一个javaWeb工程都有一个web.xml配置文件,web.xml文件是用来初始化工程配置信息的 ...

  8. Spring揭秘--寻找遗失的web.xml

    今天我们来放松下心情,不聊分布式,云原生,来聊一聊初学者接触的最多的 java web 基础.几乎所有人都是从 servlet,jsp,filter 开始编写自己的第一个 hello world 工程 ...

  9. html页面配置xml文件路径,web.xml与index.html

    一.部署描述符 1.每个web应用程序的配置信息都保存在各自所映射的文件系统目录下的Web-INF/web.xml文件中.web.xml文件用于描述web应用程序的部署信息,因此, web.xml文件 ...

最新文章

  1. 负载均衡算法-响应速度均衡
  2. android socket 简易聊天室 java服务器_利用Socket制作一个简易的Android聊天室
  3. 大数据处理平台与案例
  4. UE 手游在 iOS 平台运行时内存占用太高?试试这样着手优化
  5. C++ const成员和引用成员
  6. java_day19_MVC和配置文件
  7. Python模拟登录实战,采集整站表格数据
  8. petalinux板卡没有ip address_海思板卡端访问服务器的文件(一)
  9. 【报告分享】2019Q3短视频KOL红人季度深度分析.pdf
  10. extjs初学者教程
  11. stylus -w style.styl -o style.css
  12. 司空见惯 - 洪荒之力
  13. 斐那契波黄金数列MATLAB,广义斐波那契数列的性质及推广
  14. 尤雨溪 6 月 4 日的 Vue 技术分享
  15. Javascript是什么,能干什么、JavaScript的发展史、JavaScript的使用、方式一:内部引用、方式二:外部引用、程序设计的基础、数据类型与变量、运算符
  16. 《Java程序设计》课程代码题(九)
  17. java 压缩加密_Java实现自动压缩文件并加密的方法示例
  18. LAC+CELLID定位手机位置
  19. python考试搜题神器_python实现百万英雄答题神器
  20. php程序员述职材料_php程序员述职报告

热门文章

  1. 李飞飞确认将离职!谷歌云AI总帅换人,卡耐基·梅隆老教授接棒
  2. 细数高光时刻,2020全球科技巨头如何激战AI?
  3. 下一个汽车万亿市场打开!氢能源时代正到来
  4. 《阿丽塔》脑机接口正从科幻走向现实
  5. 5G 产业链重要投资节点
  6. 坦白局!一个大厂 Java 工程师近 20 年的进阶心得
  7. 同样的工作年限,为什么有人年薪百万,有人月薪五千?
  8. 技术人的不惑之路...... | 每日趣闻
  9. iOS 工程师被要求写小程序,过分吗?| 每日趣闻
  10. win10系统上安装cmder并实现右键启动