`
liuwei1981
  • 浏览: 757305 次
  • 性别: Icon_minigender_1
  • 来自: 太原
博客专栏
F8258633-f7e0-30b8-bd3a-a0836a5f4de5
Java编程Step-by...
浏览量:157396
社区版块
存档分类
最新评论

总结一下维护了一年的一个软件系统的软件体系(二)

阅读更多

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

         这个软件使用的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框架的页面逻辑,标签还有这个脚本库的内容吧。

分享到:
评论

相关推荐

    软件项目售后服务与培训方案.pdf

    我们承诺在软件项目验收合格后一年内提供免费维护期和技术服务,向校方的相关技术人员免费提供原理和技术上的指导和咨询, 使校方人员能正确熟练地使用本协议的软件开发及测试成果。在现场维护中,我们将派遣专业...

    供电公司自助缴费终端及POS机运维项目(技术规范书.pdf

    供电公司自助缴费终端及POS机运维项目的软件运维内容包括操作系统、应用软件、数据库管理系统等的安装、配置、维护和故障排除。 六、日常运维培训要求 供电公司自助缴费终端及POS机运维项目需要对运维人员进行日常...

    进销存管理系统设计方案.doc

    主要利用了不断成熟的WWW浏览器技术,结合多种Sc ript语言(VBScript、JavaScript…)和ActiveX技术,是一种全新的软件系统构造技术 。 2. B/S三层体系结构采用三层浏览器/服务器结构,在数据管理层(Server)和用户...

    设备售后服务及技术培训方案.doc

    公司以客户第一、效劳第一的宗旨,进展系统的售后服务工作。公司承诺所有设备提供一年质保、终身保修,凡设备出现故障接到客户的报修后4小时内到达现场,24小时解决问题。公司还将提供技术维护人员全天值守,定期...

    JAVA上百实例源码以及开源项目源代码

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...

    asp.net知识库

    .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎...

    JAVA上百实例源码以及开源项目

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...

    网络安全培训心得体会.doc

    并 借以近期"网络安全"热点为例,穿插自己在维护网络安全中的经验,使用幽默、风趣的 语言的语言,把"物联网安全""云计算和大数据安全""人工智能及"和"数据安全防护体系 架构V2"等几个方面阶段性的渗透到我们这些...

    服务器工程师岗位主要职责.doc

    服务器工程师岗位职责4 职责: 1、服务器、存储、工作站系统架设和维护 2、项目实施售前、售后技术支持 3、项目实施(架设、安装、调试) 岗位要求: 1、具有一年以上相关工作经验,善于沟通、善于处理客户间的关系;...

    深入理解Android:卷I--详细书签版

     笔者认为,本书最大的特点在于,较全面、系统、深入地讲解了Android系统中的几大重要组成部分的工作原理,旨在通过直接剖析源代码的方式,引领读者一步步深入于诸如Binder、 Zygote、Audio、Surface、Vold、Rild...

Global site tag (gtag.js) - Google Analytics