Java-动态数据接口

  • 实现效果

    动态数据接口
    动态数据接口
  • axios 异步请求

    请求与渲染
    请求与渲染

实现过程总结

  • 数据库与java 实体类映射(ORM)

    实体类映射
    实体类映射
  • servlet 处理axios 发起的异步请求

    servlet 处理对应请求
    servlet处理对应请求
  • 页面响应

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    java 层面:

    实体类转换为 JSON字符串 通过 response.getWrite().write(jsonString)

    JOSN 转换工具可以使用如下:

    1. FastJson
    2. Jackson
    3. Gson
    ...


    浏览器层面:
    JSON.stringfy()
    JSON.parse()

  • 细节注意

    • 参数校验

    • 优化相关逻辑

    • 优化servlet,封装 BaseServlet

    • 数据类型

      1
      2
      3
      4
      5
      文本框的数据为 “字符串”

      数值类型需要通过如下转换:
      Integer.parseInt(stringNumber)
      Integer.valueOf(stringNumber)

Demo源文件

  • Servlet

    • dao

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      package com.example.book.dao;

      import com.example.book.entity.BookInfo;

      import java.util.List;

      public interface BookInfoDao {

      /**
      * 根据 ID 查询
      *
      * @param booName 书籍名称
      * @return BookInfo对象
      */
      BookInfo selectBookByName(String booName);

      /**
      * 查询所有书籍
      *
      * @return BookInfo对象
      */
      List<BookInfo> selectAllBook();

      /**
      * 购物车添加
      *
      * @param bookId 根据书籍id
      * @param count 添加的数量
      * @return 受影响行数
      */
      int addInCartCount(String bookId, int count);

      /**
      * 购物车减少
      *
      * @param bookId 根据书籍 id
      * @param count 减少的数量
      * @return 受影响行数
      */

      int reduceCardCount(String bookId, int count);
      }

    • server

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      package com.example.book.service;

      import com.example.book.entity.BookInfo;

      import java.util.List;

      public interface BookInfoService {
      // 阅读一本书
      BookInfo lookUpBookByName(String bookName);

      // 整理所有书籍
      List<BookInfo> organizingBooks();

      int editAddBookInShoppingCart(String bookId, int count);

      int editReduceBookInShoppingCart(String bookId, int count);
      }

    • 请求与处理controller

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      package com.example.book.controller;

      import com.alibaba.fastjson.JSON;
      import com.example.book.entity.BookInfo;
      import com.example.book.service.BookInfoService;
      import com.example.book.service.impl.BookInfoServiceImpl;

      import javax.servlet.ServletException;
      import javax.servlet.annotation.WebServlet;
      import javax.servlet.http.HttpServlet;
      import javax.servlet.http.HttpServletRequest;
      import javax.servlet.http.HttpServletResponse;
      import java.io.IOException;
      import java.util.List;

      @WebServlet(name = "ShowAllBookInfo", value = "/showAllBookInfo")
      public class ShowAllBookInfo extends HttpServlet {
      private BookInfoService bookInfoService = new BookInfoServiceImpl();

      @Override
      protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      List<BookInfo> bookInfos = bookInfoService.organizingBooks();
      String jsonString = JSON.toJSONString(bookInfos);
      System.out.println(jsonString);
      response.setContentType("application/json;charset=utf-8");
      response.getWriter().write(jsonString);
      }

      @Override
      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

      }
      }

    • 前端

      • 使用表格展示数据Element-UI
      • axios 进行异步请求
      • JSON 格式化插件选择FeHelper
      • 过滤器Vue 配置项