项目1——博客系统

此文转载自:https://blog.csdn.net/XCatherine/article/details/111750162#commentBox

一、绪言
今天又来更新博文了,学习Java也已经有一段时间了,经过这段时间的学习,我对Java有了更深一层的理解。从刚开始的HelloWorld到了现在的小型网页项目,这中间也经历了很多。话不多说,下面开始我的项目阐述,由于是第一次做,必然存在很多瑕疵,希望大家多多指正。。。。。
二、项目介绍
关于博客系统这个项目呢,相信很多小伙伴也做过,所谓一个莎士比亚也能创造出一千个哈姆雷特,每个人都有每个人的思路,大佬不就是靠吸取各种精华修炼而成的吗?所以有趣的灵魂和解法对于程序员来说还是有比要多接触接触。进入正题,提到博客系统,我们脑子里首先能想到的无非就是增删查改这些操作,不过也确实是这样。所以项目的内容就由此得出,如下:
1.登录系统
2.新建博客
3.查看文章详情
4.对文章进行修改
5.新增文章
6.删除选中文章
这就是博客系统的大体操作,其实也不难想嘛哈哈哈哈,不过说起来容易,做起来可就难了。大家一起来探讨下,我们要实现以上功能,要用什么技术去实现呢,是JavaSpringBoot框架,还是Web开发呢,介于本人目前的水平有限,还是选用了简单的Web技术,后端开发引用了maven配置依赖包,Servlet处理及响应客户端的请求。为了预处理用户的请求,并且可以对HttpServletResponse实现后处理,使用了过滤器Filter,当然它也可响应用户的请求。对于前端方面呢,无非还是三剑客:css、html、js以及jsp。为了创建快速动态网页,使用了Ajax技术,通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新,由于本人主要学后端开发,前端知识有限,所以对于前端知识也不能和大家详细述说,给大家推荐一个网站自行学习:https://www.w3cschool.cn/group/frontend.html。看完上面这一段,大家应该都晕了,下面是一些以上各种技术结合的图绘,帮助大家理解。
图1.Web应用的Ajax技术Web应用的Ajax技术
图2.本地计算机和远程服务器的工作过程
本地计算机和远程服务器的工作过程
图3.客户端与Tomcat的交互
客户端与Tomcat的交互
通过以上三图,相信大家对整个过程的技术应用有了大概的了解,下面就开始阐述项目的具体过程。
三、项目的完成过程
1.包的构建
在完成这个项目之前,当然需要先下载好需要的maven依赖包,接下来需要构思整个项目前端与后端需要哪些包,也就是我们需要在哪一层实现什么功能,每个包放置哪些类,我的构建如下:
图4.整个项目的包构建
整个项目的包构建
可以看到我的组件里有一个Exception包,这是自定义异常,用于统一处理发生的各种异常,Test包里的类用于测试,Util包里放置用于连接数据库的类,以及JSON的序列化与反序列化类,实现二进制文件与java对象的互相转换。通过序列化实现远程通信,也就是在网络传输中传送对象的字节序列。Servlet包里放对博客文章进行操作的类,它们都必须继承HttpServlet类,才能重写DoPost或者DoGet方法,用于响应客户端的请求,我的想法则是实现一个基类,让它继承HttpServlet类,其他类通过继承它,在它的基础上进行操作,就不用每个都继承HttpServlet类了,在每个类里我用的是DoPost或DoGet方法,还可以使用Service方法,它可以替代两者。

2.Dao层的实现
Dao层是和数据库相接的一层,在这一层里,我们完成了数据库的连接,比如配置URL等,和刚开始建立的数据表进行响应,设置占位符,编写SQL语句等,目的就是为了获取属性对应的数据,实现登录时查询数据库的功能。在这个项目中,我只设置了两张表,文章表(article)和用户表(user),所以只有两个Dao类,实现如下:
图5.LoginDao的实现
LoginDao的实现
图6.ArticleDao的实现
ArticleDao的实现

3.Servlet层的实现
AbstractBaseServlet类的设计,让它继承HttpServlet类,设置请求响应的编码格式,响应体的数据类型,对象的序列化,定义抽象类process,用于处理请求req、响应resp,这个包里的其他类都继承它,就不用再重新设置响应格式和数据类型。它的实现如下:
图7.AbstractBaseServlet的实现AbstractBaseServlet类的实现

LoginServlet类的实现,这个类用于实现用户登录,通过请求获取用户名和密码,再创建Session对象,通过会话功能拿到用户输入的用户名,再调用loginDao和数据库中已有的数据进行校验。对登录失败进行返回一个业务码和错误语句进行提示。它的实现如下:
图8.LoginServlet的实现LoginServlet类的实现
ArticleAddServlet类的实现,这个类用于发表新文章, 请求的数据类型是application/json,需要使用输入流获取 ,再进行反序列化操作获取对象,实现如下:
图9.ArticleAddServlet的实现ArticleAddServlet类的实现
查看文章详情,删除文章,文章列表,修改文章,这几个操作和新增文章类似,直接展示给大家看吧哈哈哈哈

                                                                                         图10.ArticledetailServlet的实现

ArticledetailServlet的实现
图11.ArticleDeleteServelet的实现
ArticleDeleteServelet的实现
图12.ArticleListServlet的实现
ArticleListServlet的实现
图13.ArticleUpdateServlet的实现
ArticleUpdateServlet的实现
为了丰富文章编辑功能,如图片上传等,我使用了富文本编辑器UEditor,引入了它的依赖,它的Servlet类实现如下:
图14.UEditorServlet的实现
UEditorServlet的实现

自定义异常处理如下:
图15.Exception的实现
Exception的实现

四、项目总结

(1)用了过滤器抓取请求与响应会话,富文本编辑器实现了图片上传功能。
(2)对Servlet和Tomcat的工作流程有了一定的了解。
(3)对前端语言html、js、jsp的代码编写有一定认识,知道前端的功能实现。
(4)项目的打包和部署,遇到的各种问题也会自己用Fildder抓包解决。

那么以上呢,就是整个博客系统项目的实现过程,有不懂的小伙伴cue我哟,随时欢迎(此处自带一个笑脸)!!!

   

更多内容详见微信公众号:Python测试和开发

Python测试和开发

原文地址:https://www.cnblogs.com/phyger/p/14202336.html