个人博客项目总结

一、总览:

1.目标

熟悉数据库相关知识,数据库表的设计,基本CRUD操作,JDBC操作,Servlet处理HTTP请求,HTTP相关知识,请求方法,响应状态码,Session的基本使用,理解项目开发流程

2.开发环境与技术栈

  • Windows10
  • Maven
  • Servlet
  • MySql
  • Jackson
  • ajax
  • UEditor

3.功能说明

输入URL访问到登录页面,成功登陆之后对文章进行一系列操作

  • 用户登录
  • 显示文章列表
  • 对文章列表进行增删改查操作
  • 上传图片操作

4.前后端接口

要实现功能,需要先明确前后端约定好的接口,此项目主要实现对博客文章内容的增删查改操作,所以只实现了相应的接口,需要说明的是,接口的定义一般是前后端约定好的,所以和前端代码息息相关.前端需要什么数据以及需要什么格式的数据,也会在接口中体现

4.数据库的设计

本项目采用了两个表,1是用户表实现对用户的管理,2是文章列表实现对文章的管理,源码如下:

drop database if exists servlet_blog;
create database servlet_blog character set utf8mb4;

use servlet_blog;

create table user(
    id int primary key auto_increment,
    username varchar(20) not null unique,
    password varchar(20) not null,
    nickname varchar(20),
    sex bit,
    birthday date,
    head varchar(50)
);

create table article(
    id int primary key auto_increment comment'账号',
    title varchar(20) not null,
    content mediumtext not null,
    create_time timestamp not null default now(),
    view_count int default 0,
    user_id int,
    foreign key(user_id) references user(id)
);

insert into user(username,password) values('a','1');
insert into user(username,password) values('b','2');
insert into user(username,password) values('c','3');

insert into article(title,content,user_id) values ('快速排序','public ...',1);
insert into article(title,content,user_id) values ('冒泡排序','public ...',1);
insert into article(title,content,user_id) values ('选择排序','public ...',1);
insert into article(title,content,user_id) values ('归并排序','public ...',2);
insert into article(title,content,user_id) values ('插入排序','public ...',2);

5.待改进

  • 数据库连接池,通过双重校验所的单例模式来完成
  • Filter过滤器完成用户会话的统一管理
  • 富文本编辑器实现博客文章的展示,及图片上传
  • 没有做用户会话管理
  • 没有做注册新用户功能
  • 没有做文章列表接口的统计访问量(内存实现)

6.项目的执行流程

在这里插入图片描述

7.详细说明

1.请求网页

浏览器封装请求为http协议格式,响应内容,会渲染为网页,浏览器自动请求网页上的资源(css,js,img)

2.js发送ajax请求

绑定网页的用户事件,写js代码完成ajax异步请求,服务端响应的数据由js代码解析,并完成功能(如弹出框,动态生成网页等等)

4.tomcat

提供服务:接收请求的http数据,解析为Servlet的对象(request,response).接收的http数据,url,请求方法,header,body在request中,通过api操作(封装),设置要响应的内容,返回给客户端由Tomcat自动封装成响应内容

5.Servlet

每次客户端请求.如果映射到资源,如果是Servlet资源,就调用Servlet对象的service方法
步骤:
(1)获取请求数据: 一定要检查请求数据格式及数据类型queryString及请求体表单数据类型: request.getParameter()请求数据类型为application/json,请求体就是json字符串:通过输入流获取request.getInputStream()
(2)如果请求数据是json,反序列化为java对象
(3)业务逻辑处理:校验,业务条件逻辑,jdbc数据库操作(使用请求数据)
(4)业务操作的结果(数据库操作的结果:结果集)一返回对象, 至少有一一个是否成功的标识
目前的实现:没有抛异常就是成功抛异常:父类模版方法处理异常
(5)由Servlet父类, 统一处理: 响应数据格式,异常处理
要明确,每个代码中的对象,到底是请求解析后的,还是返回给客户端响应的数据

二.测试用例

在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值