这是个我自己定义的框架,我不知道这种设计方式是不是有点傻,不知道是否有现成的框架早就实现我的想法,不过没办法,谁让咱没学过SSH框架呢。这个框架的最大价值是可以让我快速地构建一个基于servlet的数据服务。
我的想法是这样的,任何一个基于servlet的简单的数据服务都可以看成由一个servlet外壳和具体的执行代码包组成。其中这个servlet外壳就是我所要的框架,这个框架的只包含一个servlet,这个servlet接收func,parameter和callback三个参数,func和callback为普通字符串,parameter为json格式的字符串。
func字符串指定了响应请求类型,XXWLServices框架据此查找对应的类响应该请求;parameter为过程请求参数集,与func相关;callback参数为可选,当存在该参数时该servlet输出的是JSONP格式数据,若不存在则输出是JSON字符串。
构建该框架的目的是实现servlet外壳与具体的执行代码进行分离,以UDIS为例,采用该框架后,UDIS系统可被看成由这三个组件构成: XXWLService+配置文件+UDIS包(不包含servlet的)。配置文件决定了XXWLService框架与UDIS包之间的联系方式。
例如:假设UDIS包包含了获取编目目录和获取地震速报信息两个功能,分别由BMListGetter类和SBReportGetter类来实现,这两个类都实现了IXXWLServices接口。UDIS包编译后形成Jar包,将该包放入XXWLServices框架的lib目录,并将文件路径和类路径写入到配置文件中。XXWLService框架初始化时会读取配置文件,根据配置文件动态加载UDIS的jar包中的类。收到请求时,根据func参数将实例化BMListGetter类或SBReportGetter类,将类的IXXWLServices接口提供给调用方,向接口定义的函数传递parameter参数,并将得到的JSON或JSONP字符串返回给发出请求的客户端。
XXWLServices框架一
最新推荐文章于 2020-12-09 21:50:02 发布