个人博客系统项目总结

简介

在学习JavaSE及JavaWeb过程中,为了能够熟练运用自己所掌握的知识并将其融会贯通,因此搭建了一款个人博客系统来检验自己的能力以及对知识的掌握。

我们实现的功能有以下几个:
个人博客系统项目总结_第1张图片
客户端和服务端的业务逻辑如下:
个人博客系统项目总结_第2张图片

使用技术:

客户端:

  1. 使用JSP,JavaScript,CSS,JQuery,Bootstrap作为客户端页面开发
  2. UEditor富文本编辑器前端插件

服务端:

  1. Servlet,JDBC,Jackson作为JSON数据格式与Java对象序列化/反序列化工具

其它:

  1. Maven
  2. Tomcat
  3. MySQL

具体步骤:

  1. 完成前端基本页面
    登陆页面展示:
    个人博客系统项目总结_第3张图片
    文章列表页面:
    个人博客系统项目总结_第4张图片
    新增修改文章页面:
    个人博客系统项目总结_第5张图片
  2. 设计数据库
    个人博客系统项目总结_第6张图片
  3. 定义Servlet请求接口

定义Servlet请求接口

  1. 设计自定义异常
    我们设计自定义异常,使其继承RuntimeException并且重写他的构造方法,这样子在我们的项目使用或者调试环节会清楚的显示错误信息,方便我们使用或者调试。
package com.jerome.exception;

import lombok.Getter;
import lombok.Setter;


@Getter
@Setter
public class BusinessExceeption extends RuntimeException {
    private String code;

    public BusinessExceeption(String message) {
        super("业务异常"+message);
        code = "401";
    }

    public BusinessExceeption(String message, Throwable cause) {
        super("业务异常"+message, cause);
        code = "401";
    }
}

  1. 设计JSON序列化/反序列化工具类
package com.jerome.util;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.jerome.exception.SystemException;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.text.SimpleDateFormat;


public class JSONUtil {

    public static String format(Object object) {
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
        try {
            String result = objectMapper.writeValueAsString(object);
//            System.out.println(result);
            return result;
        } catch (JsonProcessingException e) {
            e.printStackTrace();
            throw new SystemException("JSON解析错误" + object);
        }
//        return null;
    }

    public static  T get(HttpServletRequest request, Class clazz) {
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
        try {
            return objectMapper.readValue(request.getInputStream(), clazz);
//            System.out.println(result);
        } catch (IOException e) {
            e.printStackTrace();
            throw new SystemException("JSON反序列化失败");
        }
    }
}

你可能感兴趣的:(个人博客系统)