目录
1、概述
2、功能描述
3、数据表
4、目录结构
5、最终效果
6、购票流程关键代码
1、概述
开发环境: jdk 、tomcat 、mysql
开发工具:idea 或eclipse、navicat
编程语言后端:java;框架和引用的包:JavaBean Servlet MVC、log4j.jar
编程语言前端:JSP、html 、javascript、jquery;
注:本项目未引用当前流行的ssm(Spring+SpringMVC+MyBatis)、Spring boot,在随后的项目中讲解
2、功能描述
通过在网上已有的电影票购买网站注册成会员来了解其具备的功能。
1.从用户角度来看:用户通过在线注册成为网站的用户,可以获得以下功能:查看订单,修改订单,修改密码,修改个人信息。另外,用户注册成功后,可以进入到网站的留言板块进行留言等。
2.从网站的角度看:
(1)网站应该包含影片搜索功能:按影片(模糊)查询。
(2)订单处理功能,确认订单方式
(3)管理员管理:查看用户信息,并根据用户信息和用户订单对影片进行发派。
(4)电影浏览
a).价格
b).电影名称
c).上映日期
d).导演姓名
e).主演姓名
(5)购买影票 用户登录后可以根据电影的相关介绍信息进行购买.
3、数据表
1 | admin 管理员表 | | |
字段名称 | 自动增长 | 字段类型 | 说明 |
id | - | int | 编号 |
username | - | varchar | 用户名 |
password | - | varchar | 密码 |
creattime | - | datetime | 日期 |
logintimes | - | int | 登录次数 |
qx | - | varchar | 权限 |
| | | |
2 | adminlog 操作日志表 | | |
字段名称 | 自动增长 | 字段类型 | 说明 |
id | - | int | 编号 |
username | - | varchar | 用户名 |
password | - | varchar | 密码 |
logintime | - | datetime | 日期 |
loginip | - | varchar | IP |
| | | |
| | | |
| | | |
3 | affiche 公告表 | | |
字段名称 | 自动增长 | 字段类型 | 说明 |
id | - | int | 编号 |
title | - | varchar | 标题 |
content | - | varchar | 内容 |
addtime | - | datetime | 日期 |
adder | - | varchar | 发布人 |
| | | |
| | | |
4 | guestbook 留言板 | | |
字段名称 | 自动增长 | 字段类型 | 说明 |
id | - | int | 编号 |
nickname | - | varchar | 呢称 |
pic | - | varchar | 图片 |
- | varchar | 邮件 | |
- | varchar | ||
content | - | varchar | 内容 |
addtime | - | datetime | 日期 |
ip | - | varchar | IP |
replay | - | int | 回复 |
| | | |
| | | |
5 | member 会员表 | | |
字段名称 | 自动增长 | 字段类型 | 说明 |
id | - | int | 编号 |
username | - | varchar | 用户名 |
password | - | varchar | 密码 |
type | - | varchar | 类型 |
regtime | - | datetime | 日期 |
| | | |
| | | |
| | | |
| | | |
| | | |
6 | changci 场次表 | | |
字段名称 | 自动增长 | 字段类型 | 说明 |
id | - | int | 编号 |
riqi | - | varchar | 日期 |
shijian | - | varchar | 时间 |
yingting_id | - | int | 影厅 |
dianying_id | - | int | 电影 |
| | | |
| | | |
| | | |
| | | |
| | | |
7 | dianying 电影表 | | |
字段名称 | 自动增长 | 字段类型 | 说明 |
id | - | int | - |
name | - | varchar | 名称 |
zhuyan | - | varchar | 主演 |
daoyan | - | varchar | 导演 |
shijian | - | varchar | 时间 |
pic | - | varchar | 图片 |
jianjie | - | varchar | 简介 |
jiage | - | varchar | 价格 |
| | | |
| | | |
8 | goupiao 购票信息表 | | |
字段名称 | 自动增长 | 字段类型 | 说明 |
id | - | int | |
user_id | - | int | 会员ID |
changci_id | - | int | 场次ID |
zuowei | - | varchar | 座位 |
jiage | - | varchar | 价格 |
addtime | - | varchar | 添加日期 |
| | | |
| | | |
9 | yingting 影厅表 | | |
字段名称 | 自动增长 | 字段类型 | 说明 |
id | - | int | - |
name | - | varchar | 名称 |
zuowei | - | int | 座位数量 |
4、目录结构
5、最终效果
前台普通用户
后台管理员
6、购票流程关键代码
if(method.equals("ADDgoupiao")){
String jine = (String) request.getSession().getAttribute("jine");
String member = (String) request.getSession().getAttribute("member");
String member_id = (String) request.getSession().getAttribute("member_id");
String changci_id = request.getParameter("changci_id");
String jiage = request.getParameter("jiage");
String zuowei_num = request.getParameter("zuowei_num");
String strDirPath = request.getSession().getServletContext().getRealPath("/");
String check[] = request.getParameterValues("checkit");
if(check == null){
request.setAttribute("message", "请选择座位!");
request.getRequestDispatcher("changciinfo.jsp?zuowei="+zuowei_num+"&jiage="+jiage+"&changci_id="+changci_id).forward(request, response);
}
else{
int id2[]= new int[check.length];
for(int i = 0;i<check.length;i++){
int s = Integer.parseInt(check[i]);
id2[i] = s;
}
int total_pirce = Integer.parseInt(jiage)*check.length;
if(total_pirce>Float.parseFloat(jine)){
request.setAttribute("message", "账户余额不足!");
request.getRequestDispatcher("hy_cz.jsp").forward(request, response);
} else {
int flag = new GoupiaoBean().addGoupiao(id2,Integer.parseInt(member_id),Integer.parseInt(changci_id),jiage);
if(flag == Constant.SUCCESS){
String j = memberBean.getJine(member);
session.removeAttribute("jine");
session.setAttribute("jine", j);
request.setAttribute("message", "购票成功!");
request.getRequestDispatcher("hy_goupiao.jsp").forward(request, response);
}
else{
request.setAttribute("message", "系统维护中,请稍后再试!");
request.getRequestDispatcher("index.jsp").forward(request, response);
}
}
}
}