基于SSM的博客系统的设计与实现

摘要

博客为全球提供了一个创建便捷的自媒体平台的方法,个人可以用最低的成本在互联网中搭建起一个博客,不同的用户能够相互访问,并可以进行思想和知识上的交流,也正是由于博客具备操纵简单、连续更新、开放互动、展现个性的四个特征,在互联网中获得普遍的支持,博客的技术也越来越成熟,博客成为促进全球文化的多元化发展的重要力量。由于社会中大部分博客网站技术落后,已经难以满足当今时代背景的需求,例如系统的美观度、用户的体验、维护博客网站的学习成本等,所以利用新技术开发的系统解决以上的问题,符合技术革新的发展潮流。该博客系统基于Spring、Spring MVC、 Mybatis 三大框架共同建立的开发环境,利用 Maven 和 git 对系统进行统一的版本管理,实现一套简易和实用的博客项目。本文对博客进行全面分析,明确了系统和用户的需求,依据模块化的原理来设计系统的功能模块。

关键词:博客;网络社交;SSM;MVC

Abstract

 Blog is create convenient for global provides a method of the media platform, people can use the lowest cost of set up a blog in the Internet, different users can access each other, and intellectual communication, also it is because the blog has simple operation, continuously updated, the open interaction, display the four characteristics of personality.With the widespread support on the Internet and the increasingly mature technology of blogs, blogs have become an important force to promote the diversified development of global culture.Beacase of the backward technology of most blog sites in the society, it is difficult to meet the needs of the current era, such as the beauty of the system, user experience, maintenance of blog site learning costs, so the using of new technology to develop the system to solve the problems, in line with the development trend of technological innovation.The system is based on Spring + Spring MVC + Mybatis framework to build a development environment, using Maven and git to unified version management of the system, to achieve a set of simple and practical blog projects.This article carries on the overall analysis to the blog, makes clear the system and the user's demand, according to the modular principle, designs the system function module;In the section of database design, the conceptual structure design and logical structure design of database are described in detail.

Key wordsBlog; Social;SSM;

目录

1 绪论·· 1

1.1 研究目的及意义·· 1

1.2 研究现状·· 1

1.3 研究内容·· 1

1.4 论文的组织结构·· 2

2 需求获取·· 3

2.1 现系统概述·· 3

2.1.1 系统业务流程·· 3

2.1.2 系统功能模块·· 3

2.2 需求陈述·· 4

2.3 Use Case建模·· 4

2.3.1 Use Case图·· 4

2.3.2 定义活动者·· 8

2.3.3 活动图·· 8

3 系统分析·· 11

3.1 顺序图·· 11

3.2 协作图·· 14

4 系统设计·· 15

4.1 系统架构设计·· 15

4.2 动态行为建模·· 15

4.3 详细的类设计·· 16

4.4 详细功能·· 17

4.5 数据库设计·· 22

4.5.1 概念设计·· 22

4.5.2 逻辑结构设计·· 24

4.6系统编码设计·· 28

4.6.1持久层设计·· 28

4.6.2数据库层设计·· 28

4.6.3业务层设计·· 28

4.6.4WEB层设计·· 28

4.6.5拦截器设计·· 29

4.6.6工具类设计·· 29

5 系统实现·· 29

5.1 系统前台模块·· 29

5.2 登陆后台模块·· 31

5.3 文章管理模块·· 31

5.4 页面管理模块·· 32

5.5 链接管理模块·· 33

5.6 公告管理模块·· 33

5.7 评论管理模块·· 34

5.8 用户管理模块·· 34

5.9 个人设置模块·· 35

6 系统测试·· 37

6.1 测试目标和方法·· 37

6.2 黑盒测试·· 37

6.3 白盒测试·· 37

6.4 测试用例·· 37

6.4.1 后台登录测试用例·· 37

6.4.2 添加文章测试用例·· 38

6.4.3 添加分类测试用例·· 39

6.4.4 添加标签测试用例·· 40

6.4.5 添加页面测试用例·· 40

6.4.6 添加公告测试用例·· 41

6.4.7 回复评论测试用例·· 42

6.4.8 添加用户测试用例·· 43

结论·· 44

致谢·· 45

参考文献·· 46

附录A 中文译文·· 47

附录B 英文原文·· 48

1 绪论

1.1 研究目的及意义

研究目的:在二十一世纪,随着互联网的快速发展,催生了一系列互联网时代的产物,博客系统也是这些产物之一。在博客中,博主可以根据自己的想法和创意,搭建出属于自己的个人空间,用于个人表达和出版,将自己生活或者工作中息息相关的内容发布到博客中,同时也是一个知识过滤与积累的过程。

研究意义:基博客系统本质上就是一个社交系统,可以促进同一个文化圈或者技术圈的博主相互交流,是二十一世纪深度交流沟通的网络新方式,博客永远是共享与分享精神的体现。也正是因为博客具有操作简单、持续更新、开放互动、展示个性的四个特点,在互联网中获得了广泛的支持。由于日新月异的技术的发展,博客系统也具有一定的局限性,例如页面美观度,用户的体验感受,博主在更新和操作时不友好,网站的维护成本高,难以满足当今时背景的需求。因此利用新技术开发的博客系统来解决以上的问题,是符合时代发展潮流,系统也具备高复用性和广阔的市场背景。

1.2 研究现状

随着国内民众对网络暴力和博客的低门槛的重视,我国也针对国内的网站以及言论发布了规范网络传播的法规。鉴于互联网中信息交流的地位日趋重要,积极加强对互联网的规范的法律制度的管理与监管的同时加快有利于社会进步和信息传播。所以在认识到博客具有双刃剑的作用的同时充分发挥博客的积极作用。

开发人员通过 SSM 框架开发出一个完整的博客系统,博客能够正常使用并且开发人员可以持续更新维护系统,维护并处理系统出现的问题。

1.3 研究内容

SSM博客系统指的是使用Spring、SpringMVC、MyBatis三个框架技术开发的博客系统。系统采用SMM框架,Tomcat作为Web服务器,SpringBoot作为系统框架,使用IntelliJ IDEA作为开发工具;使用关系型数据库MySQL存储数据。

