posts - 10,comments - 2,trackbacks - 0

网站:JavaEye 作者:liuwei1981 发表时间: 2007-07-30 17:09 此文章来自于 http://www.JavaEye.com
声明:本文系JavaEye网站原创文章,未经JavaEye网站或者作者本人书面许可,任何其他网站严禁擅自发表本文,否则必将追究法律责任!
原文链接: http://liuwei1981.javaeye.com/blog/107034

             今天总结一下这个系统软件使用的系统架构。


         这个软件使用的mvc框架有点类似于struts,我是在2005年开始接触java的,在维护这个系统软件之前使用的mvc框架包括struts和webwork两种,相比较之下,与strtus更为类似,或许也是因为strus中控制类部分也是直接操作request吧。


        这个mvc框架自身的特点大致有这么几个:


        1.这个mvc框架没有使用配置文件,在webconfig文件中配置有一个总控的servlet,负责接受页面提交的请求,进行转发。


           页面提交请求方式是直接请求这个总控servlet,在提交请求到这个servlet的同时,提交两个固定的参数,分别是class和method参数,通知servlet将请求转到相应的类,并调用参数中的方法。


         2.总控servlet调用的类为普通的java类,没有特殊的要求,比如struts中要继承action父类,方法写法有严格的要求,为静态方法,不允许有返回参数,接受的参数也固定,如下:


         public static void expMethod(HttpServletRequest req,

                                        HttpServletResponse res,

                                        RequestHash reh) throws     Exception {}


          因为没有使用配置文件,方法调用结束后返回到哪个页面,在该方法中直接赋值该页面的具体路径。这样修改起来有点复杂,需要重新编译类,并且在调试的时候,如果需要找到该请求调用的页面的具体路径,必须找到这个类和方法,不如使用配置文件一目了然。


        3.获取页面上的参数,这个框架提供两种不同的选择。


           框架提供一个Common的对象,该对象封装了对request的部分操作,提供了一个RequestHash对象,该对象为一个Vector集合,页面表单提交的数据已经封装到该集合中,参数获取方式为,创建一个字符串数组,将需要获取的参数名称赋值到该数组中,Common的toData方法返回与字符串数组相对应的参数值,如下


          Common common = new Common(req,res);//req request对象,res为response对象


          String[] keys = {"param1","param2"};

          String[] values = common.toData(reh, keys);


          此时values数组中,values【0】中的值为param1表单值,相应的为param2的表单值。


         如果需要获取一个数组值,request的操作是getParamValues方法,例如表单中的复选框值,RequestHash对象提供了类似于request的这个操作。


         reh.getParameterValues("params");


         4.为显示页面赋值也使用了Common对象。


        a、 赋值简单的字符串对象:common.addString("showParam", param);


         第一个参数为页面获取该参数值使用的名称,第二个为该对象名称。


         b、一次性赋值多个字符串对象:common.addArray(keys, values);


         相对应的,keys为页面获取参数值的名称,values为参数的值。


        c、赋值一个复杂的对象,例如自定义对象或者一个List对象:


            common.addObject("voname", vo);


          用法一致。


      该框架提供一套通用的js脚本库和一些统一的赋值规则,例如登录用户对象名称,子系统名称和提示名称,因此common对象赋值也提供了一些特殊的方法,只接受参数的值,参数名称为已定义名称,因此在为页面赋值也要注意不要与系统框架已定义对象名称冲突。


      今天写到这里,下一篇写写这个mvc框架的页面逻辑,标签还有这个脚本库的内容吧。




《 总结一下维护了一年的一个软件系统的软件体系(二) 》 的评论也很精彩,欢迎您也添加评论。查看详细 >>





JavaEye推荐
上海乐福狗信息技术有限公司:诚聘技术经理和开发工程师
免费下载IBM社区版软件--它基于开放的标准,支持广泛的开发类型,让您的开发高效自主!
京沪穗蓉四地免费注册,SOA技术高手汇聚交锋.
上海:优秀公司德比:高薪诚聘 资深Java工程师
广州:优易公司:诚聘Java工程师,开发经理
上海:尤恩斯国际集团:诚聘开发工程师
北京:优秀公司NHNChina招聘:WEB开发,系统管理,JAVA开发, DBA



文章来源: http://liuwei1981.javaeye.com/blog/107034
posted on 2007-07-30 17:09 皇马啸西风 阅读(170) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: