java web个人通讯录系统设计

Java web个人通讯录系统设计的完整攻略,一般包含以下几个部分:

1.需求分析

在进行系统设计之前,首先需要对需求进行分析。需求分析包括确定系统所需要的功能,确定系统的用户类型,确定系统的使用环境等。在进行需求分析时,需要充分考虑到用户的需求和实际使用环境,确保系统的功能和性能达到用户的期望。

2.系统设计

在确定了需求之后,需要进行系统设计。系统设计包括确定系统的架构,选择适合的编程语言和数据库,以及确定系统的安全性和性能等。在进行系统设计时,需要自己根据个人情况和要求进行合理选择。

3.数据库设计

数据库是系统中非常重要的一部分,需要根据需求对数据库进行设计。在数据库设计时,需要考虑到数据库表的结构、关系及索引等。同时,要确保数据库的性能和安全性。

4.编码实现

在系统设计和数据库设计完成之后,可以开始进行编码实现。在编码实现中,需要根据之前的设计进行具体的实现。需要结合具体编程语言和框架来完成编码实现。

5.测试和优化

编码实现完成后,需要进行系统测试和优化。在测试过程中,需要对系统进行各种测试,确保系统运行无误。在优化过程中,需要对系统进行优化,以提高系统的性能和可靠性。

示例1:数据库建立与设计

在进行数据库设计时,可以采用MySQL数据库,在MySQL中创建对应的数据库以及数据表。

CREATE DATABASE address_book DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE address_book;