SSM 博客系统设计与实现的研究内容包括需求分析、系统设计、数据库设计、程序编码、测试与调试等方面。其中,需求分析主要针对博客系统的功能、性能和用户需求进行调研和分析;系统设计则涉及系统的架构、模块划分、技术选择等方面;数据库设计则是根据系统需求和数据特点确定适合的数据结构和关系;程序编码则是按照系统设计和数据库设计实现系统各个模块的功能;测试与调试则是对整个系统进行功能测试和性能测试,以确保系统能够满足用户需求并具有较高的稳定性和可靠性。

1.4 论文的组织结构

本论文将会首先介绍研究平台的目的和意义,并分析研究现状。其次根据软件的生命周期,进行现系统概述、可行性分析和需求陈述,再进行Use Case建模描述用例。使用顺序图和协作图对系统进行分析,使用状态图和活动图对系统进行动态行为建模,在描述详细功能后介绍数据库是如何设计的。随后对系统的主要功能进行实现和测试。最后对该系统做出总结。本文将从以下六个章节介绍博客系统平台,具体章节与内容如下:

第一部分 绪论。对本系统的研究目的和研究意义进行分析,对国内博客软件的设计、主要功能、存在的优点和不足等现状进行调研。描述论文的主要研究内容和组织结构,对开展论文工作进行说明。

第二部分 需求获取:首先对本系统进行经济可行性分析和技术可行性分析。然后介绍现系统概述、系统的业务流程和功能模块,并且进行详细的需求陈述和Use Case建模。

第三部分 系统分析:采用顺序图和协作图的方式对平台进行分析。

第四部分 系统设计:对本系统进行了设计。包括系统的架构设计、动态行为建模、详细的类设计、主要功能和数据库设计。

第五部分 系统实现:对本系统的主要功能进行了编码实现。

第六部分 系统测试:描述本系统需要的测试目标和测试方法,采用黑盒测试和白盒测试对平台的主要功能进行了测试。

2 需求获取

2.1 现系统概述

SSM博客系统是一款基于Spring+SpringMVC+Mybatis框架的开源博客系统,具有可扩展性强、易于维护等特点。

2.1.1 系统业务流程

博客系统的业务流程可以大致概括为:用户注册登录后,在个人中心中可以创建和管理自己的博客,包括撰写文章、上传图片、设置标签、分类等;博客管理后台可以进行博客内容的审核、编辑、删除等操作;博客前台展示有文章列表、分类列表、标签列表等,用户可以通过搜索等方式找到感兴趣的博客文章,进行阅读、评论和点赞等操作,同时也可以关注自己喜欢的博主,获取最新的博客信息。此外,还可以通过博客系统实现第三方账号登录、社交分享等功能。

2.1.2 系统功能模块

按照博客网站的要求对系统的功能进行需求分析,明确了系统需要完成的功能。该博客系统被分为系统前台和系统后台两个独立的模块,对应普通用户(游客)和管理员用户的操作。

系统前台实现文章阅读、文章打赏、文章点赞、查询文章、分享文章、评论文章等功能,系统后台被共 7 个子模块。博客系统模块需求描述图如图 2-1 所示。

图 2-1 模块功能描述图

Figure 2-1 Module Function Description Diagram

2.2 需求陈述

本博客系统提供了博客管理、分类管理、标签管理、文章管理等功能,用户可以通过博客系统来管理自己的博客,发布文章和评论,并与其他博客用户进行交流和互动。

需求如下:

1.用户管理

用户注册、登录、注销等基本功能

用户资料管理,包括头像、昵称、个人介绍等

用户权限管理,包括普通用户和管理员权限

2.博客管理

博客列表展示、搜索、分类等功能

博客的增加、编辑、删除等操作

支持上传图片

3.分类管理

分类列表展示、搜索等功能

分类的增加、编辑、删除等操作

4.标签管理

标签列表展示、搜索等功能

标签的增加、编辑、删除等操作

5.文章管理

文章列表展示、搜索、分类等功能

文章的增加、编辑、删除等操作

文章详情页面展示

6.评论管理

评论列表展示、搜索、审核等功能

评论的增加、编辑、删除等操作Use Case建模

2.3 Use Case建模

2.3.1 Use Case

1)普通用户(不需要注册)和管理员可以直接进入系统的前台查看点击的文章内容,对喜爱的文章可以点赞并且可以一定数额上的打赏,根据用户输入的文章相关的关键字全文搜索相关的文章。根据上述描述的功能,利用 UML 用例图直观的展现系统前台的功能,系统前台用例图如图 2-2 所示。

图 2-2 系统前台用例图

Figure 2-2 System foreground Use Case Diagram

2)游管理员可以查看所有的已发布或者存入草稿中的文章,包括其文章标题、文章归属的分类、文章是否发布和文章发表时间,可以对其进行编辑和删除操作。管理员点击列表中已发布的文章的标题可以跳转到前台对应的文章处。在编辑操作中,表单内容包括标题、内容、分类、标签、order 和状态,其中内容支持插入代码,order 对应的输入框中可以输入 1 到10 的数字,order 越大排序越靠前,最后管理员可以点击发布按钮或者草稿按钮。

管理员可以查看所有已经添加的分类和标签,包括名称和对应文章数量,支持编辑操作。添加分类和标签包括名称及其描述,添加分类时支持添加父节点,点击列表中分类或标签的名称可以跳转至前台,显示出对应的文章列表。只有标签或分类没有相关的文章才可以支持删除操作。

根据上述功能描述,通过 UML 用例图直观的展示系统后台的功能,文章管理模块用例图如图 2-3 所示。

图 2-3 文章管理用例图

Figure 2-3 Use Case Diagram of Article Management

3)管理员可以查看和添加系统前台显示的页面,页面列表包括别名、标题内容、页面内容、发布状态和可支持的操作。点击相应页面的标题可以跳转至前台页面中显示的页面,别名用于定位页面的路径,页面可以被编辑和删除。系统提供 4 个自定义的页面,分别为站点地图、文章归档、留言板、申请友链和站点地图。系统使用下拉列表显示已发布或显示的文章列表、分类列表和标签列表,文章归档中显示所有已发布文章的标题和对应发布的时间,留言板提供普通用户与管理员之间的交流,申请友链页面中提供表单,包括网站名称、网站地址、网站描述以及备注,其中自定义的页面无法删除。新建页面的表单包括别名、标题和内容,其中别名必须保证未重复,如果管理员对编辑的内容不满意,支持重置内容的操作。

图 2-4 页面管理模块用例图

Figure 2-4 Use Case Diagram of Page Management Module

