个人博客系统项目总结

简介

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

我们实现的功能有以下几个: 客户端和服务端的业务逻辑如下:

使用技术:

客户端:

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

服务端:

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

其它:

  1. Maven
  2. Tomcat
  3. MySQL

具体步骤:

  1. 完成前端基本页面 登陆页面展示: 文章列表页面: 新增修改文章页面:
  2. 设计数据库
  3. 定义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> T get(HttpServletRequest request, Class<T> 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反序列化失败");
        }
    }
}
经验分享 程序员 微信小程序 职场和发展