基于SSM的房屋租赁系统【附源码】

基于SSM的房屋租赁管理系统

  1. 开发语言:Java
  2. 数据库:mysql
  3. 技术:Spring+SpringMVC+MyBatis+VUE+ElementUI
  4. 工具:IDEA/Ecilpse+mysql+Navicat

角色:管理员、用户

  1. 管理员登录本系统可以对个人信息、用户信息、房屋类型、房屋信息、出租订单、购买订单、轮播图、新闻公告、留言信息等进行管理。
  2. 用户注册登录本系统可以浏览本系统的房屋信息、可以按类查看、搜索房屋、修改个人信息、收藏、评论、留言、租房、购房等。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

第1章 前 言

<template>
	<el-aside class="index-aside" width="200px">
    <div class="index-aside-inner">
      <div v-for="item in menuList" v-bind:key="item.roleName">
        <el-menu
          background-color="#263238"
          text-color="#fff"
          active-text-color="#ffd04b"
          default-active="0"
          v-if="role==item.roleName"
        >
          <el-menu-item @click="menuHandler('home')" index="0">首页</el-menu-item>
          <el-submenu
            :index="1+''"
          >
            <template slot="title">
              <span>个人中心</span>
            </template>
            <el-menu-item
              @click="menuHandler('updatePassword')"
              :index="1-1"
            >修改密码</el-menu-item>
             <el-menu-item
              @click="menuHandler('center')"
              :index="1-2"
            >个人信息</el-menu-item>
          </el-submenu>
          <el-submenu
            v-for=" (menu,index) in item.backMenu"
            v-bind:key="menu.menu"
            :index="index+2+''"
          >
            <template slot="title">
              <span>{
    
    {
    
    menu.menu}}</span>
            </template>
            <el-menu-item
              v-for=" (child,sort) in menu.child"
              v-bind:key="sort"
              @click="menuHandler(child.tableName)"
              :index="(index+2)+'-'+sort"
            >{
    
    {
    
    child.menu}}</el-menu-item>
          </el-submenu>
        </el-menu>
      </div>
    </div>
  </el-aside>
</template>
<script>
	import menu from "@/utils/menu";
	export default {
    
    
		data() {
    
    
			return {
    
    
				menuList: [],
				dynamicMenuRoutes: [],
				role: ""
			};
		},
		mounted() {
    
    
			let menus = menu.list();
			this.menuList = menus;
			this.role = this.$storage.get("role");
console.log(this.menuList)
console.log(this.role)
		},
		methods: {
    
    
			menuHandler(name) {
    
    
				this.$router.push({
    
    
					name: name
				});
			}
		}
	};
</script>
<style lang="scss" scoped>

</style>

1.1 研究背景

  传统的租房网站方式是在线下实体进行的,用户需要到线下进行实际的了解传统信息,而随着信息不断的普及,越来越多的房东也开始出于各种各样的理由而热衷网上发展 ,传统的线下模式已经无法满足人们的需求了。

  互联网的产生,带来了网络的再次高速发展,人们的生活得到了翻天覆地的变化。人们可以随时随地的享受互联网带来的方便快捷,在生活工作中的方方面面的需要都能在网络上实现,比如预约看房、在线签约、租赁评价等信息。也就是说网络成了人们目前最直接、最方便、最轻松的接入口。

  在当今世界,互联网快速发展的现在,如何利用互联网创造更简单高效的生活,这是我们首要讨论的。需要租房网站信息的相关网站,一方面使得管理员可以对租房网站网的信息进行及时更新和信息化的管理,可以较为容易的获取所需信息,系统的操作更加的准确,这是一种潜在趋势,或许可以有效加快租房网站网的普及情况。

1.2 研究现状

  经过调查,目前现代人的生活节奏加快,生活压力也在逐渐的增加,网络的发展给人们带来的便利,随着网上租房网站信息不断的增加,越来越多的房东开始加入了租房网站大潮中,但是我国对于网上租房网站的信息管理效果低下,而且出错率也很高。因此大家都在寻找一款更加专业化的租房网站。

  随着租房网站的不断出现,用户需求不断增多,租房网站也不断的得到壮大,本系统主要根据用户和管理员的实际需要,同时让管理者可以通过这个系统对用户实际需求以及各租房网站信息的所有信息进行操作。设计该系统主要目的是为了方便用户可以有一个非常好的平台体验,管理员也可以通过该系统进行更加方便的管理操作,实现了之前指定好的计划。

1.3 系统开发目标

  对于网站的设计,要保证主界面的整洁有序,能够抓住人的眼球,不会产生视觉疲劳,更重要的是,带给人容易操作的直观感受,这样才能留住用户去进行使用,增加三分热度的延续期。在系统的后台设计上,要采取非常简洁有效的技术,开发方便的同时,便于以后的维护。我们不但要确保所有的功能都能够满足用户的需求,用户还要能自己主动通过网站去实现想要的操作,而管理者的简单通过网站对用户的需求情况进行了解和管理。为达到这一目的,提出以下目标:

(1)实现管理系统信息关系的系统化、规范化和自动化;

(2)减少维护人员的工作量以及实现用户对信息的控制和管理。

(3)方便查询信息及管理信息等;

(4)通过网络操作,改善处理问题的效率,提高操作人员利用率;

(5)考虑到用户多样性特点,要求界面简单,操作简便。

第2章 系统开发环境

2.1 JAVA简介

  Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,java servlet API,Java(java server pages),和XML技术。JAVA语言是一种面向对象的语言,它通过提供最基本的方法来完成指定的任务,开发者只需要知道一些概念就能够编写出一些应用程序。Java程序相对较小,其代码能够在小机器上运行。Java是一种计算机编程语言,具有封装、继承和多态性三个主要特性,广泛应用于房东Web应用程序开发和移动应用程序开发。

  Java语言和一般编译器以及直译的区别在于,Java首先将源代码转换为字节码,然后将其转换为JVM的可执行文件,JVM可以在各种不同的JVM上运行。因此,实现了它的跨平台特性。虽然这使得Java在早期非常缓慢,但是随着Java的开发,它已经得到了改进。

2.2 MySql数据库

  Mysql的语言是非结构化的,用户可以在数据上进行工作。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。并且因为Mysql的语言和结构比较简单,但是功能和存储信息量很强大,所以得到了普遍的应用。

  Mysql数据库在编程过程中的作用是很广泛的,为用户进行数据查询带来了的方便。Mysql数据库的应用因其灵活性强,功能强大,所以在实现某功能时只需要一小段代码,而不像其他程序需要编写大段代码。总体来说,Mysql数据库的语言相对要简洁很多。

  数据流程分析主要就是数据存储的储藏室,它是在计算机上进行的,而不是现实中的储藏室。数据的存放是按固定格式,而不是无序的,其定义就是:长期有固定格式,可以共享的存储在计算机存储器上。数据库管理主要是数据存储、修改和增加以及数据表的建立。为了保证系统数据的正常运行,一些有能力的处理者可以进行管理而不需要专业的人来处理。数据表的建立,可以对数据表中的数据进行调整,数据的重新组合及重新构造,保证数据的安全性。介于数据库的功能强大等特点,本系统的开发主要应用了Mysql进行对数据的管理。

2.3 B/S架构

  B/S结构的特点也非常多,例如在很多浏览器中都可以做出信号请求。并且可以适当的减轻用户的工作量,通过对客户端安装或者是配置少量的运行软件就能够逐步减少用户的工作量,这些功能的操作主要是由服务器来进行控制的,由于该软件的技术不断成熟,最主要的特点就是与浏览器相互配合为软件开发带来了极大的便利,不仅能够减少开发成本,还能够不断加强系统的软件功能,层层相互独立和展现层是该B/S结构完成相互连接的主要特性。

2.4 Spring Boot框架

  Spring Boot是Pivotal团队的一个新框架,旨在简化新Spring应用程序的初始设置和开发。该框架使用特定的配置方法,无需开发人员定义样板配置。通过这种方式,Spring Boot旨在成为蓬勃发展的快速应用程序开发领域的领导者。
