武汉建设学校录取分数线_石家庄市刷作网站_永久免费100g虚拟主机_金华网站建设推广
第5章 系统的实现
5.1实现环境说明 运行环境包括硬件要求及软件要求如下表所示。
硬件要求 |
CPU | 双核2.0以上 |
内存 | 2G,4G以上更好 |
硬盘 | 100G以上 |
软件要求 |
操作系统 | Windows 8 /Windows7/Windows10 |
开发工具 | Myeclipse10 |
网站服务器 | Tomcat7.0 |
数据库 | MySQL2008 |
开发语言 | JAVA语言 |
浏览器 | 360安全浏览器 |
本系统设计的是一个游戏攻略网站。该系统总共分为首页、公告通知、游戏资讯、个人账户、个人收藏、攻略信息等多个模块。通过对此系统的开发,达到了对用户对了解。实现系统的实用性和易管理性。
系统首页如下图所示。
图5-1系统首页
前台首页集成了普通用户的注册页面,注册的独立页面为userreg.jsp,通过框架嵌入系统前台首页,用户填写好注册信息后,通过<form action="userreg.jsp?f=f" method="post" name="f1" οnsubmit="return checkform();">方式提交表单,会通过javasrcript验证格式,如果格式有错误,则用户小窗口提示错误的地方,如果格式都正确,则跳转至dao的注册方法,实现注册用户,提示注册成功,并将注册的信息加入用户表中。
其中载入前台首页的主要代码如下:
server:
port: 5000
servlet:
context-path: /api
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/CS725260_20211101091736?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
jackson:
property-naming-strategy: CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES
default-property-inclusion: ALWAYS
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
servlet:
multipart:
max-file-size: 100MB
max-request-size: 100MB
用户注册流程图如下图所示。
图5-2用户注册流程图
用户注册界面如下图所示。
图5-3用户注册界面
用户注册的关键代码为:
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
query.put("username",user.getUsername());
List list = service.select(query, new HashMap<>()).getResultList();
if (list.size()>0){
return error(30000, "用户已存在");
}
user.setUserId(null);
user.setPassword(service.encryption(user.getPassword()));
service.save(user);
return success(1);
}
/**
* 用户ID:[0,8388607]用户获取其他与用户相关的数据
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id")
private Integer userId;
/**
* 账户状态:[0,10](1可用|2异常|3已冻结|4已注销)
*/
@Basic
@Column(name = "state")
private Integer state;
/**
* 所在用户组:[0,32767]决定用户身份和权限
*/
@Basic
@Column(name = "user_group")
private String userGroup;
/**
* 上次登录时间:
*/
@Basic
@Column(name = "login_time")
private Timestamp loginTime;
/**
* 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时
*/
@Basic
@Column(name = "phone")
private String phone;
/**
* 手机认证:[0,1](0未认证|1审核中|2已认证)
*/
@Basic
@Column(name = "phone_state")
private Integer phoneState;
/**
* 用户名:[0,16]用户登录时所用的账户名称
*/
@Basic
@Column(name = "username")
private String username;
/**
* 昵称:[0,16]
*/
@Basic
@Column(name = "nickname")
private String nickname;
/**
* 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成
*/
@Basic
@Column(name = "password")
private String password;
/**
* 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时
*/
@Basic
@Column(name = "email")
private String email;
/**
* 邮箱认证:[0,1](0未认证|1审核中|2已认证)
*/
@Basic
@Column(name = "email_state")
private Integer emailState;
/**
* 头像地址:[0,255]
*/
@Basic
@Column(name = "avatar")
private String avatar;
/**
* 创建时间:
*/
@Basic
@Column(name = "create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Timestamp createTime;
@Basic
@Transient
private String code;
}
5.3登录模块的实现
系统的登录是使用该系统的第一关卡,用户在登录界面输入账号和密码后,系统判断该账号密码是否能在数据库中存在并且匹配,返回登录成功或登录失败的信息,登录成功后才能使用系统的功能。
登录流程图如下图所示。
图5-4登录流程图
用户登录界面如下图所示。
图5-5用户登录界面
随着系统规模的壮大,系统发布更新的信息及对普通用户量会越来越多,只有超级管理员负责系统后台恐怕任务艰巨,本系统考虑到这一问题后开发了超级管理员有权限可以增加管理员的模块。管理员角色不同对应权限亦不相同。
系统用户管理界面如下图所示。
图5-6系统用户管理界面
用户登录的关键代码如下:
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
query.put("username",user.getUsername());
List list = service.select(query, new HashMap<>()).getResultList();
if (list.size()>0){
return error(30000, "用户已存在");
}
user.setUserId(null);
user.setPassword(service.encryption(user.getPassword()));
service.save(user);
return success(1);
}
/**
* 用户ID:[0,8388607]用户获取其他与用户相关的数据
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id")
private Integer userId;
/**
* 账户状态:[0,10](1可用|2异常|3已冻结|4已注销)
*/
@Basic
@Column(name = "state")
private Integer state;
/**
* 所在用户组:[0,32767]决定用户身份和权限
*/
@Basic
@Column(name = "user_group")
private String userGroup;
/**
* 上次登录时间:
*/
@Basic
@Column(name = "login_time")
private Timestamp loginTime;
/**
* 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时
*/
@Basic
@Column(name = "phone")
private String phone;
/**
* 手机认证:[0,1](0未认证|1审核中|2已认证)
*/
@Basic
@Column(name = "phone_state")
private Integer phoneState;
/**
* 用户名:[0,16]用户登录时所用的账户名称
*/
@Basic
@Column(name = "username")
private String username;
/**
* 昵称:[0,16]
*/
@Basic
@Column(name = "nickname")
private String nickname;
/**
* 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成
*/
@Basic
@Column(name = "password")
private String password;
/**
* 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时
*/
@Basic
@Column(name = "email")
private String email;
/**
* 邮箱认证:[0,1](0未认证|1审核中|2已认证)
*/
@Basic
@Column(name = "email_state")
private Integer emailState;
/**
* 头像地址:[0,255]
*/
@Basic
@Column(name = "avatar")
private String avatar;
/**
* 创建时间:
*/
@Basic
@Column(name = "create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Timestamp createTime;
@Basic
@Transient
private String code;
}
5.4公告模块的实现
在系统前台界面上点击公告动态中每个标题都自动跳转到公告界面,这样就可以查看有关公告的详细内容。并可以添加信息、删除信息、编辑信息等操作。在xinwentongzhilist.jsp实现视图层上公告的展示,在xinwentongzhi_list.jsp实现视图层上公告的管理。
前台公告展示如下图所示。
图5-6前台公告展示界面
公告管理后台操作界面如下图所示。
图5-7公告管理后台操作界面
后台公告发布界面如下图所示。
图5-8后台公告发布界面图
公告发布的关键代码如下:
@RequestMapping(value = {"/count_group", "/count"})
public Map<String, Object> count(HttpServletRequest request) {
Query count = service.count(service.readQuery(request), service.readConfig(request));
return success(count.getResultList());
}
添加游戏攻略评论是在“查询游戏攻略信息 “的前提下操作的。当页面显示查询的游戏攻略信息后,可以点击“添加评论”超级链接,既可跳转到pinglunadd.jsp页添加评论。管理员在pinglun_list.jsp进行评论管理,pinglun_ list.jsp通过查询数据库的评论表列出所有评论信息,每条评论对应一个删除按钮和修改按钮,当管理员点击删除按钮,直接在数据库删除评论信息,并重定向当前页面,当管理员选择点击修改,则进入pinglun_update.jsp页面,进行评论信息的修改。
评论添加流程图如下图所示。
图5-10评论添加流程图
添加评论界面设计效果如下图所示。
图5-11添加评论界面
评论添加关键代码为:
@RequestMapping("/get_list")
public Map<String, Object> getList(HttpServletRequest request) {
Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));
return success(map);
}
%>
管理员添加游戏攻略信息是在点击添加按钮的前提下操作的,当页面跳转至youxigonglv_add.jsp,添加成功后,管理员在youxigonglv_list.jsp进行游戏攻略管理,youxigonglv_ list.jsp通过查询数据库的游戏攻略表列出所有游戏攻略信息,每条游戏攻略对应一个删除按钮和修改按钮,当管理员点击删除按钮,直接在数据库删除游戏攻略信息,并重定向当前页面,当管理员选择点击修改,则进入youxigonglv_update.jsp页面,进行游戏攻略信息的修改。
游戏攻略管理流程图如下图所示。
图5-17游戏攻略管理流程图
游戏攻略添加页面设计效果如下图所示。
图5-18游戏攻略添加界面
游戏攻略管理页面效果如下图所示。
图5-19游戏攻略管理界面
游戏攻略发布的关键代码如下:
@RequestMapping(value = {"/count_group", "/count"})
public Map<String, Object> count(HttpServletRequest request) {
Query count = service.count(service.readQuery(request), service.readConfig(request));
return success(count.getResultList());
}
本章节主要论述了登录模块用户的登录、用户管理、留言管理、游戏分类管理、游戏攻略管理、等功能模块的设计与代码的编写,以及最终实现的步骤。
">