jsp+servlet搭建JavaWeb-Version1

LifeCat系列Javaweb学习项目(一)


GitHub源码:https://github.com/kevinten10/lifecatweb

引言

LifeCat是一个Javaweb的项目,它的设计目标是智能化的儿童成长相册记录系统。主要业务有用户模块的管理,图像上传与图像展示,朋友圈动态的发表,使用机器学习的图像分类与图像管理等。

现阶段由五部分组成,基于STM32开发板的实体电子相册,配套的Android相册应用,以及主要部分Javaweb。

其中核心部分Javaweb分为三个模块:
1、version1为web服务网站的初级版本,使用基本的jsp+servlet+mysql搭建,前端使用基本的html+css+js组成,同时jsp中使用了JSTL标签,采用了bootstrap的样式库以及jquery库,实现了登录注册逻辑的处理,数据表的CRUD基本操作以及图片上传展示等基本功能。
访问文章:

2、version2为web服务网站对应的后台管理系统,后端使用了SSM(spring+springmvc+mybatis)框架,MySQL数据库结构和version1相同。前端对version1的jsp页面进行了改进,抛弃了jsp而全部使用html,使用js+jquery实现前端操作。html使用了组件化的理念,通过js动态的进行tap切换。同时使用Ajax发送请求。
访问文章:

3、version3为新版的web服务网站,在version1及version2的数据库结构上进行了改进,加入了如权限、评论等新模块,采用了前后端分离的理念,后端采用springboot搭建,同时采用了maven多模块化开发,项目进行了清晰的分层。前端采用vuejs搭建,实现了更美观的界面设计。
访问文章:

本文为version1 jsp+servlet+mysql实现基础版本:

访问链接


项目目录结构


@Web目录

  • webapp
    • include
      • homePage.jsp
        // 用户主页body内容部件
      • footer.jsp
        // 页脚部件
      • header.jsp
        // 页眉部件
      • top.jsp
        // 页面标题栏部件
    • WEB-INF
      • imageshow.jsp
        // 用户图片展示界面
      • imageshow2.jsp
        // 用户分类图片展示界面
      • updiary.jsp
        // 上传日记
      • upimage.jsp
        // 上传图片
      • userhome.jsp
        // 用户主页
    • index.jsp
      // 登录/注册界面

@Java目录

  • src
    • main.java.com.wang
      • openfunc
        // 开放接口层 :接收Android端HTTP请求, 并返回请求结果
      • doo
        // DO包 :对应于数据库表结构, POJO类型
      • dto
        // DTO包 :数据传输对象, 对应逻辑实体,采用构建者模式 或 工厂模式
      • dao
        // DAO协议层 :定义了DAO层的协议, 接口层, 通过态工厂获取
      • daoimpl
        // DAO实现层 :通过具体实现, 执行数据库交互, 本例中实现了jdbc形式
      • manager
        // Manager层 :DAO层的抽象逻辑操作,使用外观封装了DAO的操作,Manager层通过工厂获取
      • filter
        // Filter过滤器 :对所有请求执行Encoding过滤, 对*.do请求执行Form表单过滤
      • form
        // Form表单验证 :对相应表单执行过滤, 确保格式编码等, 返回Result
      • exfunc
        // 外部接口 :通过java call shell方式, 调用本地python脚本, 执行机器学习操作
      • controller
        // Web层 :通过请求内容, 调用相应Service, 转发到Service并获取返回结果
      • service
        //Service层 :执行具体业务逻辑, 并且通过try-catch处理底层抛出异常, 传输DTO到表现层
      • util
        // 工具类 :包括时间类, 连接类, 图片写入操作, 主机配置等
      • action // 安全目录WEB-INF转发机制
      • constant
        // 配置常量类 -> 使用properties文件进行配置
      • observer
        // 观察者,获取主题的信息
      • subject
        // 主题,监听网站流量和在线人数的变化
    • test.java.com.wang
      • Test
        // 单元测试

@应用分层

  • 上层依赖于下层
  • 箭头关系表示可直接依赖

    • 1.开放接口层: (openfunc包)
      • 可直接封装Service方法暴露成RPC接口;
      • 通过web封装成HTTP接口, 可进行远程调用
    • 1.终端显示层: (web包)
      • MVC-表现层: 模板渲染层, 主要是JSP渲染
    • 2.Web层: (controller包-ActionServlet)
      • MVC-控制器层: 负责转发请求
      • 对访问控制进行转发, 对各类基本参数校验
    • 3.Service层: (service包-接口)
      • MVC-模型层: 处理抽象业务逻辑, 具体的业务逻辑服务层
      • 对request对象进行处理和转发
    • 4.Manager层: (manager包-接口)
      • DAO逻辑层, 接收DO对象, 调用DAO层对DO执行具体操作
      • 对service层的下沉处理: 抽象业务逻辑->抽象DAO逻辑
    • 5.DAO层: (dao包-接口)
      • 对Manager层的下沉处理: 抽象DAO逻辑->具体DAO操作
      • DAOImpl层为具体实现类, 执行具体jdbc操作, 进行数据库交互
    • 6.外部接口层: (exfunc包)
      • 调用外部python接口, 实现机器学习的操作
    • 以上调用的返回类型 Result接口

@请求流程分析


环境部署


文档目录


界面展示


四、项目源码

项目中标注了大量的注解,其实是比较容易读的,基本都覆盖了,若出错则认真查看日志,找到相关内容修改即可

GitHub:https://github.com/kevinten10/lifecatweb

相应的version2项目:
文章: https://zhuanlan.zhihu.com/p/41185446
GitHub: https://github.com/kevinten10/SSM-lifecat

相应的version3项目:
文章: SpringBoot搭建JavaWeb后端-Version3
GitHub: https://github.com/kevinten10/springboot-lifecat

猜你喜欢

转载自blog.csdn.net/wsh596823919/article/details/81389554