4)管理员可以查看所有放置在前台界面底部的链接列表,列表包括名称、URL、联系方 式、创建时间、Order、状态和操作。点击列表中链接的URL,系统可以直接跳转至对应的网 站。管理员添加链接时需要提供名称、URL、联系方式、描述和Order,其中名称和URL 为必 填项,Order 默认是 0,Order 越大排名越靠前,编辑链接时管理员可以选择链接显示的状态。根据上述对链接管理的描述。

图 2-5 链接管理模块用例图

Figure 2-5 Use Case Diagram of Link Management Module

5)管理员查看公告列表,列表包括公告的标题、Order、状态和支持的操作,点击标题内容跳转至对应的页面,其中 Order 的大小决定显示的顺序。公告将显示在前台的菜单栏的下方,如果有多条公告,将轮换显示所有公告。

根据上述对公告管理的描述,通过 UML 用例图直观的展现系统后台公告管理模块的功能,公告管理模块用例图如图 2-6 所示

图 2-6 公告管理模块用例图

Figure 2-6 Use Case Diagram of Announcement Management Module

6)管理员可以查看普通用户和管理员在文章底部所有的评论,评论列表包括作者、评论 内容、对应的文章和提交的时间。鼠标悬浮在某一行评论内容时,显示对评论内容的操作,包括回复、编辑和删除。

根据上述评论管理的功能描述,通过 UML 用例图直观的展示系统后台评论管理模块的功能,评论管理模块用例图如图 2-7 所示。

图 2-7 评论管理模块用例图

Figure 2-7 Use Case Diagram of Comment Management Module

7)管理员可以通过系统检索到数据库中已存在的用户并通过列表的形式展示出来,列表包括用户名、昵称、电子邮件、文章、状态和支持的操作。系统支持编辑和删除操作,编辑操作中管理员可以上传头像,设置用户名、密码、昵称、Email、URL 和账号使用的状态,如果管理员对填写的内容不满意可以将其重置。

根据上述功能描述,通过 UML 用例图直观的展示系统后台的功能

8)管理员可以设置前台界面的菜单内容。页面显示前台系统中的顶部菜单和主要菜单的列表,包括名称、URL、显示顺序和操作。菜单内容分为顶部菜单和主要菜单,添加菜单项目时可以选择对应显示的菜单位置。

管理员可以设置网站的简要信息,包括网页名称、网页简介和网页关键词内容,并在网页中增加联络后台管理员的方式。根据上述对个人设置管理模块的描述,通过 UML 用例图直观的展现系统后台的功能,个人设置管理模块用例图如图 4-9 所示。

2.3.2 定义活动者

根据对SSM博客系统台需求陈述,可以划分出2个的活动者,分别为:管理员、用户。

2.3.3 活动图

活动图本质上是描述从一个动作到另一个动作的控制流的流程图,并通过显示参与行为的类的活动或动作来实现业务流程和工作流程的图形化建模[10]。

  1. 文章管理模块活动图,如图2-8所示。

图2-8 文章管理模块活动图

Figure 2-8 Visitor module activity diagram

  1. 页面管理模块活动图,如图2-9所示。

图2-9 页面管理模块活动图

Figure 2-9 System Administrator module activity diagram

3)链接管理模块活动图,如图2-10所示。

图2-10 链接管理模块活动图

Figure 2-10 Activity diagram of the attraction administrator module

3 系统分析

3.1 顺序图

博客系统顺序图描述了用户在博客系统中的操作流程,包括登录、创建博客、编辑博客、发布博客、查看博客等。该系统通过交互界面和数据存储等模块,实现用户和服务器之间的通讯和交互,提供了一个方便快捷的博客发布、分享、查看和评论的平台。

1)管理员可以创建、编辑和删除博客,核实博客评论和回复,审查用户投稿,并回复用户,维护博客系统的运行。

图3-1 管理员管理顺序图

Figure 3-1 Administrator management sequence diagram

2)该博客系统的顺序图展示了用户如何通过登录、浏览、发表文章以及评论等操作,与该系统进行交互的过程。

图3-2 用户顺序图

Figure 3-2 User sequence diagram

3.2 协作图

图3-3

图3-4

4 系统设计

4.1 系统架构设计

在应用程序开发中,模型代表一个存取对应数据的对象或载体,接受控制器的调遣,处理相关和数据。视图代表模型的可视化方式。控制器则控制对应的模型数据流向相应的视图,在后台数据更新的时候,前台的视图也应做出相应的变化。

MVC 模式的目标是实现动态化的软件结构设计,降低了后期编码人员对软件的维护和更新的成本,使程序的子模块能够被重复利用,程序的结构也变得简练直观。模式运作图如图 4-1 所示:

图4-1 系统架构图

Figure 4-1 System Architecture Diagram

4.2 动态行为建模

在文章的阅读页面中设置自定义调节字体大小的按钮,文章内容支持代码高亮格式,使页面整体简洁大方,文章底部支持点赞和分享,同时显示了文章的所属分类,在页面的底部有相关文章和猜你喜欢两个专栏,专栏是根据文章的分类和标签各自抽取5 篇文章显示的。页面右侧的热评文章则是展示出所有文章中点赞量最多的 8 篇文章,整个文章页面大方得体,内容丰富而不花哨。阅读文章的功能的活动图如图4-2所示。

图 4.2 文章显示活动图

Figure 4.6 Activity Chart of Article Display

4.3 详细的类设计

类图主要描述系统中各种类以及类之间关系的静态结构。SSM博客系统总类图的类设计包括用户、文章、标签、评论等多个类,它们相互关联,共同构成了一个完整的博客系统,实现了用户注册登录、文章发布和评论交流等功能。

图4-3 酒店信息控制器类图

Figure 4-3 Hotel Information Controller Class Diagram

4.4 详细功能

博客系统整体工作流程主要分为系统前台流程、用户登录流程、文章管理流程、页面管理流程、链接管理流程、公告管理流程、评论管理流程、用户管理流程和个人设置模块流程。

  1. 系统前台流程图如图4-4所示。

图 4-4 系统前台流程图

Figure4-4 System Front Office Flowchart

  1. 用户登录流程图如图4-5所示。

图 4-5 用户登录流程图

Figure 4-5 User Login Flowchart

  1. 文章管理流程图如图4-6所示。

图4-6 文章管理流程图

Figure 4-6 Article Management Flow Chars

  1. 页面管理流程图如图4-7所示。

图4-7 页面管理流程图

Figure 4-7 Page Management Flowchart

  1. 链接管理流程图如图4-8所示。

4-8 链接管理流程图

Figure 4-8 Link Management Flowchart

  1. 公告管理流程图如图所示。

4-9 公告管理流程图

Figure 4-9 Announcement Management Flowchart

  1. 评论管理流程图如图所示。

图4-10 评论管理流程图

Figure 4-10 Comment Management Flowchart

  1. 用户管理流程图如图所示。

图4-11 用户管理流程图

Figure 4-11 User Management Flowchart

  1. 个人设置模块流程图如图所示。

图4-12 个人设置模块流程图

Figure 4-12 Personal Settings Module Flowchart

4.5 数据库设计

4.5.1 概念设计

E-R图主要描述了软件在应用环境中的业务流程并且在该业务流程中所包含的各个客观对象与他们之间发生的活动 。根据上一章节中的对系统进行完整详细的需求分析,将系统的用例需求都抽象为数据 库中的实体对象,并搭建起 E-R 模型以展现概念结构设计。软件中设计出的实体有:用户 数据表、文章数据表、分类数据表、标签数据表、评论数据表、页面数据表、菜单数据表、公告数据表、链接数据表、个性化设置数据表。根据上述的实体,数据库设计的 E-R 图,实体 E-R 关系图如 4-13 所示

图 4-13 实体 E-R 关系图

Figure 4-13 Entity E-R Relationship Diagram

具体设计如下:

(1)用户表:包含的数据有用户 id,用户名字,用户密码,用户昵称,用户邮箱,用户相关链接,用户头像路径,用户最后登陆 ip,用户注册时间,用户最后 登陆时间,用户使用状态。对应的实体为用户(用户 id,用户名字,用户密 码,用户昵称,用户邮箱,用户相关链接,用户头像路径,用户最后登陆 ip, 用户注册时间,用户最后登陆时间,用户使用状态)。

(2)文章表:包括的数据有文章 id,发布文章的用户 id,文章标题,文章内容,文章阅读数,文章评论数,文章是否被评论,文章状态,文章显示顺序,文章更新时间,文章创建时间,文章摘要。对应的实体为文章对象。

(3)分类表:包括的数据有分类 id,分类名称,分类描述,分类排序,分类图标。对应的实体为分类对象。

(4)标签表:包括的数据有标签 id,标签名称,标签描述。对应的实体类为分类。

(5)评论表:包括的数据有评论 id,评论回复 id,回复人名称,评论文章 id,评论文章作者名称,评论文章作者邮箱,评论文章作者 url,评论作者头像,评论内容,评论ip 地址,评论创建时间,评论人角色。对应的实体为评论对象。

(6)页面表:包括的数据有页面 id,页面关键词,页面标题,页面创建时间,页面更新时间,页面阅读数量,页面评论数量,页面显示状态,对应的实体为页面。

(7)公告表:包括的数据有公告 id,公告标题,公告内容,公告创建时间,公告更新时间,公告显示状态,公告显示顺序。对应的实体为公告对象。

(8)菜单表:包括的数据有菜单 id,菜单名称,菜单路径,菜单等级,菜单图标,菜单顺序。对应的实体对象为菜单模型。

(9)链接表:包括的数据有链接 id,链接 url,链接名称,链接图片,链接描述,链接所有人昵称,链接所有人联系放是,链接更新时间,链接创建时间,链接显示顺序,链接显示状态。对应的实体为链接对象。

(10)个人设置表:包括的数据有设置 id,站点名称,站点描述,首页描述,首页关键词,主页头像,主页昵称,主页说明,联系方式。对应的实体为个性化设置模型。

4.5.2 逻辑结构设计

在编码系统前,开发人员需要对系统涉及的数据进行分类和设计,数据库设计的好坏 显著的影响着后续编码的难易程度,优秀的数据库能够节省空间,并且保证数据的完整性 和统一性,而糟糕的数据库则会产生数据冗余,存储空间的浪费等影响,所以数据库的设 计必须合理适当。根据建立的实体关系图,通过在给定表中添加额外的字段,可以减少系 统检索信息所需要的时间,或者在表中建立索引以方便检索。同时设计数据库时遵循范式 化设计,可以大幅度的减少数据冗余,数据表更新快且体积小,但也因查询需要关联多个表,在一定程度上检索的性能降低。以下是系统的数据库表:

表4-1 用户表

Table 4-1 User Table

字段名

类型

长度

是否为 null

说明

user_id

int

0

主键 自增

user_name

varchar

255

user_pass

varchar

255

user_nickname

varchar

255

user_status

int

255

表4-2 文章表

Table 4-2 Article Table

字段名

类型

长度

是否为 null

说明

article_id

int

0

主键 自增

article_user_id

int

0

article_title

varchar

255

article_content

mediumtext

0

article_view_count

int

0

article_summary

text

表4-3分类表

Table 4-3 Classification Table

字段名

类型

长度

是否为 null

说明

category_id

int

0

主键 自增

category_pid

int

0

category_name

varchar

50

category_description

varchar

255

表4-4 标签表

Table 4-4 Label Table

字段名

类型

长度

是否为 null

说明

tag_id

int

0

主键 自增

tag_name

varchar

50

tag_description

varchar

255

表4-5 评论表

Table 4-5 Comment Table

字段名

类型

长度

是否为null

说明

comment_id

int

0

主键 自增

comment_pid

int

0

comment_pname

varchar

255

comment_create_time

datetime

0

comment_role

int

0

表4-6 页面表

Table 4-6 Page Table

字段名

类型

长度

是否为null

说明

page_id

int

0

主键 自增

page_key

varchar

50

page_title

varchar

50

表4-7 公告表

Table 4-7 Announcement Form

字段名

类型

长度

是否为 null

说明

notice_id

int

0

主键 自增

notice_title

varchar

255

notice_content

varchar

10000

notice_order

int

0

表4-8 菜单表

Table 4-8 Menu Table

字段名

类型

长度

是否为 null

说明

menu_id

int

0

主键 自增

menu_name

varchar

255

menu_url

varchar

255

menu_level

int

0

menu_icon

varchar

255

menu_order

int

255

表4-9 链接表

Table 4-9 Link Table

字段名

类型

长度

是否为 null

说明

link_id

int

0

主键 自增

link_url

varchar

255

link_create_time

datetime

0

link_order

int

0

link_status

int

0

表4-10 个人设置表

Table 4-10 Personal Setting Table

字段名

类型

长度

是否为 null

