论坛首页 Java企业应用论坛

解析Tomcat之HttpServlet(截图记录)

浏览 7635 次
精华帖 (11) :: 良好帖 (0) :: 新手帖 (10) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-01-01   最后修改:2010-01-30


  新年之际,正好趁着休息分析了一下tomcat,平时用得多,没怎么想过具体的实现过程。 今天正好看看其内部实现,就先从最常用的类开始分析起 HttpServlet. (如果图片不清楚,请点击看大图 )

   另外,加一个连接  tomcat源代码编译与eclipse导入

       首先看看HttpServlet的UML图:

 

 看到最顶层的是2个接口 Servlet 和ServletConfig.

 

 



 




 


==================================================================


接下来是HttpServlet父类;

 

 



 
 ======================================================


HttpServlet 类


  

 

其中service 方法:





  OK,截图下来,以方便以后查阅, 文章仅限自己记录,所以几乎没有文笔组织,都在截图里了。

  • 大小: 107.7 KB
  • 大小: 23.9 KB
  • 大小: 83.4 KB
  • 大小: 36.6 KB
  • 大小: 15 KB
  • 大小: 56.8 KB
  • 大小: 100.2 KB
  • 大小: 95.2 KB
  • 大小: 36.2 KB
  • 大小: 80.2 KB
  • 大小: 146.6 KB
  • 大小: 95.2 KB
  • 大小: 38.8 KB
  • 大小: 55.6 KB
  • 大小: 121 KB
   发表时间:2010-01-02  
楼主用什么插件画的UML,开源吗?
0 请登录后投票
   发表时间:2010-01-02  
qtalen 写道
楼主用什么插件画的UML,开源吗?

是个开源的, UDOC, 不过现在好像没有维护了, 这里有这个东西的一个简短介绍。
http://user.qzone.qq.com/330836030/infocenter?ptlang=2052 我的QQ空间
0 请登录后投票
   发表时间:2010-01-03  
一看就是eclipse的插件,uml,或uml2
0 请登录后投票
   发表时间:2010-01-03  
我觉得service那个里面要用switch
0 请登录后投票
   发表时间:2010-01-03  
xietingyan 写道
我觉得service那个里面要用switch

可惜1.6及其以前版本的String是不支持switch的,当然可以用int或者其他基本数据,但是那个method也是从客户端传过来的,也需要将其if..else转成int之类的东西后才能switch,所以直接用if...else就行了啊。。
那几个方法doGet,doPost,doHead..等等都是对应HTTP协议里面的GET,POST,HEAD等方法的。
0 请登录后投票
   发表时间:2010-01-03  
songfantasy 写道
一看就是eclipse的插件,uml,或uml2

是Udoc ,一个用AWT实现的开源UML工具。
好像目前没有做成eclipse插件,也没看到相关的资料……
0 请登录后投票
   发表时间:2010-01-03  
wujiazhao88 写道
xietingyan 写道
我觉得service那个里面要用switch

可惜1.6及其以前版本的String是不支持switch的,当然可以用int或者其他基本数据,但是那个method也是从客户端传过来的,也需要将其if..else转成int之类的东西后才能switch,所以直接用if...else就行了啊。。
那几个方法doGet,doPost,doHead..等等都是对应HTTP协议里面的GET,POST,HEAD等方法的。

是这样的, 因为已经定义对应的是字符串类型。 所以不支持switch的。 如果说需要做优化的话,我倒是有一种个人想法, 放到key-value 映射表里面可能会更好一点,这样更利于减少程序分支,当然,这样做可能有其他的代价没有考虑。既然tomcat里面原本就是采用最简单的if,else 实现, 相信应该有其道理的。
0 请登录后投票
   发表时间:2010-01-03  
不错的 受教了。
0 请登录后投票
   发表时间:2010-01-04  
gogole_09 写道
qtalen 写道
楼主用什么插件画的UML,开源吗?

是个开源的, UDOC, 不过现在好像没有维护了, 这里有这个东西的一个简短介绍。
http://user.qzone.qq.com/330836030/infocenter?ptlang=2052 我的QQ空间



看不了你的关于UML插件的描述啊, 能不能也转下,放到这里呢?

谢谢!
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics