202302-踏马逐尘 实验五 软件开发案例(2)团队作业

项目 内容
课程班级博客链接 2023年春软件工程(2020级计算机科学与技术)
这个作业要求链接 实验五 软件开发案例(2)
团队名称 踏马逐尘
团队成员分工描述 孙* :负责博客的编写任务与项目的后期监督与维护;
阿* 曼:负责任务二的创建一个upload文件夹用于存放用户上传的文件;
后* :负责MVC编码,将项目部署在Tomcat上并上传github;
杨* 辽:负责数据库的创建和任务一的相关内容。
团队的课程学习目标 实现开发环境部署、mysql数据库创建和连接访问技术;
掌握数据库应用程序开发技术;
实现项目新功能:创建一个upload文件夹用于存放用户上传的文件的开发任务;
在实验中加强团队合作,同时对项目的开发有更深的理解。
这个作业在哪些方面帮助团队实现学习目标 提供了简单的项目模板,为项目的开发工作提供了参考与建议;
在项目开发中团队之间有很多的交流,增强了团队协作能力;
在项目开发中为实现新功能查询了大量的资料,拓宽了对JAVA开发的理解与认识。
团队博客链接 踏马逐尘
团队项目Github仓库地址链接 踏马逐尘

一、实验目的与要求

(1)理解MVC软件设计模式
(2)练习并掌握JSP+JavaBean+Servlet技术实现的MVC设计模式;
(3)练习UML建模技术。

二、实验资源说明

学生信息管理软件案例资源包studentmanager是根据MVC设计模式开发的一个简单软件案例。
(1)student.sql:数据库脚本,用以生成案例软件关联的student数据库表及数据。
(2)src目录下有四个包,其中包model存放模型层(M)的程序模块,这些模块通常是一些采用JavaBean技术实现的逻辑任务;包control存放控制器(C)程序模块,这些模块通常采用Servlet技术定义与开发;包entity与dbutil均采用JavaBean技术实现,这些程序模块通常会被多个程序模块调用。
control: ListStudentServlet.java、InsertStudentServlet.java、UpStudentServlet.java(修改前)、DoStudentServlet.java(修改后)、DeleteStudentServlet.java、ShowStudentServlet.java
dbutil: 存储数据库连接工具类Dbconn.java;
entity: 存储实体类Student.java;
model: 存储学生信息处理类StudentModel.java。
(3)WebRoot/jsp文件夹下存放视图层(V)的程序模块,这些程序模块采用JSP技术开发。

三、实验内容与步骤

任务1:创建学生信息管理的Java web项目

1.在MySQL中创建数据库:students


2.在students数据库中创建学生信息表:student


3.创建Web项目,项目名称为:studentmanager

4.在项目的src包中创建包model、control、在WebRoot下创建JSP文件夹

5.在项目中添加MySQL数据库驱动包

6.在src包中创建entity包存放实体类,创建实体类Student.java,其属性与数据库表的student的字段对应,程序中获取的数据库表student的记录就可存储到Student.java类的对象实例中。

7.在src包中创建dbutil包存放数据库连接工具类Dbconn.java

8.分别对案例中四个模块的M、V、C层进行编码,并在项目中的WebRoot/WEB-INF/webWeb.xml中配置control包的6个Servelet控制器。
学生信息列表模块:studentlist.jsp(V)、SearchStudent.java(M)、ListStudentServelet.java(C)
新增学生信息模块:studentinsert.jsp(V)、InsertStudent.java(M)、InsertStudentServlet.java(C)
修改学生信息模块:studentupdate.jsp(V)、SelectStudent.java+UpdateStudent.java(M)、UpStudentServlet.java(修改前)、DoStudentServlet.java(修改后)
删除学生信息模块:studentshow.jsp(V)、SelectStudent.java+DeleteStudent.java(M)、ShowStudentServlet.java(删除前)、DeleteStudentServlet.java(删除后)

9.将项目部署在Tomcat服务器,在浏览器输入:http://localhost:8080/studentmanager/ListStudentServlet.do, 测试运行学生信息的增加、更新、删除、显示等操作。

显示:
输入网址http://localhost:8080/studentmanager/ListStudentServlet.do,显示如下页面:

增加:
添加数据id与数据库中重复



添加数据id与数据库中不重复



删除:



更新:
修改tom数据,年龄改成30,分数改成50


任务2:学生信息管理软件增量开发

1.为案例软件开发一个新功能,可将excel文件的学生信息批量导入数据库。
点击上传excel

点击模板键下载模板


修改模板内容,保存并上传

如果没有照片,则需要将fileName设置为null

原数据库内容如下

上传成功,其中id相同的部分不能导入

数据库更新

2.在项目的WebRoot文件夹下创建一个upload文件夹用于存放用户上传的文件,增加学生信息字段:相片,根据相片字段的信息存储和维护完善案例软件,要求学生相片文件存放在服务器上项目的upload文件夹中,数据库中存放相片的文件名,显示相片时是根据文件名到该文件夹中访问图片文件而实现。


点击上传多张照片并选择与数据库照片名对应的照片

上传成功


文件路径保存到uploads中

点击修改,为数据添加图片

图片添加成功

功能:文件过大提示
添加新数据或者修改数据,选择一个较大的图片(>2M)

文件过大,无法添加

视频演示

github上传点击此处跳转至网址

完成任务花费时间

任务内容 预计花费时间(min) 实际花费时间(min)
创建学生信息管理的Java web项目 10 5
学生信息管理软件增量开发 300 200
上传文件至github 10 15
成员谈谈感受体会 20 20
完成博客撰写 150 200

成员分工

成员 工作内容
孙* 负责博客的编写任务与项目的后期监督与维护
阿* 曼 负责任务二的创建一个upload文件夹用于存放用户上传的文件
后* 负责MVC编码,将项目部署在Tomcat上并上传github
杨* 辽 负责数据库的创建和任务一的相关内容

Servlet技术的工作原理:

执行原理∶
1.当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的servlet的资源路径
2.查找web.xml文件,是否有对应的标签体内容。
3.如果有,则在找到对应的全类名
4.tomcat会将字节码文件加载进内存(Class.forName())并且创建其对象newInstance()
5.调用其方法–service

MVC设计模式的特点:

MVC是一种常用的软件设计模式,它将应用程序分为三个部分:模型、视图和控制器。MVC设计模式的特点如下:
模型(Model):负责处理应用程序的数据和业务逻辑。
视图(View):负责显示应用程序的用户界面。
控制器(Controller):负责处理用户输入并将其传递给模型或视图。
MVC设计模式将应用程序分为三个部分,使得应用程序的不同部分可以独立开发和测试。

MVC 的优点
1.降低代码耦合性。在 MVC 模式中,三个层各施其职,所以如果一旦哪一层的需求发生了变化,就只需要更改相应的层中的代码而不会影响到其他层中的代码。
2.有利于分工合作。在 MVC 模式中,由于按层把系统分开,那么就能更好的实现开发中的分工。网页设计人员可进行开发视图层中的 JSP,而对业务熟悉的人员可开发业务层,而其他开发人员可开发控制层。
3.有利于组件的重用。如控制层可独立成一个能用的组件,表示层也可做成通用的操作界面。可以为一个模型在运行时同时建立和使用多个视图。
MVC 的不足之处
1.增加了系统结构和实现的复杂性。对于简单的界面,严格遵循 MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。
2.视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。
3.视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。
4.目前,一般高级的界面工具或构造器不支持模式。改造这些工具以适应 MVC 需要和建立分离的部件的代价是很高的,从而造成 MVC 使用的困难。MVC设计模式使得应用程序的不同部分之间的耦合度降低,使得应用程序更易于维护和扩展。

团队成员的感受体会

成员 体会
孙* 本次实验,我负责博客的编写任务与项目的后期监督与维护。通过本次实验,我深入认识了MVC设计模式的特点和优势,进一步掌握了JavaEE技术中的Servlet编程和MySQL数据库的操作。同时,在团队合作过程中,我学习了Git的使用和UML建模工具的运用,加强了团队协作和沟通的能力。
阿* 曼 本次实验,我负责任务二的创建一个upload文件夹用于存放用户上传的文件。 在本次实验中,我练习并掌握JSP+JavaBean+Servlet技术实现的MVC设计模式,总结了MVC设计模式的特点和Servlet技术的工作原理,更清楚的知道了MVC设计模式的优缺点以及具体的应用步骤,以及Servlet技术的工作原理,了解了Servlet作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层是如何工作的。同时,在我们遇到问题时,积极讨论,查阅资料,最终顺利的完成本次实验。
后* 本次实验,我负责MVC编码,将项目部署在Tomcat上并上传github。本次实验我将项目部署在Tomcat服务器,在浏览器测试运行学生信息的增加、更新、删除、显示等操作,但是由于电脑数据库一直不正确,一直无法实现在浏览器上的增删改查,在这里浪费了大量的时间,最后换了一台电脑进行调试,得以调试成功。后期博客的撰写还是比较熟悉。
杨* 辽 本次实验,我负责数据库的创建和任务一的相关内容。通过本次实验,我掌握了servlet技术的工作原理及MVC设计模式的特点,实验过程中遇到了很多问题,最后通过查阅资料和请教团队成员解决,提高了软件开发能力和团队协作能力。
posted @ 2023-05-13 21:29  踏马逐尘  阅读(161)  评论(0)    收藏  举报