说明

option_id

int

0

主键自增

option_site_title

varchar

255

option_site_descrption

varchar

255

option_aboutsite_qq

varchar

255

4.6系统编码设计

4.6.1持久层设计

在 WEB 项目中持久层对象对应数据库中的实体,数据库中实体对象的属性必须与持久层对象的属性一一映照。在数据库分析时,共抽象出 10 个数据库表,故在建立实体类时新建 10  个持久层对象, 持久层在项目中的包为 entity ,实体类分别包括 Aticle 、 ArticleCategoryRef 、ArticleTagRef 、Category 、Comment 、Link 、Menu 、Notice 、Options 、Page、Tag、User。

4.6.2数据库层设计

数据访问层负责接收业务层传来的数据请求,请求仅与数据层面相关,与业务无关,该层在项目目录中的mapper 包中,是根据持久层对象创建的DAO 层接口。包中的文件目录 包 括 ArticleCategoryRefMapper 、 ArticleMapper 、 ArticleTagRefMapper 、 CategoryMapper 、 CommentMapper 、 LinkMapper 、 MenuMapper 、 NoticeMapper 、 OptionsMapper、PageMapper、TagMapper、UserMapper。数据访问层中的 mapper 文件均为接口类,类中只有方法,并没有方法体。接口文件与项目目录中的resource 中的 mapper 文件夹中的映射文件对应。在映射文件中使用 mybatis 的数据库操作语句实现数据访问层中的方法。每一个数据访问层中的接口均有一个映射文件。

4.6.3业务层设计

业务层是以数据访问层为基础,前台转发的请求到达业务层后,由业务层处理前台发送的相关请求,但不涉及数据库的操纵,数据访问层将处理好的数据返回给业务层,由业务层进行封装后转发给 controller 层。设计业务层时在service 目录下创建持久层对象相应的 Java 接口文件及其实现类,有利于 service 层中方法的封装和独立性。 service 包中包括 ArticeService 、 CategoryService 、 CommentService 、 LinkService 、 MenuService 、 NoticeService、OptionsService、PageService、TagService、UserService。

4.6.4WEB层设计

WEB 层主要用于接收 JSP 页面传来的请求,将请求封装并调用业务层中对应的方法, WEB 层又从业务层中接收封装好的数据,再转发至相应的 jsp 页面。WEB 层在项目中的包为 controller,包括 admin 和home 两个文件夹分别代表前台和后台,负责处理前台和后台传来的请求。以 home 文件夹为例,其中包括文章控制器、分类控制器、评论控制器、主页控制器、链接控制器、公告控制器、页面控制器和标签控制器。

4.6.5拦截器设计

拦截器在中的使用的继承的方法主要是 preHandler(),即用户操作 JSP 时发起的请求在传到后台服务器前的操作,该方法在服务器启动后前台发起请求就被使用,拦截器 对 请 求进 行 过 滤 和 处 理 , 常 常 用 于 权 限 的 区 分 , 其 中 拦 截 器 共 有

HomeResourceInterceptor 和 SecurityInterceptor , 以拦截器中的权限拦截器为例:

if(request.getSession().getAttribute("user") == null) { response.sendRedirect("/login");}}

4.6.6工具类设计

项目开发过程中,有大部分方法需要重复使用且有一定代码量,所以将这种代码抽象出来并作为项目的工具类,也为以后其它项目打下基础。本项目使用到的工具类方法有获取请求的 ip 地址和MD5 加密方法。以类中的获取主机地址的方法为例:

if (ipAddress.indexOf(",") > 0) {

ipAddress = ipAddress.substring(0, ipAddress.indexOf(","));}}

5 系统实现

5.1 系统前台模块

当用户进入本系统主页后,通过浏览器可以直接显示出文章列表以及网站相关信息。浏览的用户点击相应的文章按钮进入阅读文章页面。系统前台界面上部包括菜单和搜索栏,左侧为文章列表,列表包括文章标题,部分内容和相关信息,信息包括阅读量,点赞数量 和阅读全文按钮。系统主页页面设计图如图 5-1所示:

图 5-1 系统主页设计图

Figure 5-1 System homepage design diagram

用户点击文章标题后系统转至阅读文章界面,而页面上方的菜单栏和搜索栏均不变,页面底部可以支持用户进行评论,已登录的管理员用户而已直接评论,普通用户在评论的时候需要填写个人信息,包括姓名,邮箱地址和评论内容。阅读文章设计图如图5-2所示。

图 5-2 阅读文章设计图

Figure 5-2 Reading article design diagram

5.2 登陆后台模块

用户编辑文章或点击登陆按钮时进入后台登陆界面,登陆时必须提供用户名或电子邮 件地址、密码,在设计实体时只有系统管理员和普通用户,所以不提供注册管理员的方式。若管理员选择记住密码,服务器则会在浏览器中保存下次登陆时自动获取表单内容。用户登录流程图如图 5-3 所示

图 5-3 登陆页面设计图

Figure 5-3 Landing Page Design

管理员成功进入后台后,点击文章下拉列表可以看到全部文章、写文章、全部分类、全部标签 4 个选项。

全部文章中展示了文章列表,包括标题、所属分类、状态、发布时间、操作和 id,同时实现了分页功能以美化界面。

管理员点击添加文章按钮后进入新增文章界面,标题、内容、分类、标签和状态,其中标题、内容、分类为必填项。页面底部加入温馨提示,即操作的提示,例如每篇文章的内容不要超过 500 万字。管理员编辑完成后即可提交,修改编辑文章与上述类似。

管理员点击全部分类,进入分类管理页面,其中包括分类列表和添加分类,分类列表中包括分类名称,文章数量,操作和id,在操作栏中只有不包含下级分类和文章的分类才可以删除。添加分类的表单中名称和父节点为必填项,编辑分类与添加分类类似。

5.3 文章管理模块

管理员成功进入后台后,点击文章下拉列表可以看到全部文章、写文章、全部分类、全部标签 4 个选项。

全部文章中展示了文章列表,包括标题、所属分类、状态、发布时间、操作和 id,同时实现了分页功能以美化界面。

管理员点击添加文章按钮后进入新增文章界面,标题、内容、分类、标签和状态,其中标题、内容、分类为必填项。页面底部加入温馨提示,即操作的提示,例如每篇文章的内容不要超过 500 万字。管理员编辑完成后即可提交,修改编辑文章与上述类似。

管理员点击全部分类,进入分类管理页面,其中包括分类列表和添加分类,分类列表中包括分类名称,文章数量,操作和id,在操作栏中只有不包含下级分类和文章的分类才可以删除。添加分类的表单中名称和父节点为必填项,编辑分类与添加分类类似。

管理员点击全部标签按钮直接进入标签管理页面。页面中显示标签列表和添加标签的按钮,标签列表中包括标签名称,文章数量,操作和id,在操作栏中只有不包含文章的标签才可以删除。添加分类的表单中名称为必填项,编辑分类与添加分类相似。文章列表界面设计图如图所示。

图 5-4 文章列表界面设计图

Figure 5-4 Design diagram of article list interfacrt

5.4 页面管理模块

管理员点击页面下拉列表中的全部页面按钮,系统界面跳转至页面列表,列表包括关键词、标题、内容、状态和操作,其中项目已包含四个无法更改的自定义页面,自定义页面包括站点地图、文章归档、留言板和申请友链。

管理员点击添加页面按钮进入添加页面界面,表单包括别名、标题和内容,三者都是必填内容,其中填写别名是必须保证别名没有与其他页面冲突,别名代表页面列表中的 key,编辑页面与新建页面相似。页面管理流程图如图 5-5 所示。

图 5-5 页面列表展示图

Figure 5-5 Page List Display

5.5 链接管理模块

管理员点击链接下拉列表,显示链接列表,列表包括名称、URL、联系方式、创建时间、Order、状态、操作和 ID,操作包括编辑和删除。点击 URL 可以直接跳转到链接的页面。

管理员点击添加链接按钮,跳转到添加链接界面,编辑的表单中包括名称、URL、联系方式、描述和 Order,其中名称和 URL 为必填项,Order 默认时 0,Order 越大排名越靠前,添加链接与编辑链接相似。链接管理模块流程图如图 5-6 所示。

图 5-6 链接列表界面设计图

Figure 5-12 Design diagram of link list interface

5.6 公告管理模块

管理员点击公告下拉列表中的全部公告,项目跳转到公告列表页面,列表包括标题、Order、状态、操作和 ID,其中操作包括编辑和删除,列表中 order 的大小决定显示的顺序。点击标题可以跳转至前台的公告具体页面中。

管理员点击添加公告按钮后,项目跳转至新增公告界面,界面中的表单包括标题和内容,两个选项都为必填项。添加完成后显示在首页的菜单栏下方,编辑公告与新增公告相似。公告管理流程图如图5-7所示。

图 5-7 公告列表展示

Figure 5-7 Announcement list display

5.7 评论管理模块

管理员点击评论按钮后,项目跳转至评论列表,列表包括作者、评论内容、回复的文章、提交的时间和 ID,将鼠标悬浮至评论内容处,可以回复或删除评论内容。

管理员点击回复可以跳转至回复评论界面,界面的表单内容包括原内容、我的昵称、我的邮箱、我的网址和我的回复。评论管理流程图如图5-8所示。

图 5-8 评论列表展示图

Figure 5-8 Display of Comment List

5.8 用户管理模块

管理员点击用户下拉列表中的全部用户,项目显示出用户列表,列表包括用户名、昵称、电子邮件、文章数、状态、操作和 ID,操作包括编辑和删除。管理员可以编辑其他的用 户。管理员点击编辑操作后xitong 跳转至指定用户信息页面,界面中有上传图片按钮、用 户名文本框、密码文本框、昵称文本框、Email 文本框、URL 文本框和状态文本开昂,其 中用户名、密码、昵称、Email 为必填项,管理员可以选择是否允许该用户的使用,编辑 与添加用户相似。

图 5-18 用户列表展示图

Figure 5-18 User list display

5.9 个人设置模块

管理员点击设置中的菜单按钮,可以查看首页中的菜单项目,并且支持编辑、删除和排序操作,添加菜单项目表单中包括名称、URL、图标和菜单位置。

管理员点击设置中的主要选项,可以设置网站的基本信息,包括网页名称、网页简介、首页摘要和网站关键词。管理员可以选择小工具标签,在该标签中可以更改首页中关于本 站的基本信息,如头像、昵称、说明、微信和 QQ。个人设置模块功能流程图如图 5-8 所 示:

图 5-8 菜单列表展示图

Figure 5-8 Menu List Display

6 系统测试

6.1 测试目标和方法

系统测试是将已经编码好的软件系统,通过计算机、相关的软件及数据和测试人员相互结合,在运行环境下对软件进行相关测试。系统测试的目标包括检查系统是否存在严重的系统错误和与系统需求相矛盾的地方。黑盒测试方法和白盒测试方法是在系统测试中常用方法的两种。

6.2 黑盒测试

黑盒测试方法,是最广泛应用于系统测试的方法。在黑盒测试中,设计测试用例的方法主要时等价类划分,也会用到边界值分析法,采用的方法是根据开发的项目的特点进行适当的选择。测试人员可以在完全不考虑软件内部结构和特点的条件下,设计系统需求测试用例,并验证软件的功能是否达到预期的效果。该方法主要是对软件页面和软件实现的功能进行测试。

6.3 白盒测试

白盒测试以了解程序内部的逻辑和有关信息为前台,测试软件某一功能的内部是否按照需求说明进行设计,它是从程序结构角度设计测试用例并且验证软件的逻辑结构,其中逻辑覆盖发是主要的测试方法。

6.4 测试用例

6.4.1 后台登录测试用例

功能描述:

  1. 管理员只有拥有账户才可以登录后台。
  2. 管理员只有输入正确的用户名或邮箱、密码才能登录成功。
  3. 用户输入错误的账户信息会在登陆页面出现提示信息。

表 6-1 管理员登录测试用例

测试用例 ID

场景

测试步骤

预期结果 备注

A1

登录页面

用户名为空

提示用户名为空

A2

登录页面

密码为空

提示密码为空

A3

登录页面

输入错误的用户名

提示用户名无效

或密码

A4

登录页面

输入正确的用户名

进入后台系统

和密码

登录后台系统的操作中,错误提示将以浏览器对话框的形式显示,部分测试结果效果图如图 6-1 所示。

图 6-1 登录测试结果效果图

Figure 6-1 Effect Chart of Login Test Results

6.4.2 添加文章测试用例

功能描述:

      1. 标题、分类为必填项。其中标题至少 5 个字符。
      2. 填写完的文章可以选择发布或者存入草稿。

表 6-2 添加文章测试用例

测试用例 ID

场景

测试步骤

预期结果  备注

B1

添加文章

标题小于 5 个字符。

提示标题过少。

B2

添加文章

正确填写标题和文

成功添加文章。

章内容为空,选择

发布。

B3

添加文章

正确填写标题和文

成功添加草稿。

章内容为空,选择

存入草稿。

当用户填写的内容没有满足成功添加文章的条件时,页面将出现文本框来提示需要输入的内容,部分测试结果效果图如图 6-2 所示。

图 6-2 文章添加测试结果效果图

Figure 6-2 Effect diagram of adding test results to the article

6.4.3 添加分类测试用例

功能描述:

填写名称、父节点、分类描述、图片样式。其中名称和父节点为必填项,若无父节点则选择无,分类最多只有两级。

表 6-3 添加分类测试用例

测试用例 ID

场景

测试步骤

预期结果  备注

C1

添加分类

名称为空。

提示名称为必填项。

C2

添加分类

正确填写名称及其

成功添加分类。

他选项。

图 6-3 添加分类测试结果效果图

Figure 6-3 Effect diagram of adding classification test results

当用户没有填写必填字段,系统在空白的文本框下提示该字段未填写。当成功添加分类后,页面将自动刷新并显示出添加的分类。部分测试结果效果图如图 34 所示。

6.4.4 添加标签测试用例

功能描述:

      1. 填写标签名称和标签描述,其中标签名称为必填项。
      2. 标签名称不能重复。

表 6-4 添加标签测试用例

测试用例 ID

场景

测试步骤

预期结果  备注

D1

添加标签

名称为空。

提示名称为必填项。

D2

添加标签

正确填写名称及其

成功添加分类。

他选项。

D3

添加标签

填写重 复标签名

未能成功添加分类。

称。

部分测试结果效果图如图 6-4 所示。

图 6-4 添加标签测试效果图

Figure 6-4 Effect of Adding Labels for Testing

6.4.5 添加页面测试用例

功能描述:

      1. 填写别名、标题和内容。
      2. 别名只能有 2 到 20 个字符。
      3. 别名仅允许由字母、下划线和减号组成。
      4. 别名不允许重复。

表 6-5 添加页面测试用例

测试用例 ID

场景

测试步骤

预期结果

备注

E1

E2

添加页面

添加页面

别名为空。

正确填写别名及其他选项

提示别名不规范。

成功添加页面。

E3

添加页面

填写重 复标签名

称。

未能成功添加分类。

E4

添加页面

填写别名超过 20 个

字符。

提示别名不规范。

E5

添加页面

别名填写除字母、

下划线和减号以外

提示别名不规范。

的字符。

当用户输入不规范的内容时,页面出现输入不规范的文本框,例如别名输入不规范,部分测试结果效果图如图 6-5 所示。

图 6-5 添加页面测试结果

Figure 6-5 Adding Page Test Results

6.4.6 添加公告测试用例

功能描述:

      1. 填写标题和内容。
      2. 公告的标题至少 5 个字符。

表 6-6 添加公告测试用例

测试用例 ID

场景

测试步骤

预期结果  备注

F1

添加公告

标题少于 5 个字符。

提示标题至少 5 个字

符。

F2

添加公告

正确填写标题及其

他选项。

成功添加公告。

当用户输入标题少于5 个字符时,页面会出现文本框提示标题至少需要5 个字符。测试结果效果图如图 6-6 所示。

图 6-6 添加公告测试结果效果图

Figure 6-6 Effect Chart of Adding Announcement Test Results

6.4.7 回复评论测试用例

功能描述:

  1. 管理员在后台和前台都可以回复评论。
  2. 普通用户即游客只能在前台回复评论,并需要提交个人的相关信息。

表 6-7 回复评论测试用例

测试用例 ID

场景

测试步骤

预期结果

备注

G1

回复评论

未登录在文章底部

回复评论

需要留下个人信息

G2

回复评论

登录后在文章底部

评论

直接可以回复评论。

回复成功后评论区域会以@和被评论人的名字开头,并在后面衔接回复的内容。部分测试结果效果图如图 6-7 所示。

图 6-7 回复评论测试图

Figure 6-7 Reply Comment Test Chart

6.4.8 添加用户测试用例

功能描述:

  1. 添加用户时可以上传头像,并且必须填写用户名、密码、昵称和 Email。
  2. Email 必须符合电子邮件地址标准,且不能与其他用户重复。

表 6-8 添加用户测试用例

测试用例 ID

场景

测试步骤

预期结果  备注

H1

添加用户

用户名、密码、昵

称和 Email 其中一

提示相应的字段必须

填写。

个未填写。

H2

添加用户

Email 格式填写不

提示 Email 格式必须

规范。

符合电子邮件格式。

H3

H4

添加用户

添加用户

用户名少于 4 位或

大于 12 位。

字段内容均正确填

提示用户名必须 4 到

12 位。

添加用户成功。

添加用户时用户名必须符合规范,否则页面出现文本框提示用户名必须 4 位到 12位,直达所有文本框的内容都符合规范,即可成功添加用户。部分测试结果效果图如图 6-8 所示。

图 6-8 添加用测试图

Figure 6-8 Test diagram for adding

结论

本系统主要采用JSP 的形式展示效果,详尽地阐述了基于SSM 框架的博客系统的设计与实现的流程,项目中设计后台时添加 Restful 风格,前端设计时加入 Ajax 技术,使软件的运行速度更加迅速,由 Spring 框架支持业务层基础,Mybatis 框架支持持久层基础。

用户阅读完某篇文章后,页面为用户提供相关文章和猜你喜欢,项目做到一定程度上的人性化设计,给用户带来良好的阅读和操作体验。

本系统在整体上基本实现了博客的基本功能,并加入了一些人性化设计,但是随着市面上博客的技术成熟以及开发博客时时间的限制,博客的美观度有待提高,博客可以加入目前主流的其它技术,使系统功能多样化的同时,保持代码的简洁性。

博客系统本质上就是一个社交系统,可以促进同一个文化圈或者技术圈的博主相互交流,是二十一世纪深度交流沟通的网络新方式,博客永远是共享与分享精神的体现。也恰好是由于博客具备操纵简单、连续更新、开放互动、展现个性的四个特征,在互联网中获得了广泛的支持。由于日新月异的技术的发展,博客系统也具有一定的局限性,例如页面美观度,用户的体验感受,博主在更新和操作时不友好,网站的维护成本高,难以满足当今时背景的需求。因此利用新技术开发的博客系统来解决以上的问题,是符合时代发展潮流,系统也具备高复用性和广阔的市场背景。

参考文献

  1. 龚兰兰, 凌兴宏. 基于敏捷开发的 SSM Web 应用开发实践[J/OL]. 实验技术与管理,2020(02):160-163+167[2020-03-08].
  2. 李昕妍.JavaEE   计算机软件设计及开发分析[J].网络安全技术与应用,2020(02):49-50.
  3. 鞠宏军, 佘春燕. 基 于 SSM 的高并发慕课网的设计与实现[J]. 电脑知识与技术,2020,16(02):54-56+90.
  4. 罗路腾,王贵鑫.基于 Springboot  的博客网站的设计与实现[J].科学技术创新,2019(33):64-66.
  5. 鞠宏军, 林涛. 基 于 Spring Boot 的博客系统的设计与实现[J]. 电脑知识与技术,2019,15(33):50-52+60.
  6. 马旭平,熊小军.基于 SSM 构建 RESTful API 服务[J].电子世界,2019(21):110-112.
  7. 吴昊.基于 JavaWeb       的学生云博客的设计与实现[J].电脑知识与技术,2019,15(16):57-58.
  8. 邓笑.       基于 Spring Boot 的校园轻博客系统的设计与实现[D].华中科技大学,2018.
  9. 戚 庆 燕 .     新媒体时代典型人物报道致效之思[J/OL].传媒观察:1- 6[2020-04-15].
  10. 韩伟华.“互联网+”环境中利用博客开展高中信息技术分层教学[J]. 中国信息技术教育,2020(Z1):177-178.
  11. Zheng Hongying. A Study on the Design of English Speaking Examination System Based on SSM Framework[J]. Journal of Sensors,2022,2022.

附录A 中文译文

Spring是一个扩展到所有层的解决方案。它贯穿应用程序的表示层、业务层和持久层。然而,集成Spring有两个主要特征:控制反转和依赖注入。在传统的Java编程中,使用对象 时会用到控制反转和依赖注入[16].在传统的Java编程中,当你使用对象时,MVC-Spring的 核心是集成,集成是由服务器控制器转发的。控制器调用处理程序映射类来完成请求到处 理该请求的相应处理程序的映射。如果Spring控制器调用处理程序映射类来完成请求到相  应处理程序的映射,处理程序就会处理请求。如果handler映射将请求映射到正确的处理程 序控制器,那么从Dao检索的数据将被存储在模型中并被查看;然后,您需要调用控制器 中的一些服务或Dao来操作数据[17].

MyBatis技术。MyBatis提供了数据库操作的透明性,并将其加载到JDBC中。MyBatis围绕SqlSessionFactory示例展开。MyBatis文件和实体类配置文件修改每个类映射文件的配置,以显示数据库所需的SQL字。每次数据库与它交互时, 它都通过SqlSession-sion factory获取SQL session,然后运行SQL命令[18].

JSP技术。本文中使用的主要工具是设计思维,即使应用程序跨平台且易于构建的其他东西;我们选择了流行的JSP来创建网页。JSP有很多优点。网页生成动态内容,使您能够轻松快速地创建Web应用程序。它也可以在多个平台上使用。JSP页面是一个简单的服务,在第一次请求时被转换成servlet[19].

在JADE中,数据库通过JDBC技术连接。只有连接到JDBC驱动程序后,数据库才能进行相应的添加、删除、修改和查询操作。大多数数据库都包含ODBC驱动程序,因此 JADE也可以通过ODCB驱动程序连接到Oracle、Sybase、MSSQLServer和MSAccess等数据库。此外,个性数据库的发展也有助于JSP方法的改进。开发者可以用它来创建自己的数据库。这允许web开发人员像使用熟悉的工具一样使用令牌库[20].

该技术支持跨州平台,通过一系列技术工具,JSP可以扩展到企业级支持和分散应用程序。因为JSP是J2EE系统架构的一部分,所以它是基于Java的。因此,JSP技术可以支持更复杂的web应用程序。Java具有适用于JSP的所有优势,比如复杂的库存管理和安全机制以及多平台支持。

附录B 英文原文

Spring is a solution that extends to all layers. It runs through the presentation, business, and persistence layers of the application. However, integrating Spring has two main features: control inversion and depen- dency injection. In traditional Java programming, control inversion and dependency injection are used when you use objects [16]. In traditional Java programming, when you use objects, the core of MVC-Spring is integration, which is forwarded by the server controller. The controller calls the handler mapping class to complete the mapping of the request to the corresponding handler which handles the request. If the Spring controller calls the handler map class to complete the mapping of the request to the corresponding handler, the handler processes the request. If then the han- dler map maps the request to the right handler controller, the data retrieved from Dao will be stored in the model and viewed; then, you need to call some service or Dao in the controller to manipulate the data.

MyBatis Technology. MyBatis provides the transpar- ency of the database operation and loads it into JDBC. MyBatis revolves around the SqlSessionFactory example. MyBatis files and entity class configuration files modify the configuration of each class mapping file to display the SQL words required by the database. Every time the database interacts with it, it gets the SqlSession through the SqlSes- sionFactory and then runs the SQL commands

JSP Technology. The main tool used in this paper is design thinking, i.e., other things to make the application cross-platform and easy to build; we have chosen the popu- lar JSP to create web pages. JSP has many advantages. Web pages generate dynamic content, enabling you to create web applications easily and quickly. It can also be used on multiple platforms. A JSP page is a simple service that is converted into a servlet on the first request

In JADE, the database is connected through JDBC technology. Only after connecting to the JDBC driver, the database can add, delete, modify, and query operations accordingly. Most databases include ODBC drivers, so JADE can also connect to databases such as Oracle, Sybase, MSSQLServer, and MSAccess through ODCB drivers. In addition, the development of personality databases has con- tributed to the improvement of JSP methods. Developers can use it to create their own databases. This allows web developers to use token repositories like familiar tools

The technology supports interstate platforms, and with a range of technical tools, JSP can be extended to enterprise- level support and decentralized applications. Because JSP is part of the J2EE system architecture, it is Java-based. As a result, JSP technology can support more complex web appli- cations. Java has all the advantages that apply to JSP, such as sophisticated inventory management and security mecha- nisms and multiplatform support.

  • 17
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光头勇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值