应用集成实验报告

五迷三道 提交于 2020-01-24 08:46:49

应用集成原理与工具集成实验报告

实验环境:普通PC机,Windows 2003或Windows XP 系统、网络交换机、VS.Net 开发环境、数据库运行环境。
实验目的:
通过这次实验掌握并了解基于中间件集成的实验原理与实验操作;
掌握MVC模式设计系统;
体会MVC模式下集成的好处。
实验内容:
1.创建两个数据库,每个数据库各两张表。
注意:两张表中虽然基本内容⼀致,但是它们的表名字不同,表中字段和类型也有所区别。
2. ⽤xml完成针对数据库本身表中字段,属性,格式等的描述。
说明:
2.1 ⼀个数据库⾄少⽤1个xml⽂件来描述,此外,还需⽤1个xml⽂件来统⼀所有异构字段名称和类型。
2.2 这些xml表就是中间件中关于元数据表的建⽴,会在阶段4中⽤到。
2.3 请注意xml表中针对不同DB中相同信息表中的字段描述,最好标签相同,但是标签中的内容不同,这都是为了最终集成的需要。
3. 完成⼀个jsp+Servlet+javaBean的信息管理系统.
说明:
3.1 针对2个数据库表的查询,譬如可以查询所有男性学⽣的信息,所有选修某⻔课程学⽣的信息,可以⼿动增加⼀个新的学⽣到某个指定的班级,可以批量删除选择某⼀⻔课程的学⽣,可以增加⼏⻔课程到2个数据库中等,功能越多越好。
3.2 所有的逻辑功能不可以写在jsp中,必须写⼊servlet。
4. 完成中间件集成功能。
说明:
4.1修改servlet的部分代码,要求加⼊分解合并功能,查询功能,元数 据解析功能。其中分解合并类的成员⽅法包括,sql命令的分解,多数据库操作结果的合并,针对xml的解析函数等,查询功能类主要包括数据库连接,数据 库操作⽅法,针对xml的解析等,元数据表解析类主要包括Java的xml解析接⼝等。
4.2不出现具体的DB名称,合并结果时不可以出现数据库中具体的字段名称,并且要求结果显示的⼀致性(即就像是从⼀个DB⾥查询出来的信息),总之就是完全屏蔽多后台数据的特性,对后台保持透明。

实验步骤:
1.创建数据库
test是登陆注册时的数据库

chengjifenxi1和jibenxinxi1是第一个数据库的两张表

chengjifenxi2和jibenxinxi2是第二章数据库的两张表:

第二个数据库的表格的列名与第一个数据库表格的列名完全不同。
2.编写xml文件:
以下是四张表的xml:

XML:可扩展标记语言,标准通用标记语言的子集。比如这个标签用来标注不同数据库的名称,用标注表的名字,使得读xml文件的时候,可以根据相同的便签来获取不同的信息。
3.完成MVC 模式的数据库
MVC模式解释:
Model 模型(完成业务逻辑:由javaBean构成,在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用像EJBs和javaBean这样的构件对象来处理数据库。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。)
View 视图(就是负责跟用户交互的界面。一般就是由HTML,css元素组成的界面,当然现在还有一些像js,ajax,flex一些也都属于视图层。 在视图层里没有真正的处理发生,之负责数据输出,并允许用户操纵的方式。MVC能为应用程序处理很多不同的视图。 )
Controller 控制器(接收请求—>调用模型—>根据结果派发页面并经过模型处理返回相应数据。)

(2是下一个阶段的servlet)
对Dao层解释:
Dao层描述student变量在数据库的具体操作,如增删改查询以及返回列表等操作,而在每个查询语句中会出现具体的表名,即如果有多个数据库就需要建立多个Dao,不利于模块的集成化。

Servlet解释:
主要是doGet 和doPost方法,doGet调用用于获取服务器信息,并将其做为响应返回给客户端。当经由Web浏览器或通过HTML、JSP直接访问Servlet的URL时,一般用GET调用。GET调用在URL里显示正传送给Servlet的数据;doPost的作用与GET一样,都是获取服务器信息,并作为响应返回给客户端,好处就是可以隐藏传送给服务器的任何数据。doPost适合发送大量的数据。方法:就是将doPost方法的调用写在doGet中,这样无论浏览器发送的是GET请求或者是POST请求,都能被响应到。

Jsp:
JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。
特点:
能以模板化的方式简单、高效地添加动态网页内容。
可利用JavaBean和标签库技术复用常用的功能代码(设计好的组件容易实现重复利用,减少重复劳动)。标签库不仅带有通用的内置标签(JSTL),而且支持可扩展功能的自定义标签。
有良好的工具支持。
继承了Java语言的相对易用性。

