type=\ parameter=\ scope=\ validate=\> path=\ /> name=\ path=\ /> scope=\ type=\> path=\ /> 五、开发过程中所用到的技术 5.1 软件工程的思想方法 使用了软件工程的来分析和设计一个系统。这样做的确加快了开 25 发的效率,使得整个开发过程变得有条理。 按照软件工程的方法思想,一开始就要先分析清楚需求。而需求又是由用户、使用者来决定的——也就是说,要寻找系统的参与者。参与者找到后,开始分析参与者的需求,在需求的带动下来寻找系统需要完成的功能——这就是用例模型。表现用例模型的东西就是用例图。然后进一步的细化用例,用简短的文字对用例进行描述,以后再实现用例的时候,就可以参照用例描述来编写流程。 找完了用例,接下来要把用例组合、实现出来。这里结合了MVC的思想:首先通过用例分析,弄清楚用例的先后关系,绘制出整个系统的流程设计框架,其表现形式就是流程图。流程图的每一个过程实际上是由用例变化而来的,而每个参与者有其不同的流程。 流程图确定了,就是真正结合MVC思想的时候了。我尝试这把流程中的每一个流程视为一个动作和该动作的一个返回(这个返回可能是页面也可能是另外一个动作),而触发该动作的条件大多数都是用户对界面的操作,比如用户点击了登陆。 5.2 MVC思想 由于网站系统的特点,如果软件结构不够清晰,那么随着系统越来越庞大,业务逻辑越来越复杂,开发势必越来越艰难。 本系统的开发中用到MVC的思想,将模型层(负责与数据库交互)、视图和控制器解耦,使他们既能够强有力的传递信息又松散耦合。这里的model使用了Hibernate实体框架,这里面最重要的思想 26 就是将数据表映射成为Java代码中的类,以后对Java类的对象的操作就是对对数据表中的记录的操作。不论是JPA甚至是ASP.net MVC中的EntityFrameWork(实体框架),这样的思想在众多的实体框架上都是一样的。如果需要对数据进行更加精细的操作,可以使用HQL语言。 5.3 Struts2.0 Struts实际上和基本的Serverlet有些相似,不如说Struts的底层实现就是Serverlet。从这次开发的角度上看,Struts相对于Serverlet提供给开发者的便利有以下几点: 首先,作为MVC的一个实现框架,为MVC工程实施带来了方便。 第二,struts提供了良好的前后台交互数据的方式——通过类似于JavaBean的传值方式,只要有同名属性并且带有get和set方法,就不需要像Serverlet那样使用getAttribute和setAttribute来对参数值进行获取和设定了。 第三,struts提供的导航功能。这里主要体现是struts的配置文件struts.xml。这里面最主要的就是对Action的配置了。由于前台调用Action的方法是通过Action的name属性来调用的,所以为了使前台能够正确的调用实现好的Action类,就需要在配置文件中对Action进行配置。这样做能够将前台的调用与具体的Action实现解耦,当项目的功能需要替换的时候,可以直接修改其class属性,改变该Action的实现类即可。 27 同时,struts还提供了自己的前台页面标签,struts的标签都是以 六、总结 经过了两周的奋战,终于把课设完成,虽然做的不如意,但也是实实在在地提升了自己做项目的能力。在本次课程设计中,从开头的需求分析,策划等没有出现太大的问题。到了建模和构建阶段,问题连连不断,特别是代码的出错问题处理,超出预期。我觉得这是我不经常写代码的原因,各种问题应有尽有。 这次课设虽然有些疲惫,但还是有很多的收获的,首先,我又一次巩固了所学到的知识,之前的学习只是停留在理论基础上,现在自己动手操作试验后,才是真正的理解及体会。Java也学了近一年,有很多知识都是似懂非懂,通过平时上机操作,自己也了解了一些,但让我有了更深的理解和更好的认识,则是在这次的课设上,之前的困惑也通过这次的课设解决了一些,虽然还是不能够全面的理解,但是有进步就很高兴。 通过本次论文设计,我初步学会了论文设计的基本方法,学会了怎样去借鉴别人的方法和经验,知道了如何整合资料和处理这些资料的能力。在这些过程当中 ,在遇到个人能力无法解决的问题时,着 28 实心烦意乱,但是静下心来后,通过查阅大量资料,或者通过向技术牛人请教,都一一得到了解决。 虽然这次课程设计,时间仓促,做得并不那么完美。但是至少在自己的脑海里,如何运用JAVA EE各种框架构建一个自己想要的系统的基本思路是有的。人们说,知识是死的,思路是活的。只要掌握了思路,以后再次碰到这些问题,就容易着手去解决了。 计算机软件开发知识的广泛性使我觉得,自己所学到的知识还是太少太少。所以在今后的学习生活中,我要更加努力。正因为,学如逆水行舟,不进则退。 参考文献 [1] 郝玉龙.Java EE 编程技术[M].北京:清华大学出版社. [2] 李兴华.Java web 开发实战经典[M].北京:清华大学出版社. 29