今天总结一下这个系统软件使用的系统架构。
这个软件使用的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框架的页面逻辑,标签还有这个脚本库的内容吧。
分享到:
相关推荐
我们承诺在软件项目验收合格后一年内提供免费维护期和技术服务,向校方的相关技术人员免费提供原理和技术上的指导和咨询, 使校方人员能正确熟练地使用本协议的软件开发及测试成果。在现场维护中,我们将派遣专业...
供电公司自助缴费终端及POS机运维项目的软件运维内容包括操作系统、应用软件、数据库管理系统等的安装、配置、维护和故障排除。 六、日常运维培训要求 供电公司自助缴费终端及POS机运维项目需要对运维人员进行日常...
主要利用了不断成熟的WWW浏览器技术,结合多种Sc ript语言(VBScript、JavaScript…)和ActiveX技术,是一种全新的软件系统构造技术 。 2. B/S三层体系结构采用三层浏览器/服务器结构,在数据管理层(Server)和用户...
公司以客户第一、效劳第一的宗旨,进展系统的售后服务工作。公司承诺所有设备提供一年质保、终身保修,凡设备出现故障接到客户的报修后4小时内到达现场,24小时解决问题。公司还将提供技术维护人员全天值守,定期...
用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...
.NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎...
用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...
并 借以近期"网络安全"热点为例,穿插自己在维护网络安全中的经验,使用幽默、风趣的 语言的语言,把"物联网安全""云计算和大数据安全""人工智能及"和"数据安全防护体系 架构V2"等几个方面阶段性的渗透到我们这些...
服务器工程师岗位职责4 职责: 1、服务器、存储、工作站系统架设和维护 2、项目实施售前、售后技术支持 3、项目实施(架设、安装、调试) 岗位要求: 1、具有一年以上相关工作经验,善于沟通、善于处理客户间的关系;...
笔者认为,本书最大的特点在于,较全面、系统、深入地讲解了Android系统中的几大重要组成部分的工作原理,旨在通过直接剖析源代码的方式,引领读者一步步深入于诸如Binder、 Zygote、Audio、Surface、Vold、Rild...