修改web.xml:
web.xml 是java web 项目的一个重要的配置文件,web.xml文件是用来配置:欢迎页、servlet等的;web.xml的模式(Schema)文件中定义了多少种标签元素,web.xml中就可以出现它的模式文件所定义的标签元素,它就能拥有定义出来的那些功能。web.xml的模式文件是由Sun公司定义的,每个web.xml文件的根元素中,都必须标明这个web.xml使用的是哪个模式文件。web.xml的加载过程。当启动一个WEB项目时,容器包括(JBoss、Tomcat等)首先会读取项目web.xml配置文件里的配置,当这一步骤没有出错并且完成之后,项目才能正常地被启动起来。

通过对MVC模式的运用,通过特定的语句对数据库内容进行增删改显示,如果需要对每个数据库的表格中增加新的功能,就需要在创建的多个Dao中每个都要加入特定的代码,并且每个Dao层的查询语句不尽相同(要出现表的名字);如果要修改表中列的名字,则需要在出现列名的地方手动的进行修改,修改较为繁琐,可扩展性较差。
4.利用xml文件完成中间件集成功能
中间件(Middleware)是处于操作系统和应用程序之间的软件,也有人认为它应该属于操作系统中的一部分。人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担。
利用xml反射机制:
创建文档构建器工厂(采用单例模式)
创建文档构建器
由xml文件创建文档对象
获得根节点以及获取一级子节点和二级节点属性

连接数据库的代码需要简单修改:

测试xml反射机制的,即可得到每列的列名

Dao层:

数据库语句中并没有出现具体数据库的名字,构造List的时候,也不会出现具体列名。
而且对于多个数据库而言只需要写一个对象就可以解决。
Servlet 解释:

对增删改查找设置servlet
具体的实现跟第三步类似,只不过获取属性的方法不同。

Jsp解释:
跟步骤三类似

实验结果展示:
解决端口被占用:

运行tomcat

运行网站:

更改性别

删除学生:

成绩信息展示(用到xml中间件)
进行添加:

修改信息:

删除学生:

修改列名,只需要改xml文件:
把xuefen 换为gredit

结果仍然正确。
实验总结:
1.通过这次实验从完全没有接触Tomcat,MVC模式,到掌握,读懂能够熟练的运用各个层次,以及对于各个层次的功能实现,功能分割的原因有了了解。
2.因为在之前的学习中接触过json,所以对于xml的标签也不是很陌生,较快的完成了前两步。
3.因为没有接触过MVC模式,花了较长时间找博客看别人mvc模式下的web程序;并且消化了mvc模式下的工程。
4.做第四步xml中间件集成的时候,由于在课堂上正好学到了xml的反射,以及对于第三步的理解,做的还比较顺利。
5. 总的来说,经过这几次的实验,总体上对于java网络编程开发有了不少认识,也熟悉了MVC模式下各个层之间的关系,更是对于课堂上所讲的中间件集成有了更深刻的认识,这对于以后学习软件方面有了很好的锻炼。

实验感悟:
坎坷多多,但花费不少时间之后总算完成了实验目标。
1.在第一次实验之前,老师布置了xml作业以及构建数据库的作业,因为之前第一次理解错了xml是描述表项的,而写成了对于内容的描述。所以在第一次实验课上及时纠正了错误并开始着手准备MVC模式下的web系统。第一次实验课标胶顺利,也对于之后的实验课有了初步的了解。
2.在第二次实验课的时候开始着手上机用eclipse 编写,但是由于我eclipse上不是企业版的,不能加载Tomcat,但网上有许多方法说的是可以在非企业版的下面加载tomcat,从六点半的实验课一直试到了晚上10点半都没有解决这个问题。之后的课下时间下载了idea,轻松的导入了tomcat。
3.在第三次实验课的时候进行写代码和运行操作,连接数据库就调试了许久,一直连接失败,调整了许多原因,最后才发现由于MySQL驱动的版本原因,连接数据库的时候需要加入cj,即Class.forName(“com.mysql.cj.jdbc.Driver”);之后运行Jsp的时候,首先出现的是404,由于是web.xml配置出现了错误,改完之后出现的是500,可能就是各种小的代码里的逻辑错误,好在界面上会指明哪一行出现的错误,课上加上课下的时间总算完成了第三步的实验。
4.由于自己想要进一步深入理解,所以并没有改动第三步的代码,又重新换了两张表开始做,加入xml反射机制,由于在课堂上学习了这个内容,并没有感觉有很大难度;但在运行的时候一直说找不到我的Util包中的类,在反复测试反复修改代码下,并没有发现哪里有错误。让许多同学帮忙找错误也并没有找到,足足花了一周的时间发现lib下把我写的Util映射成了小写的util,更改名字,重新配置lib 后,终于可以显示界面,之后的一周又对于功能的错误有了一些调整,比如说第四步写的成绩表应该是多关键字等等一些细小的错误。
5.通过这五次的实验过程,懂得了如何从一开始完全不会到能够基本熟练运用的整个过程,对自己的能力以及之后的学习有很大的帮助。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!