CREATE TABLE user (
id int(11) NOT NULL AUTO_INCREMENT,
username varchar(255) NOT NULL,
password varchar(255) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE contact (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255) NOT NULL,
phone varchar(255) NOT NULL,
email varchar(255) NOT NULL,
user_id int(11) NOT NULL,
PRIMARY KEY (id),
KEY user_id (user_id),
CONSTRAINT contact_ibfk_1 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

通过以上操作,实现了名为address_book的数据库建立,并创建了用户表(user)和联系人表(contact)。

示例2:代码实现

在进行代码实现时,可以采用Spring Boot框架,通过MyBatis进行操作数据库。首先需要引入MySQL、Spring Boot等相关依赖。

在进行代码实现时,需要关注通讯录系统的核心功能:用户的注册与登录以及联系人的增删改查。具体实现可以参考以下代码:

1.用户注册

@RequestMapping(value = "/register", method = RequestMethod.POST)
public String register(@Validated User user, BindingResult bindingResult, Model model) {
if (bindingResult.hasErrors()) {
List errorMessages = new ArrayList<>();
for (ObjectError error : bindingResult.getAllErrors()) {
errorMessages.add(error.getDefaultMessage());
}
model.addAttribute("errorMessages", errorMessages);
return "register";
}
User existUser = userService.selectByUsername(user.getUsername());
if (existUser != null) {
model.addAttribute("errorMessage", "用户名已存在");
return "register";
}
userService.insertUser(user);
return "redirect:/login";
}

2.用户登录

@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login(User user, Model model, HttpSession session) {
User existUser = userService.selectByUsername(user.getUsername());
if (existUser != null && user.getPassword().equals(existUser.getPassword())) {
session.setAttribute("userId", existUser.getId());
return "redirect:/contacts";
}
model.addAttribute("errorMessage", "用户名或密码错误");
return "login";
}

3.联系人的展示

@RequestMapping(value = "/contacts", method = RequestMethod.GET)
public String contacts(HttpSession session, Model model) {
Integer userId = (Integer) session.getAttribute("userId");
List contacts = contactService.selectByUserId(userId);
if (!CollectionUtils.isEmpty(contacts)) {
model.addAttribute("contacts", contacts);
}
return "contacts";
}

4.联系人的新增

@RequestMapping(value = "/contacts", method = RequestMethod.POST)
public String addContact(Contact contact, HttpSession session) {
Integer userId = (Integer) session.getAttribute("userId");
contact.setUserId(userId);
contactService.insertContact(contact);
return "redirect:/contacts";
}

5.联系人的删除

@RequestMapping(value = "/contacts/{id}", method = RequestMethod.DELETE)
@ResponseBody
public String deleteContact(@PathVariable("id") Integer id) {
contactService.deleteContact(id);
return "success";
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java web个人通讯录系统设计 - Python技术站

(0)
上一篇 2023年5月24日
下一篇 2023年5月24日

相关文章

  • SSM+微信小程序实现物业管理系统及实例代码

    下面是详细讲解“SSM+微信小程序实现物业管理系统及实例代码”的完整攻略: 一、准备工作 安装Java开发环境 安装Mysql数据库,并创建相应的数据库及表格 安装Maven管理工具 二、搭建SSM框架 创建Maven工程 配置pom.xml文件,加入相关依赖库 创建Spring配置文件,包括applicationContext.xml、dispatcher…

    Java 2023年5月23日
    00
  • 使用Java编写一个简单的Web的监控系统

    使用Java编写一个简单的Web监控系统需要以下几个步骤: 选择合适的监控框架:选择一个合适的监控框架来实现Web的监控,比如可以选择Spring Boot Actuator、Micrometer Actuator等。这些框架已经内置了一些用于监控Web应用程序的功能,包括HTTP请求记录、应用程序指标收集等等。 设置监控端点:在监控框架中配置监控端点,使得…

    Java 2023年5月19日
    00
  • 常见的Java安全漏洞有哪些?

    常见的Java安全漏洞 Java在发展过程中,也出现了很多安全漏洞。下面是一些常见的Java安全漏洞: 1. SQL注入漏洞 SQL注入漏洞指的是攻击者利用应用程序中没有对用户输入的SQL语句参数进行验证或转义,从而在应用程序中执行恶意的SQL语句。 示例: 假设有一个查询用户姓名的SQL语句: String sql = "SELECT * FRO…

    Java 2023年5月11日
    00
  • Spring MVC文件请求处理MultipartResolver详解

    在 Spring MVC 中,MultipartResolver 是用于处理文件上传请求的组件。本文将详细讲解 Spring MVC 文件请求处理 MultipartResolver 的使用方法和注意事项。 MultipartResolver 的使用方法 在 Spring MVC 中,我们可以通过配置 MultipartResolver 来处理文件上传请求。…

    Java 2023年5月18日
    00
  • java遍历properties文件操作指南

    Java遍历Properties文件操作指南 概述 Properties文件是Java中用于存储配置信息的一种简单而常用的文件格式,以键值对(key-value)的形式保存数据,扩展名为.properties。在Java中,我们可以使用Properties类来读取、写入和操作Properties文件。在本篇攻略中,我们将介绍如何使用Java遍历Propert…

    Java 2023年5月26日
    00
  • SpringMVC实现文件上传和下载功能

    SpringMVC实现文件上传和下载功能 Spring MVC提供了很好的机制来实现文件上传和下载功能,但需要借助一些依赖包和配置设置。 1. 添加MultipartResolver Bean 在Spring MVC应用中,我们需要添加一个MultipartResolver Bean以处理文件上传的请求。MultipartResolver 接口定义了文件上传…

    Java 2023年6月15日
    00
  • 利用Jasypt如何对Spring Boot配置文件加密

    利用Jasypt对Spring Boot配置文件加密的步骤如下: 1. 引入Jasypt依赖 首先在项目的pom.xml文件中引入Jasypt的依赖: <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spri…

    Java 2023年5月20日
    00
  • 浅析MMAP零拷贝在RocketMQ中的运用

    浅析MMAP零拷贝在RocketMQ中的运用攻略 什么是MMAP MMAP(Memory Mapped Files)是指通过映射虚拟内存的方式来访问硬盘上的文件。在Linux系统中,使用mmap()函数可以将一个文件映射到进程的地址空间中,从而使得该文件变得像是一个内存块一样可以被直接访问。通过MMAP技术,可以实现一些高效的I/O操作,特别是在大数据量传输…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部