首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

OMToolkit引见(2) :Web Server 实现

2012-12-26 
OMToolkit介绍(2) :Web Server 实现OMToolkit介绍(2) :Web Server 实现  本文将介绍OMToolkit中Web Server

OMToolkit介绍(2) :Web Server 实现
OMToolkit介绍(2) :Web Server 实现
  本文将介绍OMToolkit中Web Server部分的实现,涉及的内容包括基于NIO的Server,配置文件的读取,Http 请求报文的分析,Session和Cookie的获取等。

1. 基于NIO的Server轮询
  首先,是Server类的框架:

  Request以Http报文作为输入,先将报文按两个换行符分为head和body,在从head中读取path,之后进行一些初始化处理。URL解码时用到了Cfg中的参数charset:
  entity指的是path后的第一个参数,之所以命名为entity,是与OMToolkit的约定有关的,即URL http://localhost/EntityClass/action/param1/value1/param2/value2 表示调用EntityClass的action方法,并将属性param1设置为value1,属性param2设置为value2。,这将在后面介绍 Web Framework实现时用到。
  但仍然有两个例外,一个是形如 http://localhost/resources/* 的形式,表示读取资源文件;另一个是http://localhost//favicon.ico,这是浏览器经常需要访问的一个文件。isResources()方法的实现如下:


6.Session的获取和设置
  接下来就是Session的处理了。OMToolkit是利用Cookie来设置session编号的,如果Http报文中包含了session编号,则在已有的HashMap中查找session;否则创建一个session,并通过 Set-cookie 的方式将session编号告知浏览器。
  下面是Session类的实现:

  另外,我们还需要一个操作Sesssion的辅助类SessionUtil:
  同时,需要在Request类中加入获取session的方法:

  CookieUtil的实现如下:
oldCookie:Set-Cookie: name=张三; Path=/; Expires=Sat,17 Mar 2012 07:47:55 GMTSet-Cookie: password=zhangsan; Path=/; Expires=Sat,17 Mar 2012 07:47:55 GMTnewCookie:Set-Cookie: name=张三; Path=/; Expires=Sat,17 Mar 2012 07:47:55 GMTSet-Cookie: password=zhangsan; Path=/; Expires=Sat,17 Mar 2012 07:47:55 GMT


  到此为止,OMToolkit中的Server部分就介绍完毕了。现在的代码应该与OMServer_Complete.rar相似。当然,现在Server的功能还很局限。下一篇文章将介绍OMToolkit中的 Web Framework 的实现,到时我们将看到目前的 Server 的功能是如何得到扩展的。 1 楼 裴小星 2011-03-20   Accepter应该写作Acceptor,SVN上的源码已经修改了,后续的文章也将使用这个名称。

热点排行