1.设计数据库
以该表为例子
其中sc_code为主键
2.设计实体
当设计完数据库时,我们需要对数据库的数据进行包装,方便之后我们对其进行管理操作。
对比数据我们可以画出school表的e-r图
明确了school实体的关系和属性后,就可以将school表中的数据设计为一个School类进行管理。
public class School {
private String sc_code;
private String sc_name;
private Date sc_birth;
private String sc_address;
private Integer sc_total;
private Double sc_area;
//并为属性设置get set方法,以及构造方法,本篇将不再展示。
//。。。
}
3.明确设计的功能
本程序将完成对school数据的增删改查,并为使用者提供直观的操作界面。
4.创建项目
创建一个java web项目,本篇以maven自动生成的javaweb项目改造
如图
其中的java文件夹存放java源文件,用于进行数据处理和请求处理。
resources文件夹存放资源文件。
webapp存放jsp文件以及 webapp.xml文件。jsp用于进行动态页面展示,webapp。xml文件用于进行webapp的路径分配以及其他的web设置。
target 文件属于编译生成文件。
5.概念设计
5.1设计界面
对于需求,我们可以设计三个界面
1用于对学校进行展示的界面,并且可以滴学校数据进行删除。
2用于添加学校的界面。
3用于修改学校的界面。
5.2设计设计请求处理层
对于请求处理我们需要使用到servlet 用于对请求进行处理。并且可以对增加,删除,修改,展示的请求进行响应。我们需要处理以下4种请求
1索取学校数据的请求。
2索取对应编号学校数据的请求。
3删除学校数据的请求。
4增加学校数据的请求。
5.3设计业务处理层
当我们将所有的数据处理放到请求处理层是不合理的,若数据的设置放在请求处理层会使程序变得荣誉,耦合度也会大大提高,不方便我们对程序进行模块化设计。并且这也会大大复杂化请求处理。不利于对程序的重构。所以我们需要对数据的处理专门设计一个业务处理层。
对于需求我们可以设计以下方法
//删除特定的school学校
boolean del(String sc_code);
//获取所有的学校数据
List<School> getScAll();
//通过编号获取学校数据
School getScBySc_code(String sc_code);
//更新学校数据
boolean setSc(School school);
//增加学校数据
boolean addSc(School school);
5.4设计数据库交互层
对于数据库连接的获取数据是繁琐的,我们需要单独一层对其进行封装。并完成以下内容:
1获取school表数据。
2获取对应sc_code的school表数据。
3删除对应sc_code的school表数据。
4添加school表数据。
6.具体设计
6.1界面设计
我们通过jsp设计动态界面,jsp本质上是servlet,所以我们可以通过<%%>添加java代码,但这违背了jsp用于设计界面的初衷,也大大提高了前端人员的维护难度。我们可以通过EL表达式与jstl标签库对jsp中的java代码标签化。以减少原生java代码的数量,简化代码,体现jsp文件用于展示数据的目的。
maven导入
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
<scope>provided</scope>
</dependency>
设计query.jsp
用于展示学校信息和各个界面的跳转功能。 通过后端传来的请求获取到学校的信息,并反映到界面上。
需要后端出入School类型的集合。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<table>
<tr>
<td>学校编号</td>
<td>学校名字</td>
<td>学校地址</td>
<td>学校建校日期</td>
<td>学校人数</td>
<td>学校占地</td>
<td>操作</td>
</tr>
<c:forEach items="${requestScope.scs}" var="sc">
<tr>
<td>${sc.sc_code}</td>
<td>${sc.sc_name}</td>
<td>${sc.sc_address}</td>
<td>${sc.sc_birth}</td>
<td>${s