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设计模式的特点,实验过程中遇到了很多问题,最后通过查阅资料和请教团队成员解决,提高了软件开发能力和团队协作能力。 |

浙公网安备 33010602011771号