打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Tomcat的设计模式
Tomcat是Servlet/JSP规范的RI,那也就说Servlet里面用到哪些设计模式?同时也有其特殊功能性。

 

  责任链模式:java.servlet.FilterChain是典型责任链模式应用。所有的javax.servlet.Filter接口实现,都会被加入到条链子,在链子末尾就是URL mapping的资源,可能是您的Servlet或JSP类,或者是org.apache.catalina.servlets.DefaultServlet。

 

  事件监听模式:所有的Listener的注册,在Tomcat的实现中,比如org.apache.catalina.core.StandardContext(ServletContext的实现),当你的ServletContext(也就是WebApp)fire所有的ServletContextListener的contextInitialized方法。

 

  解释器模式:大家都知道,所有的JSP页面都需要进行translate成Servlet的Java Code。

 

  Service Locator:Tomcat支持JDNI,那么通过命名空间能够得到相应的服务,比如JDBC连接池。 观察者模式:Tomcat支持Session复制,把Session信息复制到其他节点,也称为发布-订阅模式。 拦截器模式:javax.servlet.Filter就是一种URL的拦截。

 

  模板方法:java.servlet.GenericServlet定义了模板方法,同时,javax.servlet.http.HttpServlet提供了默认的模板实现,HttpServlet的子类,不直接实现或者override了service方法,类似于doGet,doPost等等。

 

  单例模式:所有的Filter,Servlet和Listener的实现类,其对象均被ClassLoader加载后,放入对应的WebApp,这里不是说Tomcat的JVM只有一个实例。因为N个WebApp可以加载同一个类,那么就有N个对应的实例,这个是由于Tomcat的ClassLoader机制决定的-WebApp的Classloader相对独立。

 

  装饰器模式:javax.servlet.http.HttpServletRequestWrapper类。

 

  访问者模式:JSP的解析器,Jasper框架利用的Visitor模式来解析HTML和XML格式的JSP文件。其中org.apache.jasper.compiler.Node.Visitor是Visitor类,那么org.apache.jasper.compiler.Node是Visitable类。

 

  策略模式:通过web.xml配置、JSP文件指令或者扩张名,Jasper选择不同的算法,选择采用HTML方式,还是XML的解释方式,生成Java源代码。

 

  组合模式:HttpServletRequest实现类中,组合了org.apache.catalina.Context 的实现类(org.apache.catalina.core.StandardContext)。

 

  代理模式:ServletContext的实现类-org.apache.catalina.core.ApplicationContext,其是一个代理类,其处理交给了org.apache.catalina.core.StandardContext。

 

  门面模式:在ServletContext等实现中,大量使用。

 

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
[转]Tomcat 配置集锦
Servlet、Filter和Listener
解决IDEA配置tomcat启动报错问题
tomcat中catalina是什么
JDK1.6.10和tomcat6.0配置方法
Linux平台jsp环境搭建(Tomcat4+jdk+postgreSQL7.4)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服