项目小结

来源:互联网 发布:扫描大师软件下载 编辑:程序博客网 时间:2024/04/30 13:16

  最近的项目已经告一段落了,今天就来对该项目进行一下总结。

  本次项目是通过java来编写的一个Web项目,先是建模,设计表,然后就是页面的设计,最后又讲解了一些关于连接池,WebService等一些问题。

 

 下面我通过这整个工程的实现过程及在其中用到的知识点和我的感受来对该项目进行总结。

一.建模及建表

  在本项目中,我们使用的PowerDesigner来进行建模,并直接生成脚本,导入到Oracle数据库。

 

   感受:

  对Oracle有了一些认识,知道了它与SqlServer的一些区别,SqlServer有可视化界面,可是Oracle需要其他工具如SqlDeveloper的帮助才能实现可视化效果,由于Oracle的服务器占用内存比较大,所以我们可以只在本地安装客户端和SqlDeveloper,然后远程连接服务器端即可。

 

二.页面的设计

   主要对HTML,CSS,javascript,servlet和jsp进行了简单的讲解。

 

    感受:

    1)对于HTML,CSS算是对以前学过的知识进行了一下回顾。

    2)对于javascript还是有些陌生的,通过使用javascriptDOM编程对一些文本框等进行验证操作。

    3)HTMLDOM定义了用于HTML的一系列标准对象,通过DOM可以访问所有的HTML元素,HTML DOM独立于平台和编程语言,可被任何编程语言所使用。

  

三.项目实现

1.项目初期架构——Model1

   Model1就是jsp+业务逻辑,在这个实现当中,我们对读取配置文件,单例模式的讲解,Ajax,泛型,Filter等进行了讲解。

 

    感受:

   1)我们先是对配置文件有了一定的认识,对Web.xml中的各大常用标签有了一定的熟知(可看前面博客)。

   2)配置文件的灵活性是java区别与.net的一个重要的不同点,读取配置文件有4种方式:DOM(与平台和语言无关),SAX(类似于流媒体),JDOM(Java特定文档模型),DOM4J(读物速度快,读取容量大)。

   3)单例模式的讲解使我对该设计模式又有了一些熟悉,两种读取方式:饿汉式(先实例化)和懒汉式(运行时实例化)。

   4)Ajax(异步的javascript和XML),Ajax的异步主要体现在表单将请求数据发给javascript代码而不是服务器,然后javascript得到数据后通过XmlHttpRequest对象(Ajax的核心对象)将数据发送到服务器(故不会重载页面,不影响用户的使用)。

   5)泛型的好处是在编译的时候会检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。

   6)Filter即过滤器,它的执行原理和Listener的执行原理我在前面的博客中已经介绍过。

 

2.项目改进1——Model2 

    Model2就是在Model1的基础上将Jsp划分成了Jsp和Servlet,除此之外还对Id生成器等进行了讲解。

 

    感受:

   1)通过Model1向Model2的转变使我对三层架构和MVC有了新的认识(Model2即MVC)。

    2)Jsp是一种特殊的Servlet,之所以分开是为了职责更单一。

   3)Jsp的分割是为了单纯的处理页面,尤其在后面添加了JSTL标签(对Jsp瘦身的一种标签)后,Jsp页面就实现了纯标签的编写。

   4)Servlet单独分离出来是为了处理页面和后面实现代码的逻辑问题,即业务逻辑层,它的出现使得项目的架构也发生了改变,从Model1转成了Model2,在这里对Servlet的执行原理,生命周期有了进一步的认识(前面博客有讲述了Servlet的生命周期)。

   5)对于Servlet还有一点要明白的就是转发和重定向,转发是同一个request,不改变url地址,只能在同一个Web项目中进行转发;而重定向是不同的request,改变了url地址,所以不受限制,可以是任意地址(Web项目外的也可以)。

   6)其中的Id生成器其实就是建立一个表单纯的只保存其他的表名和该表的最后一个Id。

   7)在讲解Servlet时又对get和post的提交进行了区分,通过查看http协议的执行流程,使我对http协议有了一定的了解(可看前面的博客)。

 

3.项目改进2——Dao模型

    在这部分,主要讲解了Dao模型的概念,还有提交乱码,异常处理,上传组件等内容。

   

    感受:

    1)Dao模型就是为了实现对数据库实现的一个封装,隐藏代码。

   2)提交乱码问题要根据请求类型来改变,如果是Get类型就需要将接收方的编码类型与之改为一致,如果是post类型,直接用request.charsetEncoding()即可解决。

   3)关于异常处理问题主要的就是说的自定义异常处理,根据自己的实际情况编写不同的异常处理,方便调试。

   4)上传组件,fileupload组件有很多种,该项目中使用的是Apache的,它的具体用法我在之前的博客已有了论述。

   

4.项目改进3——抽象工厂+反射

    在该模型中,我们先是在D层添加了抽象工厂加反射,之后又在B层添加了抽象工厂加反射。

    在该阶段中,我们不仅讲解了抽象工厂,还讲解了动态代理和JFreeChart报表。

 

    感受:

   1)这里的抽象工厂与我们以前.net中使用的不同的主要就是对配置文件的读取,因为java里的配置文件比较灵活,但是读取有些麻烦。

    2)反射机制就是动态的使用任意类的方法和对象。

    3)动态代理就是动态的生成代理类,它使用了反射机制和回调函数,具体的分析可看我的博客。

   4)JFreeChart报表主要就是通过不同类型的图看展现我们的数据,使其看起来更直观和清晰。

 

四.完善补充

    整个项目大体做完后,我们又补充了一些其他的知识。

 

   1)Java类加载器(双亲委派机制)和Tomcat类加载器的加载原理,都是先加载Bootstrap,Ext,System,自定义类加载器。

   2)Tomcat连接池的配置,其实就是把配置文件中的数据库的配置剪切到context.xml中。

   3)之后又对WebService进行了简单介绍,主要就是通过SOAP和WSDL来进行工作。

   4)最后又对CVS版本控制进行了介绍。

 

小结:由于Drp设计到的小知识点比较多,不能一一的都写成博客来进行讲解,所以通过这个总结做了个简单介绍,也方便以后自己查看。

原创粉丝点击