Spring Boot特点:
1、创建一个单独的Spring应用程序;
2、嵌入式Tomcat,无需部署WAR文件;
3、简化Maven配置;
4、自动配置Spring;
5、提供生产就绪功能,如指标,健康检查和外部配置;
6、绝对没有代码生成和XML的配置要求;
安装步骤:
最基本的是,Spring Boot是一个可以被任何项目的构建系统使用的库集合。 为简单起见,该框架还提供了一个命令行界面,可用于运行和测试Boot应用程序。 可以从Spring存储库手动下载和安装框架的已发布版本,包括集成的CLI(命令行界面)。 更简单的方法是使用Groovy enVironment Manager(GVM),它负责处理Boot版本的安装和管理。 可以从GVM命令行GVM install springboot安装Boot及其CLI。 在OS X上安装Boot时可以使用Homebrew包管理器。要完成安装,首先使用brew tap pivotal / tap切换到pivotal存储库,然后执行brew install springboot命令。

2.5 ECLIPSE 开发环境

  ECLIPSE 支持广泛、兼容性高并且功能强大,是一个Eclipse 插件集合,普遍适应于JAVA和J2EE的系统开发,支持 JDBC,Hibernate,AJAX,Struts,Java Servlet,Spring,EJB3等市面上存在的几乎所有数据库链接工具和主流Eclipse产品 开发工具。

  ECLIPSE 在业内是所熟知的开发工具,该平台在开发的过程中运用的就是该工具。ECLIPSE 又被称之为房东级的工作平台,它是以Eclipse IDE为基础的。ECLIPSE 可以帮助我们进行数据库的研发和J2EE的使用,除此之外,还可以提高系统的运营能力,这突出表现在服务器的整合过程中。ECLIPSE 的功能相当完备,能够为J2EE的集成提供必要的环境支持,从而完成编码、测试、调试及发布等功能。它可以支持Java,HTML,SQL,Javascript,Struts, CSS等。

第3章 需求分析

3.1 需求分析

  开发系统的过程中,去调查用户的功能诉求,对需要存在的功能进行需求分析是特别重要的,且对于系统的开发有着实际的意义,设计租房网站通过对用户的需求进行分析,结合实际情况进行开发研究,对用户的所有需求做出一个完整的基本的框架,然后一步一步的完成、实现。需求分析可以为系统的开发提供一个目标,只有按照这个目标进行开发设计,才能进行完整的开发,这样设计出的系统才有使用的意义,才能在竞争激烈的软件市场中生存,才能真正的帮助人们解决问题,提高实际的效率。

3.2 系统可行性分析

3.2.1 技术可行性

  本系统采取的是目前应用最广泛的程序进行技术的支持,主要的技术支持是java语言,他作为一个相当成熟的语言程序,在众多的软件开发中起着很大作用。而且用java语言编辑出来程序可以直接运行,不需要借助其他的翻译器进行翻译。所以在技术方面是完全可以行的。

3.2.2 经济可行性

  本项目开发的初衷就是为了节约,因为系统开发的所有过程都是我自己开发的,而且在开发过程使用到的技术也都是市面上常见的容易操作的,所以不需要请专业的人士花资金来进行系统的开发,而且在项目开发的过程中我也学到了更多的知识。开发的这个软件可以在网络中进行免费的下载,对计算机的软硬件没有很高的要求,因此这个项目是非常实惠的,在经济方面是完全可性的。

3.2.3 操作可行性

  操作可行性也就是系统的可用性,一个系统的操作是否容易决定着这个系统的使用度,在系统的操作方面的设计我都是采取简洁易懂的方式,操作的整个菜单界面整齐有序,所有的功能都有序的排列,不会出现重叠或者需要转换的现象,用户想要哪方面的操作都可以直接进行操作,所以该系统任何人都可以进行操作,不需要有相关专业的技术这样用户在操作起来就容易很多。

3.3 项目设计目标与原则

1、关于租房网站的基本要求

(1)功能要求:首页、个人中心、用户管理、房屋类型管理、房屋信息管理、预约看房管理、在线签约管理、租赁评价管理、交流论坛、系统管理等功能模块。

(2)性能:因为租房网站管理中有很多的信息需要存储,因此对于系统的存储量有很大的要求,需要有一个强大的数据库的支持才能确保所有的信息都能安全稳定的进行存储。

(3)安全与保密要求:用户都必须注册、登录才能进入系统。

(4)环境要求:支持Windows系列、Vista系统等多种操作系统使用。

2、设计原则

本租房网站采用Java技术,Mysql数据库开发,充分保证了系统稳定性、完整性。

