JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统

基于Tomcat, Servlet, JSP的简单作业管理系统

目录

  • 基于Tomcat, Servlet, JSP的简单作业管理系统
    • 前言
      • *2020年3月25日更新*
      • *2020年3月26日更新*
      • *2020年4月8日更新*
      • *2020年4月16日更新*
      • *2020年5月15日更新*
      • *2020年6月19日更新*
    • 知识基础
      • 什么是Servlet
      • 什么是JSP
      • Servlet与JSP有什么区别
    • 系统功能介绍
    • 环境
    • 系统设计
      • 项目结构
      • 数据库设计
      • 交互结构
    • 功能展示
      • 系统首页
      • 老师
        • 老师首页
        • 查看所有学生
        • 添加学生
        • 布置作业
        • 老师查看所有作业
        • 老师查看某一作业提交情况
      • 学生
        • 学生首页
        • 学生查看所有作业
        • 提交作业
    • 代码仓库

前言

本文主要介绍一个超级简单的作业管理系统的实现。这是我JavaEE课程的第一次作业,因为并没有Web的基础,所以网页设计十分简陋,程序设计也存在着很多不足之处,欢迎大家讨论指正。代码地址见文章末尾。

2020年3月25日更新

目前已经改造成了Maven项目,并且使用了HikariCP数据库连接池。新版项目详情见代码仓库的2.x分支。

2020年3月26日更新

使用Spring MVC架构。新版项目详情见代码仓库的3.x分支。

2020年4月8日更新

引入Spring IoC。新版项目详情见代码仓库的4.x分支。

2020年4月16日更新

引入切面,并手动进行事务管理。详情见代码仓库的5.x分支。

2020年5月15日更新

引入MyBatis。详情见代码仓库的6.x分支。

2020年6月19日更新

经过一学期的学习,我基于Vue和SpringBoot重写了一个前后端分离的简单的作业管理系统,详情见JavaEE 笔记03:基于Vue,SpringBoot的前后端分离的简单作业管理系统

知识基础

什么是Servlet

Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统_第1张图片

Servlet架构


Servlet本身是一个接口,其中定义了5个方法,前3个与Servlet的生命周期相关。

void init(ServletConfig config) throws ServletException
void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException
void destory()
String getServletInfo()
ServletConfig getServletConfig()

JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统_第2张图片

Servlet执行流程


在使用时,我们可以继承HttpServlet类覆盖doGet、doPOST方法来实现功能。可以使用@WebServlet注解,省去在web.xml中配置映射的步骤。

// name = "HelloServlet":servlet名称,相当于web.xml中的
// urlPatterns = "/hello":servlet的访问路径,相当于
@WebServlet(name = "HelloServlet",urlPatterns = "/hello")
public class MyServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 实现GET功能
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 实现POST功能
    }
}

什么是JSP

JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。
JSP实际上是一种Java Servlet,主要用于实现Java Web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。JSP可以通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。

JSP有9个内置对象:

  • request:封装客户端的请求,其中包含来自GET或POST请求的参数
  • response:封装服务器对客户端的响应
  • pageContext:通过该对象可以获取其他对象
  • session:封装用户会话的对象
  • application:封装服务器运行环境的对象
  • out:输出服务器响应的输出流对象
  • config:Web应用的配置对象
  • page:JSP页面本身(相当于Java程序中的this)
  • exception:封装页面抛出异常的对象

JSP的生命周期:

  1. 编译阶段:servlet容器编译servlet源文件,生成servlet类
  2. 初始化阶段:加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法
  3. 执行阶段:调用与JSP对应的servlet实例的服务方法
  4. 销毁阶段:调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例
    JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统_第3张图片
    JSP生命周期


Servlet与JSP有什么区别

JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统_第4张图片

Servlet与JSP

Servlet是服务器端的程序,动态生成HTML页面发送到客户端,但是这样程序里会有很多out.println(),并且Java与HTML混在一起,非常混乱,所以后来Sun公司就推出了JSP。JSP可以说是一种特殊的Sevlet,每次提供服务时,都先由JSP引擎转化为类Servlet的Java代码,然后再编译成可执行类文件执行,在执行过程中,Servlet 产生 HTML 格式的输出并将其内嵌于 HTTP Response 中上交给 Web 服务器。

Servlet与JSP的关系可以概括为以下几点:

  • JSP是Servlet技术的扩展,JSP经转化后是"类Servlet"
  • Servlet侧重于业务逻辑,且逻辑控制放在Java代码中,完全从表示层中的HTML里分离开来
  • JSP侧重于视图,是Java和HTML组合成的扩展名为.jsp的文件
  • 在MVC架构模式中,JSP适合充当视图(View)而Servlet适合充当控制器(Controller)

系统功能介绍

JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统_第5张图片

环境

  • macOS Catalina 10.15.3
  • IntelliJ IDEA Ultimate 2019.3.3
  • Java SE 11.0.5 LTS
  • MySQL 8.0.19
  • MySQL Connector for Java 8.0.19
  • Apache-Tomcat 8.5.51

相关的环境配置过程可以看我上篇文章:https://blog.csdn.net/Yiang0/article/details/104665062

系统设计

项目结构

  • src
    JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统_第6张图片
    src包结构


JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统_第7张图片

类图


  • web
    JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统_第8张图片
web包结构

数据库设计

JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统_第9张图片

数据库结构

交互结构

JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统_第10张图片

交互设计

功能展示

系统首页

JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统_第11张图片

老师

老师首页

JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统_第12张图片

查看所有学生

JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统_第13张图片

添加学生

JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统_第14张图片
JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统_第15张图片

JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统_第16张图片
JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统_第17张图片

布置作业

JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统_第18张图片

JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统_第19张图片

老师查看所有作业

JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统_第20张图片

老师查看某一作业提交情况

JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统_第21张图片

学生

学生首页

JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统_第22张图片

学生查看所有作业

JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统_第23张图片

提交作业

JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统_第24张图片

JavaEE 笔记01: 基于Tomcat, Servlet, JSP的简单作业管理系统_第25张图片

代码仓库

GitHub: https://github.com/Yi1275432232/Homework-Management-System

你可能感兴趣的:(java,tomcat,servlet,jsp,mysql)