202308-啊对对队 实验五:软件开发案例(2)

这篇具有很好参考价值的文章主要介绍了202308-啊对对队 实验五:软件开发案例(2)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目 内容
班级博客链接 2023春软件工程2020级计算机科学与技术
本次作业要求链接 实验五:软件开发案例(2)
团队名称 啊对对队
团队成员分工 赵嘉旺:项目导入,博客撰写;李锋斌:项目导入,博客撰写;杨炜:增量开发
团队课程学习目标 (1)理解MVC软件设计模式(2)练习并掌握JSP+JavaBean+Servlet技术实现的MVC设计模式;(3)练习UML建模技术。
本次作业在哪些方面帮助团队实现学习目标 学习和巩固软件开发相关知识,对优秀案例进行学习和总结,并进行增量开发提升编程水平
团队博客链接 啊对对队
团队项目Github仓库地址链接 (https://github.com/lifengbin1/lfb)

一、实验目的与要求

  1. 理解MVC软件设计模式;

  2. 练习并掌握JSP+JavaBean+Servlet技术实现的MVC设计模式;

  3. 练习UML建模技术。

二、实验内容

任务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(删除后)
  1. 将项目部署在Tomcat服务器,在浏览器输入:http://localhost:8080/studentmanager/ListStudentServlet.do, 测试运行学生信息的增加、修改、删除、显示等操作。

任务2:

学生信息管理软件增量开发

  1. 为案例软件开发一个新功能,可将excel文件的学生信息批量导入数据库。
  2. 在项目的WebRoot文件夹下创建一个upload文件夹用于存放用户上传的文件,增加学生信息字段:相片,根据相片字段的信息存储和维护完善案例软件,要求学生相片文件存放在服务器上项目的upload文件夹中,数据库中存放相片的文件名,显示相片时是根据文件名到该文件夹中访问图片文件而实现。
  3. 将任务1与任务2的完成的学生信息管理软件源码上传到团队github仓库。

任务3:

完成《实验五 软件开发案例(2)团队作业》团队博文作业

三、实验结果与步骤

任务1:

  1. 使用SQL语句在MySQL中创建数据库和表并添加数据
    202308-啊对对队 实验五:软件开发案例(2)
  2. 在students数据库中创建学生信息表:student
    202308-啊对对队 实验五:软件开发案例(2)
  3. 创建Web项目,项目名称为:ADDD_Demo_05 (啊对对队_案例_实验五)
    202308-啊对对队 实验五:软件开发案例(2)
  4. 在项目的src包中创建包model、control、在WebApp下创建所需要的静态文件夹
  • 项目名称为:ADDD_Dome_05, 在项目的src包中创建包model、control并创建对应的servlet为前台提供数据接口
    202308-啊对对队 实验五:软件开发案例(2)
  • 在WebApp下创建静态文件夹/images/upload,相片上传目录
    202308-啊对对队 实验五:软件开发案例(2)
    5.使用c3p0连接数据库
    202308-啊对对队 实验五:软件开发案例(2)
  1. 在src包中创建entity包存放实体类,创建实体类Student.java,其属性与数据库表的student的字段对应,程序中获取的数据库表student的记录就可存储到Student.java类的对象实例中。
    202308-啊对对队 实验五:软件开发案例(2)
  2. 在src包中创建dbutil包存放数据库连接工具类Dbconn.java
    202308-啊对对队 实验五:软件开发案例(2)
  3. 分别对案例中四个模块的M、V、C层进行编码,并在项目中的WebRoot/WEB-INF/web.xml中配置control包的6个Servelet控制器。
  • 对案例中四个模块的M、V、C层进行编码
  • 为control包的6个Servelet控制器写声明,使用@WebServlet注解
    202308-啊对对队 实验五:软件开发案例(2)
  1. 将项目部署在Tomcat服务器,在浏览器输入:http://localhost:8080/studentmanager/ListStudentServlet.do, 测试运行学生信息的增加、修改、删除、显示等操作。
  • 将项目部署Tomcat服务器
    202308-啊对对队 实验五:软件开发案例(2)

  • 在浏览器输入:http://localhost:5000/ADDD_Demo_05/ListStudentServlet.do, 测试运行学生信息的增加、修改、删除、显示等操作

  • 学生信息显示
    202308-啊对对队 实验五:软件开发案例(2)

    • 学生信息添加
      202308-啊对对队 实验五:软件开发案例(2)

    • 学生信息添加显示
      202308-啊对对队 实验五:软件开发案例(2)
      202308-啊对对队 实验五:软件开发案例(2)

    • 学生信息查询,查询202005用户
      202308-啊对对队 实验五:软件开发案例(2)

    • 学生信息删除
      202308-啊对对队 实验五:软件开发案例(2)

    • 学生信息修改
      202308-啊对对队 实验五:软件开发案例(2)

    • 学生信息修改显示
      202308-啊对对队 实验五:软件开发案例(2)
      202308-啊对对队 实验五:软件开发案例(2)

任务2:

学生信息管理软件增量开发

  1. 将excel文件的学生信息批量导入数据库。
  • excel数据
    202308-啊对对队 实验五:软件开发案例(2)
  • 将Excel数据导入数据库及显示
    • 数据选择
      202308-啊对对队 实验五:软件开发案例(2)
    • 数据导入
      202308-啊对对队 实验五:软件开发案例(2)
      202308-啊对对队 实验五:软件开发案例(2)
  1. 在项目的images文件夹下创建一个upload文件夹用于存放用户上传的文件,增加学生信息字段:相片,根据相片字段的信息存储和维护完善案例软件,要求学生相片文件存放在服务器上项目的upload文件夹中,数据库中存放相片的文件名,显示相片时是根据文件名到该文件夹中访问图片文件而实现。
  • 在项目的images文件夹下创建一个upload文件夹用于存放用户上传的文件
    202308-啊对对队 实验五:软件开发案例(2)
  • 修改数据库表结构
    202308-啊对对队 实验五:软件开发案例(2)
  • 为每个用户增添用户图像(用户添加若未选择相片将使用默认图像./images/avatar.jpg)
    202308-啊对对队 实验五:软件开发案例(2)
    3.将任务1与任务2的完成的学生信息管理软件源码上传到团队github仓库。
    202308-啊对对队 实验五:软件开发案例(2)

任务3:

1. 完成《实验五 软件开发案例(2)团队作业》团队博文作业

2. 各项任务完成时间(单位:h)

任务内容 预计花费时间(h) 实际花费时间(h)
任务1 1.2 1.1
任务2 5 3
任务3 2 1.5

3.总结Servlet技术的工作原理

  • 当Web服务器接收到一个HTTP请求时,它会先判断请求内容——如果是静态网页数据,Web服务器将会自行处理,然后产生响应信息;如果牵涉到动态数据,Web服务器会将请求转交给Servlet容器。此时Servlet容器会找到对应的处理该请求的Servlet实例来处理,结果会送回Web服务器,再由Web服务器传回用户端。针对同一个Servlet,Servlet容器会在第一次收到http请求时建立一个Servlet实例,然后启动一个线程。第二次收到http请求时,Servlet容器无须建立相同的Servlet实例,而是启动第二个线程来服务客户端请求。所以多线程方式不但可以提高Web应用程序的执行效率,也可以降低Web服务器的系统负担。
    202308-啊对对队 实验五:软件开发案例(2)
  1. Web Client 向Servlet容器(Tomcat)发出Http请求;
  2. Servlet容器接收Web Client的请求;
  3. Servlet容器创建一个HttpRequest对象,将Web Client请求的信息封装到这个对象中;
  4. Servlet容器创建一个HttpResponse对象;
  5. Servlet容器调用HttpServlet对象的service方法,把HttpRequest对象与HttpResponse对象作为参数传给 HttpServlet对象;
  6. HttpServlet调用HttpRequest对象的有关方法,获取Http请求信息;
  7. HttpServlet调用HttpResponse对象的有关方法,生成响应数据;
  8. Servlet容器把HttpServlet的响应结果传给Web Client;

4.总结MVC设计模式的特点

1.MVC 原理
MVC 是一种程序开发设计模式,它实现了显示模块与功能模块的分离。提高了程序的可维
护性、可移植性、可扩展性与可重用性,降低了程序的开发难度。它主要分模型、视图、控制器三层。
(1)模型(model)它是应用程序的主体部分,主要包括业务逻辑模块和数据模块。模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性
(2)视图(view) 用户与之交互的界面、在 web 中视图一般由 jsp,html 组成
(3)控制器(controller)接收来自界面的请求 并交给模型进行处理 在这个过程中控制器不做任何处理只是起到了一个连接的作用
2.MVC 的优点
(1)降低代码耦合性。在 MVC 模式中,三个层各施其职,所以如果一旦哪一层的需求发
生了变化,就只需要更改相应的层中的代码而不会影响到其他层中的代码。
(2)有利于分工合作。在 MVC 模式中,由于按层把系统分开,那么就能更好的实现开发
中的分工。网页设计人员可进行开发视图层中的 JSP,而对业务熟悉的人员可开发业务层,
而其他开发人员可开发控制层。
(3)有利于组件的重用。如控制层可独立成一个能用的组件,表示层也可做成通用的操作
界面。可以为一个模型在运行时同时建立和使用多个视图。
3.MVC 的不足之处
(1)增加了系统结构和实现的复杂性。对于简单的界面,严格遵循 MVC,使模型、视图
与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。
(2)视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但确实联系紧密的部
件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立
重用。
(3)视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才
能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。
(4)目前,一般高级的界面工具或构造器不支持模式。改造这些工具以适应 MVC 需要和
建立分离的部件的代价是很高的,从而造成 MVC 使用的困难。文章来源地址https://www.toymoban.com/news/detail-440362.html

实验心得体会

成员 心得体会
赵嘉旺 通过本次实验,我深入认识了MVC设计模式的特点和优势,进一步掌握了JavaEE技术中的Servlet编程和MySQL数据库的操作。同时,在团队合作过程中,我学习了Git的使用和UML建模工具的运用,加强了团队协作和沟通的能力。
杨炜 本次实验让我深入了解了Java Web开发中的Servlet技术以及页面跳转和数据交互的方式,在团队合作过程中也深化了对Git的理解和掌握,更好地协同合作完成了本次任务。
李锋斌 本次实验让我对Java Web开发中的MVC设计模式进行深入理解和掌握,同时在页面设计和编码方面有了更加全面和深入的实践,感谢团队的合作帮助我成长和进步。

到了这里,关于202308-啊对对队 实验五:软件开发案例(2)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 测试软件开发---软件缺陷章

    软件缺陷 软件出现缺陷一般是因为开发的流程规划不准确,需求不明确,或需求变更/在开发者开发的时候无法清晰的理解需求出现不同程度的偏差/客户方频繁的更改、更新需求也会影响到软件的质量 软件结构复杂、编码误差/错误、项目期限过短、项目中插入新的技术 处理

    2024年02月02日
    浏览(79)
  • 易语言软件定制软件开发脚本开发协议软件电脑网站APP应用视频制作工程制作

    随着信息技术的不断发展,易语言软件定制开发已成为许多公司的一项重要业务。本文将探讨如何利用易语言承接软件定制软件开发脚本开发协议软件电脑网站APP应用视频制作工程制作。 一、易语言概述 易语言是一种简单易学的编程语言,它采用中文编程,让不会英文的初

    2024年02月08日
    浏览(80)
  • 用python开发软件的步骤,如何用python做软件开发

    大家好,小编来为大家解答以下问题,如何用python做软件开发,用python开发软件的步骤,今天让我们一起来看看吧!   参与文末每日话题讨论,赠送异步新书 异步图书君 学习目标 知道有序的软件开发过程的步骤。 了解遵循输入、处理、输出(IPO)模式的程序,并能够以简单

    2024年02月06日
    浏览(76)
  • 数据驱动开发模式将软件开发过程改造成一个公式化的迭代模式,可以提升软件开发效率,缩短开发周期,降低开发成本。

    作者:禅与计算机程序设计艺术 随着云计算、大数据等新兴技术的应用,软件开发领域迎来了蓬勃发展的时期。各种编程语言、框架、工具不断涌现,协同工作的强烈需求已经成为当今社会的一个主要挑战。这就需要一种新的开发方式来适应这种复杂多变的环境。传统的瀑布

    2024年02月06日
    浏览(78)
  • 中文编程开发语言工具开发的实际软件案例:称重管理系统软件

    中文编程开发语言工具开发的实际软件案例:称重管理系统软件 中文编程开发语言工具开发的实际软件案例:称重管理系统软件,软件可以安装在电脑上,也可以安装在收银机上,支持触摸和鼠标点,想学编程可以关注系统化的编程课程。 中文编程系统化教程,不需英语基

    2024年02月07日
    浏览(79)
  • 易语言软件定制开发爬虫模拟协议填写自动化办公软件开发多人团队

    在当今快速发展的信息化时代,企业对于高效、自动化的软件需求日益增长。而易语言软件定制开发爬虫模拟协议填写自动化办公软件开发多人团队,正是为了满足这一需求而诞生的。 一、团队背景 技术顾问、维:Daxiami6789 易语言软件定制开发爬虫模拟协议填写自动化办公

    2024年02月05日
    浏览(71)
  • 开源软件:推动软件开发行业繁荣的关键力量

    在数字化时代,软件开发行业的发展日新月异,开源软件作为一种推动力,正逐渐改变着软件开发的生态。本文将探讨开源软件如何成为推动软件开发行业繁荣的力量,并分析其对我国软件产业的发展意义。 开源软件,是指源代码公开、可以自由使用和修改的软件。这种软件

    2024年02月22日
    浏览(79)
  • 软件架构设计(八) 基于架构的软件开发方法

    ABSD虽然在日常生活中并不常见,但是在考试中却是极为常见的,因此仍然是我们的重点学习知识点。 特点 基于架构的软件设计(Architecture-Based Software Design,ABSD),这个开发方法是 架构驱动 。 即 强调由业务、质量和功能需求的组合驱动架构设计 。就是会考虑到业务的情况

    2024年02月09日
    浏览(51)
  • 大数据开发和软件开发哪个前景好?

    大数据开发和软件开发哪个前景好?大数据开发学习有难度,零基础入门要先学习Java语言打基础,然后进入大数据技术体系的学习,学习Hadoop、Spark、Storm等知识。软件开发工程师根据不同的学科从事的岗位也千差万别。 先说说大数据开发岗位和就业的前景,大数据开发岗位

    2024年02月06日
    浏览(45)
  • 开发复杂软件的系统方法(二)之软件建模

    这几周与公司的软件开发专家(职称)讨论产品的软件新架构与方案,主要涉及两点 是否复用现有的核心机制 基于领域建模设计 关于第一点,双方达成一致。 关于第二点,领域可以理解为业务,业务专家(产品经理,需求工程师,临床工程师等)与研发人员一起,通过头脑风暴

    2024年02月02日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包