(1)系统响应效率:由于是租房网站,因此就需要系统的响应效率是非常高的,并且可以支持很多人同时进行系统的使用。

(2)界面简洁清晰:系统界面要简单有序,所有的功能一目了然。

(3)储存性高:因为是租房网站,所以就会在数据库要求上比较严格,信息录入的比较多,而且丰富复杂, 这就需要一个强大的数据库来存放更多的数据和保证数据的时时性。

(4)易学性:系统的设计一定要简单,使得用户使用起来非常好的顺手。

(5)稳定性需求:该系统在使用过程中必须保持稳定,不要出现卡顿、模糊等情况。

(6)稳定性:由于是租房网站,因此系统运行必须要十分的稳定。

4 数据库表设计

  当租房网站在运行的时候,数据库要能确保自己的独立性,想要哪部分的数据就选择相应的设置选项,对应的数据就会以表格的形式展现出来。当对这一个功能进行设置,他就会与数据库进行连接,会在对话框中弹出相应的数据源。

表4-1 allusers表

列名 数据类型 长度 约束
id int 11 NOT NULL
username varchar 50 default NULL
pwd varchar 50 default NULL
cx varchar 50 default NULL

表4-2 fangwuxinxi表

列名 数据类型 长度 约束
id int 11 NOT NULL
addtime varchar 50 default NULL
fangwumingcheng varchar 50 default NULL
fangwuleixing varchar 50 default NULL
tupian varchar 50 default NULL
zulinfangshi varchar 50 default NULL
chaoxianglouceng varchar 50 default NULL
mianji varchar 50 default NULL
fangwuzhuangtai varchar 50 default NULL
xiaoqu varchar 50 default NULL
xiangxidizhi varchar 50 default NULL
yuezujiage varchar 50 default NULL
yajin varchar 50 default NULL
fangwuxiangqing varchar 50 default NULL
faburiqi varchar 50 default NULL

表4-3:yonghu表

列名 数据类型 长度 约束
id int 11 NOT NULL
addtime varchar 50 default NULL
yonghuming varchar 50 default NULL
mima varchar 50 default NULL
xingming varchar 50 default NULL
xingbie varchar 50 default NULL
touxiang varchar 50 default NULL
shouji varchar 50 default NULL
shenfenzheng varchar 50 default NULL

表4-4:yuyuekanfang表

列名 数据类型 长度 约束
id int 11 NOT NULL
addtime varchar 50 default NULL
yuyuebianhao varchar 50 default NULL
fangwumingcheng varchar 50 default NULL
fangwuleixing varchar 50 default NULL
tupian varchar 50 default NULL
mianji varchar 50 default NULL
fangwuzhuangtai varchar 50 default NULL
xiaoqu varchar 50 default NULL
yuezujiage varchar 50 default NULL
zulinyueshu varchar 50 default NULL
zulinjine varchar 50 default NULL
yajin varchar 50 default NULL
yuyueriqi varchar 50 default NULL
yonghuming varchar 50 default NULL
shouji varchar 50 default NULL
shenfenzheng varchar 50 default NULL
sfsh varchar 50 default NULL
shhf varchar 50 default NULL

表4-5:zaixianqianyue表

列名 数据类型 长度 约束
id int 11 NOT NULL
addtime varchar 50 default NULL
hetongbianhao varchar 50 default NULL
fangwumingcheng varchar 50 default NULL
fangwuleixing varchar 50 default NULL
xiaoqu varchar 50 default NULL
yuezujiage varchar 50 default NULL
zulinyueshu varchar 50 default NULL
zulinjine varchar 50 default NULL
yajin varchar 50 default NULL
hetongjine varchar 50 default NULL
shengxiaoriqi varchar 50 default NULL
youxiaoqizhi varchar 50 default NULL
hetongneirong varchar 50 default NULL
yonghuming varchar 50 default NULL
shouji varchar 50 default NULL
sfsh varchar 50 default NULL
shhf varchar 50 default NULL

第6章 系统测试

