目录
一、 系统简介
1.简介
2需求分析
3 编程环境与工具
二、 系统总体设计
1 系统的功能模块图。
2 各功能模块简介
3项目结构 4
三、 主要业务流程
(1)用户及管理员登录流程图
(2)信息添加流程
(3)信息删除流程
四、 数据库的设计
五、 系统功能详细实现及效果图
(1) 首页
(2) 备忘录界面
(3) 备忘录用户界面
(4) 目录表界面
六、 总结
- 概述:
本备忘录系统是一个基于使用 Java Servlet、JSP(Java Server Pages)和 EL(Expression Language)表达式等技术,旨在帮助用户轻松管理个人备忘录和用户信息。该系统包括备忘录表的查看所有备忘录、查看和操作备忘录,以及用户表的查看所有用户和操作。主页面提供登录和注册功能,使用户可以安全地访问和管理他们的备忘录和个人信息。
- 功能:
备忘录创建/编辑:用户可以创建、编辑和删除自己的备忘录。
备忘录列表展示:用户可以查看自己创建的所有备忘录。
备忘录搜索:用户可以根据关键词搜索备忘录。
- 系统特点:
用户界面简洁直观,易于操作。
基于 Web 应用,无需安装客户端,通过浏览器即可使用。
采用多层架构,提高了系统的可维护性和扩展性。
通过这个备忘录程序,用户可以方便地管理个人备忘录,提高工作和生活效率。同时,该程序也展示了 Java Servlet、JSP 和 EL 表达式等技术在 Web 开发中的应用。
1.系统架构:采用 B/S 架构,基于 JavaWeb 技术实现。
2.数据库设计:使用关系型数据库,如 MySQL 或 Oracle 等。
3.技术框架:Servlet JDBC Java JSP 等。
3 编程环境与工具
根据本系统体系结构特点和使用本系统的用户特点,编程环境与工具的配置如表1-1所示:
表1-1 开发环境表
Tab. 1-1 Development environment table
类别 | 标准配置 |
开发语言 | Java |
开发工具 | IDEA |
开发环境 | JDK 8.0 |
服务器 | Tomcat 8.0 |
数据库 | MySql 5.6 |
按照系统的分析,本系统采用基于B/S架构的系统,系统分为管理员和普通用户两种身份,其中普通用户可以管理个人用户信息,也可以对数据库进行修改操作;需要先登录,然后才能使用系统的各项功能,会涉及相应的信息。
- 登录功能:
- 备忘录创建与编辑:
- 备忘录查找:
- 备忘录删除:
3项目结构:
- 数据库设计
备忘录表
用户表
- 代码结构
DBUtil.java
views
login.jsp
register.jsp
- 交互
使用JSP页面和EL表达式进行数据展示和操作
通过Servlet实现数据交互
- 项目依赖
Java Web框架
JSP、Servlet、EL表达式
数据库:MySQL
前端:HTML、CSS、JavaScript
对于系统的安全性的第一关,就是用户想要进入系统,必须通过登录窗口,输入自己的登录信息才可以进行登录,用户输入的信息准确无误后才可以进入到操作系统界面,进行功能模块的相对应操作,如果用户输入的信息不正确,则窗口出现提示框,用户登录失败,返回到第一步进行重新输入,如图3-1所示。
图3-1登录流程图
Figure 3-1 Login Flowchart
对于系统,需要随时添加所需要的数据信息,对于用户添加信息,需要根据添加界面,根据选框的内容进行填写所要添加的数据信息,信息输入完成后判断数据信息是否符合要求,符合要求则添加完成,用户所添加的信息不符合要求,则需要返回到第一步,重新输入数据信息,再进行判断操作,如图3-2所示。
图3-2信息添加流程图
Figure 3-2 Information is added to the Flowchart
不管是哪个用户角色进入到不通的系统操作界面,都可以进行不同的信息内容的操作功能,对用系统数据信息的删除,用户一旦将信息删除,那么该删除的数据信息将无法恢复,所以用户在对数据删除事,一定判断删除的内容是否是确定要删除的,确定无误后选择确定删除操作,如图3-3所示。
Figure 3-3 Information Deletion Flowchart
用表格列出表的结构及说明表中主要列的作用。
ID | 名称 | 类型 | 是否主键 | 空 | 解释 |
1 | admin_id | int | 是 | 不能 | 编号 |
2 | admin_name | varchar | 不是主键 | 不能 | 名称 |
3 | admin_password | varchar | 不是主键 | 不能 | 密码 |
4 | date | datetime | 不是主键 | 不能 | 时间 |
此为用户表,包括账号密码。
ID | 名称 | 类型 | 是否主键 | 空 | 解释 |
1 | productID | int | 是 | 不能 | 编号 |
2 | product_name | varchar | 不是主键 | 不能 | 名称 |
3 | income_price | double | 不是主键 | 不能 | 价格 |
4 | providerID | int | 不是主键 | 不能 | 提供id |
5 | categoryID | int | 不是主键 | 不能 | 类别id |
6 | sales_price | decimal | 不是主键 | 不能 | 销售价格 |
7 | income_time | datetime | 不是主键 | 不能 | 时间 |
此为provider表包括名称价格。
ID | 名称 | 类型 | 是否主键 | 空 | 解释 |
1 | categoryID | int | 是 | 不能 | 编号 |
2 | category_name | varchar | 不是主键 | 不能 | 名称 |
3 | category_desc | varchar | 不是主键 | 不能 | 备注 |
此为备忘录表,包括名称备注。
这是一个登录界面,它提供了用户登录的功能。通过输入正确的用户名和密码,用户可以成功登录并进入备忘录管理界面。
public interface AdminService {
// 登录
public Admin login(Admin admin);
// 注册
public int register(Admin admin);
}
@Override
public void sessionCreated(HttpSessionEvent event) {
//当会话建立,就代表有用户连接上线
ServletContext sc = event.getSession().getServletContext();
Integer tmp = (Integer)sc.getAttribute("onlineNum");
if(tmp!= null) {
sc.setAttribute("onlineNum", tmp+1);
}else {
sc.setAttribute("onlineNum", 1);
}
System.out.println("用户上线");
}
@Override
public void sessionDestroyed(HttpSessionEvent event) {
ServletContext sc = event.getSession().getServletContext();
Integer tmp = (Integer)sc.getAttribute("onlineNum");
if(tmp != null && tmp > 0) {
sc.setAttribute("onlineNum", tmp- 1);
}
System.out.println("用户下线");
}
}
这是备忘录界面布局,包括导航栏、备忘录列表、查找备忘录等部分。用户可以在界面上查看所有备忘录、进行特定查找,还可以对单个备忘录进行查看、编辑、删除和分享等操作。界面提供新建、刷新和设置等功能按钮。整个界面设计简洁直观,方便用户快速查看和操作备忘录。
package com.jie.dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.jie.entity.Admin;
public interface AdminDao {
//增
public int insertAdminRegister(Connection conn,Admin admin) throws SQLException;
//查
public ResultSet selectAdminLogin(Connection conn,Admin admin) throws SQLException;
}
public class Admin {
private Integer admin_id;
private String admin_name;
private String admin_password;
private String date;
public Admin() {
// TODO Auto-generated constructor stub
}
public Admin(String admin_name, String admin_password) {
super();
this.admin_name = admin_name;
this.admin_password = admin_password;
}
public Admin(Integer admin_id, String admin_name, String admin_password, String date) {
super();
this.admin_id = admin_id;
this.admin_name = admin_name;
this.admin_password = admin_password;
this.date = date;
}
public Integer getAdmin_id() {
return admin_id;
}
public void setAdmin_id(Integer admin_id) {
this.admin_id = admin_id;
}
public String getAdmin_name() {
return admin_name;
}
public void setAdmin_name(String admin_name) {
this.admin_name = admin_name;
}
public String getAdmin_password() {
return admin_password;
}
public void setAdmin_password(String admin_password) {
this.admin_password = admin_password;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
@Override
public String toString() {
return "Admin [admin_id=" + admin_id + ", admin_name=" + admin_name + ", admin_password=" + admin_password
+ ", date=" + date + "]";
}
}
这是备忘录用户界面,用户可以查看所有已注册用户的列表,并进行查看、编辑和删除等操作。在用户详细信息页面,会显示用户的 ID 和名字,方便用户识别和管理。
package com.jie.dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.jie.entity.Categorys;
import com.jie.entity.Products;
import com.jie.util.Page;
public interface ProductsDao {
// 增
public int insertProducts(Connection conn, Products products) throws SQLException;
// 删
public int deleteProducts(Connection conn, Products products) throws SQLException;
// 改
public int updateProducts(Connection conn, Products products) throws SQLException;
// 查
public ResultSet selectProducts(Connection conn) throws SQLException;
// 查
public ResultSet selectProductsByPage(Connection conn, Page<Products> page) throws SQLException;
// 搜索
public ResultSet selectProductsByCondition(Connection conn, Page<Products> page , Products p) throws SQLException;
// 查
public int selectProductsTotalRecord(Connection conn) throws SQLException;
public int selectProductsTotalRecordByCondition(Connection conn,Products p) throws SQLException;
//查
public int selectProductsByProvideID(Connection conn , int id) throws SQLException;
//查
public int selectProductsByCategoryID(Connection conn , int id) throws SQLException;
public int selectProductsByProductName(Connection conn , String name) throws SQLException;
public ResultSet selectProductsByID(Connection conn , int id) throws SQLException;
}
这是一个基于 Java Web 的备忘录管理系统的目录表界面,用户可以在该界面查看和操作所有备忘录。界面以表格形式展示备忘录的标题、创建日期等信息,同时提供编辑、删除和查看详情等操作功能,方便用户对备忘录进行管理。
public int updateData(Connection conn, String sql, Object... object) throws SQLException {
this.conn = conn;
this.ps = conn.prepareStatement(sql);
for (int i = 0; i < object.length; i++) {
ps.setObject(i + 1, object[i]);
}
return ps.executeUpdate();
}
// 通用查
public ResultSet selectData(Connection conn, String sql, Object... object) throws SQLException {
this.conn = conn;
this.ps = conn.prepareStatement(sql);
for (int i = 0; i < object.length; i++) {
ps.setObject(i + 1, object[i]);
}
this.set = ps.executeQuery();
return this.set;
}
public Products(String product_name, Double income_price, Providers provider, Categorys categorys,
Double sales_price, String income_time) {
super();
this.product_name = product_name;
this.income_price = income_price;
this.provider = provider;
this.categorys = categorys;
this.sales_price = sales_price;
this.income_time = income_time;
}
public Products(Integer productID, String product_name, Double income_price, Providers provider, Categorys categorys,
Double sales_price, String income_time) {
super();
this.productID = productID;
this.product_name = product_name;
this.income_price = income_price;
this.provider = provider;
this.categorys = categorys;
this.sales_price = sales_price;
this.income_time = income_time;
}
}
- 总结归纳:
1. 功能实现:该系统实现了用户注册/登录、备忘录创建/编辑/删除、备忘录分类管理、搜索备忘录等核心功能,满足了用户对备忘录的基本需求。
2. 用户界面:系统拥有一个简洁、易于使用的用户界面,用户可以方便地进行操作。
3. 数据存储:采用数据库来存储备忘录数据,保证了数据的安全性和稳定性。
4. 扩展性:系统具有良好的扩展性,可以根据用户需求进行功能扩展和定制。
该系统还具备其他一些特点,例如用户界面友好、数据存储与管理、权限管理等。确保在不同设备上都能提供良好的用户体验。同时,能够确保用户只能访问其拥有权限的备忘录和用户信息,保障了系统的安全性和隐私保护。系统还提供了备忘录分类管理和搜索功能,帮助用户更好地组织和查找备忘录信息,提升了系统的实用性和用户满意度
- 不足之处:
1. 移动端支持:目前系统仅支持桌面浏览器访问,缺乏对移动设备的适配,可能导致用户在移动场景下的使用不便。
2. 数据同步:系统没有实现数据的云同步功能,用户只能在本地设备上使用备忘录,如果用户需要在多个设备之间同步备忘录,可能需要手动进行数据备份和恢。
3. 安全性:虽然系统采取了一些基本的安全措施,但在面对高级别的安全威胁时可能存在不足,需要进一步加强安全性方面的措施。
4. 用户体验:在界面设计和交互流程上,可能存在一些可以改进的地方,以提高用户的使用体验。
综上所述,该备忘录管理系统在功能实现和用户界面方面表现良好,但在移动端支持、数据同步、安全性以及用户体验等方面还有待进一步改进和完善。
完整源码