6.1 测试目的

  随着互联网不断的发展,目前各大领域都利用互联网进行了信息的管理,质量问题是很重要的标准,也决定着是否有更多的人使用。所以软件的质量我们必须要把关,必须要把软件做好,做到位,少出不必要的问题,这样才能有更多的用户使用,并且得到更多的推广。所以,我们在开发完系统后,需要进行大量的测试,以确保系统的稳定性和可使用性,并要确定系统的质量能否做到满足不同人的需求。这是系统在开发设计中非常重要的环节,测试的结果直接关系到系统的好坏。

  集成测试:在系统测试当中会出现很多的问题,我们要及时的进行标注并且在进行测试的时候要采取自动化的测试,这样即准确又快速,而且不会出现疲劳,手动的测试很容易出现疲劳期,而且测试的结果也有时候会出错,所以在测试的时候才去自动测试时最好的测试方法。

  在测试的过程中及时的发现问题,并且进行问题的解决,这样设计出的系统可以正常稳定的运行,不会出现重大的问题。我所进行的软件测试参照以下三个步骤进行测试:

(1)模块测试:对系统中的每一项都进行针对的测试,发现并找到问题。

(2)系统测试:让系统长时间进行各种情况下的运行,反馈运行期间的稳定性问题并解决。

(3)验收测试:其他测试完成后,最后检测阶段,确保软件准备就绪。

6.2 测试方法

  在对系统进行测试的时候我们主要应用到两种测试的方法,通过测试我们就能找出可能存在的问题保证系统成功运行。

  从软件的内部构造和具体实施是否有关系的观点来看:黑盒测试和白盒测试。

1)黑盒测试:测试系统功能,当用户进行相应的操作时,系统是否能够及时且准确的反馈数据,并执行相应功能。需要对功能以及使用方法进行详细的测试,保证所有的操作信息都能够完整的输出输入。

2)白盒测试:主要是对系统的结构进行测试,了解系统在运行过程中是否可以正常的工作。

租房网站的测试也会从下面几方面进行:

(1)窗体测试:例如用户登录界面,在用户名和密码输入时,需要界面窗口弹出,给予用户反馈,我对窗口的设计进行了测试,确保每一个窗口在用户进行相应操作后,能够及时的弹出。

(2)数据跟踪:进行数据跟踪,我们就能知道系统功能是否在顺利的执行当中。将数据库中的相关的信息进行调动,弹出我们需要的相对应的数据信息。同时,在追踪过程中,我们也更容易的发现系统的问题所在,便于解决问题和维护系统。

(3)综合测试:完成上述测试后,需要对系统进行由内而外的重新检测,来宏观的发现系统中存在的问题,并且及时的进行解决,系统的设计要结合实际的使用情况有针对性的进行开发,可以满足不同人的需求。

6.3 功能测试

  本租房网站设计基本达到我理想的开发状态,在各个功能的运行方面,表现较为良好,基本满足用户的使用需求,及时矫正了较多的错误信息。总体说来,软件通过了相应的测试。

表6-1:用户登录测试表

模块名称 测试用例 预期结果 实际结果 是否通过
登录模块 用户名:001 密码:123 弹出错误提示,提示密码错误 弹出错误提示,提示密码错误 通过
登录模块 用户名:123 密码:002 弹出错误提示,提示用户名错误 弹出错误提示,提示用户名错误 通过
登录模块 用户名:001 密码:001 管理员登录成功 管理员登录成功 通过

表6-2:删除房屋信息管理测试表

模块名称 测试用例 预期结果 实际结果 是否通过
删除房屋信息管理模块 房屋信息管理名:最新通知 删除成功、页面自动跳转 删除成功、页面自动跳转 通过

表6-3:修改密码测试表

模块名称 测试用例 预期结果 实际结果 是否通过
修改密码模块 原密码:666 新密码:123 确认密码:123 弹出错误提示,提示原密码错误 弹出错误提示,提示原密码错误 通过
修改密码模块 原密码:001 新密码:123 确认密码:333 弹出错误提示,提示确认密码不一致 弹出错误提示,提示确认密码不一致 通过
修改密码模块 原密码:001 新密码:123 确认密码:123 密码修改成功 密码修改成功 通过

6.4 测试结论

  测试的过程要按照指定好的计划一步一步的实行,测试时候一定不要着急,并且将测试的结果进行详细的记录,我们在进行测试的时候做好选择自动化的测试,这样更加的准确也更快捷,如果采用人工测试的方法就不会这么的方便,很可能会出现一些问题,而且极其测试不会疲劳也不会出现问题。在测试的时候一定要非常专注,时刻关注着测试的结果,一旦发现异常及时进行修改,;最后,测试完之后的文档应该保存下来,方便以后测试时用到。

  通过测试,我们也可以直观的感受到,在我们最开始进行系统设计的时候,先把思路理清楚,才能有机会把代码写好。有好的逻辑性的代码在后期的测试中才能避免出现问题,也可以给我们节省很多的时间和不必要的操作。

第7章 结 论

   租房网站为用户提供了公平的、相互包容的、操作方便的使用系统,基本满足了用户的使用需要,以及我最初的开发目标和方向。Java语言、MySQL数据库等技术时是我开发的基础,这些技术都有各自的优点,学好这些技术,至关重要。通过这些优点设计出来的系统能够正常稳定的运行,并且可以满足人们的所有需求,在对系统的需求以及各个模块进行了详细的分析后,有针对性的进行设计,最后通过测试,系统能够正常的运行,该租房网站设计完成。

  本次开发过程中使用的是Java技术,该技术具有代码编写简单方便,对平台没有要求对技术方面也没有要求,并且有很好的面像对象性,所以在技术方面是相当成熟的。利用springboot框架作为系统主要的技术支持可以使得系统能够正常的运行并且实现相应的功能。在这次的系统的设计过程中遇到了很多的困难,幸好有老师同学们的帮助,在他们的帮助下完成了这次系统的设计。

  通过这次租房网站的开发,我参考了很多相关系统的例子,取长补短,吸取了其他系统的长处,逐步对该系统进行了完善,但是该系统还是有很多的不足之处,有待以后进一步学习。

  实践证明,租房网站有着非常好的发展前景,经过测试运行,系统各项功能都十分完善,界面漂亮,使用方便,操作容易,在技术理论上已经成熟。

参考文献

[1] 贝伊利 (Lynn Beighley),莫里森 (Michael Morrison),苏金国, 徐阳. Head First Java & MySQL(中文版)[M]. 中国电力出版社,2018,03.

[2] 潘凯华,刘中华, 等. Java开发实战1200例(第1卷)(附DVD-ROM光盘1张)[M]. 清华大学出版社,2019,01.

[3] 帕蒂拉(Armando Padilla),霍金斯(Tim Hawkins),盛海艳,刘霞. 高性能Java应用开发[M]. 人们邮电出版社,2019,11.

[4] 陈益材,等. Java+MySQL+Dreamweaver动态网站建设从入门到精通(附多媒体语音教学光盘)[M]. 机械工业出版社,2019,06.

[5] 高洛峰,LAMP兄弟连. 细说Java(精要版)(附DVD光盘1张)[M]. 电子工业出版社,2018,06.

[6] Lorna Mitchell,等. Java精粹:编写高效Java代码[M]. 机械工业出版社,2018,10.

[7] 列旭松,陈文. Java核心技术与最佳实践[M]. 机械工业出版社,2018,07.

[8] Symfon,CakeJava,Zend Bartosz Porebski,Karol Przystalski,Leszek Nowak, 付勇. Java框架高级编程:应用[M]. 清华大学出版社,2017,02.

[9] 波诺赛克 (Boroncxyk.T.),Elizabeth Naramore,薛焱. Web开发入门经典:使用Java6、Apache和MySQL[M]. 清华大学出版社 ,2017,07.

[10] 辛洪郁,张鑫. Java项目开发全程实录(第3版)[M]. 清华大学出版社,2018,11.

[11] 杨宇,等. Java典型模块与项目实战大全(附DVD-ROM光盘1张)[M]. 清华大学出版社,2018,01.

[12] 贾素来.常见动态网页技术比较[J].大众科技,2018,9.

[13] 西尔伯沙茨(Silberschatz.A.) . 计算机科学丛书:数据库系统概念(原书第6版)[M]. 机械工业出版社,2019,03..

[14]萨师煊,王珊.数据库系统概论[M].北京:高等教育出版社,2018:10-180.

[15]陈刚.Eclipse从入门到精通[M].(第2版).北京:清华大学出版社,2018:17-380.

[16]孙卫琴.精通Struts:基于MVC的Java Web设计与开发[M].北京:电子工业出版社,2017:19-421

猜你喜欢

转载自blog.csdn.net/2301_78335941/article/details/131056387