基于javaweb的SSM航班机票预订平台系统(java+ssm+js+jsp+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

250023362402

260023362402

270023362402

290023362402

300023362402

310023362402

基于javaweb的SSM航班机票预订平台系统(java+ssm+js+jsp+mysql)

项目介绍

管理员角色包含以下功能: 管理员登录,用户管理,客机管理,航班管理,机票管理,密码修改等功能。

用户角色包含以下功能: 查看所有机票,用户登录注册,机票预订,查看我的订单等功能。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;  5.数据库:MySql 5.7版本;

技术栈

  1. 后端:Spring+SpringMVC+Mybatis 2. 前端:HTML+CSS+JavaScript+jsp

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/ 登录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
		session.setAttribute("currentUser", managerUser);
cookiesUtil.addcookie(cookieName, managerUser.getUsername(), 1800, response);
} else {
if(manager != null&&null != manager.getUsername()) {
session.setAttribute("message", "用户名或密码有误!!!");
}else {
session.setAttribute("message", "");
}

return loginPage;
}
return "admin/main";
}


@RequestMapping("/adminIndex")
public String adminIndex() {
return "admin/main";
}


@RequestMapping("/logout")
public String logout(HttpServletResponse response, HttpServletRequest request) {
JSONObject result = new JSONObject();
HttpSession session = request.getSession();
session.invalidate();
cookiesUtil.deleteCookies(cookieName,request,response);
result.put("success", true);
ResponseUtil.write(response, result);
return null;
}

@RequestMapping("/modifyPassword")
public String modifyPassword(Manager manager, HttpServletRequest request, HttpServletResponse response) {
JSONObject result = new JSONObject();
boolean flag = false;
int i = managerService.modifyPassword(manager.getId());
if (i > 0) {
flag = true;
}
result.put("success", flag);
ResponseUtil.write(response, result);
return null;
}

@RequestMapping("/adminUserList")
public String adminUserList(User user, HttpServletResponse response, HttpServletRequest request) throws Exception {
PageBean pageBean = new PageBean();
String page = request.getParameter("page");
String rows = request.getParameter("rows");
if (rows != null) {
pageBean.setPageSize(Integer.parseInt(rows));
user.setPageSize(pageBean.getPageSize());
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41


/**
* com.chen.ssm.web
* 作者 : 陈晓
* 描述 :
* 修改日期 :
*/
@Controller
@RequestMapping("/user")
public class UserController {

@Resource
private UserService userService;

@Resource
private TicketOrderService ticketOrderService;

private User user;
private Integer currentUserId;
private List<Ticketorder> ticketorderList;
private CookiesUtil cookiesUtil = new CookiesUtil();
private String cookieName = "token";


@RequestMapping("/test")
public String test() {
return "list";
}

@RequestMapping("/index")
public String index() {
return "login";
}

@RequestMapping("/login")
public String login(User user, HttpServletRequest request, HttpServletResponse response) throws Exception {
user = userService.login(user);
JSONObject result = new JSONObject();
boolean flag = false;
if (user != null) {
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
  ModelAndView mav = getPageCode(count, pageBean, request);
return mav;
}


@RequestMapping("/list")
public ModelAndView list(HttpServletRequest request) {
PageBean pageBean = null;
Flight flight = new Flight();
String page = request.getParameter("page");
if (page != null) {
pageBean = new PageBean(Integer.parseInt(page), 10);
}
flight.setPage(pageBean.getStart());
flight.setPageSize(pageBean.getPageSize());
Integer count = flightService.getCount(flight);
flightList = flightService.getIndexList(flight);
// getPageNum(count, pageBean);
ModelAndView mav = getPageCode(count, pageBean, request);
return mav;
}


@RequestMapping("/save")
@ResponseBody
public Object save(Flight flight, HttpServletResponse response, HttpServletRequest request) {
JSONObject result = new JSONObject();
String fromTime = request.getParameter("fromTime");
String toTime = request.getParameter("toTime");
DateUtil dateUtil = new DateUtil();
flight.setFromtime(dateUtil.formatString(fromTime, format));
flight.setTotime(dateUtil.formatString(toTime, format));

Integer i = 0;
System.out.println("=========" + flight.getId());
try {
if (flight.getId() == null) {//用户添加
String fcTicketTotal = request.getParameter("fctickettotal");
String ecTicketTotal = request.getParameter("ectickettotal");
flight.setEcticketremain(Integer.parseInt(ecTicketTotal));
flight.setFcticketremain(Integer.parseInt(fcTicketTotal));
i = flightService.insertSelective(flight);
} else {//用户修改
i = flightService.updateByPrimaryKeySelective(flight);
}
System.out.println("====flight====updateOrAdd===" + i);
if (i > 0) {
flag = true;
}
result.put("success", flag);
ResponseUtil.write(response, result);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
          ticketRemain = flight.getEcticketremain();
singlePrice = flight.getEcprice();
if(ticketRemain>0&&ticketRemain>num){
flight.setEcticketremain(ticketRemain-num);
}
}else{
ticketRemain = flight.getFcticketremain();
singlePrice = flight.getFcprice();
if(ticketRemain>0&&ticketRemain>num){
flight.setFcticketremain(ticketRemain-num);
}
}
int totalPrice = singlePrice*num;
Ticketorder order = new Ticketorder();
order.setOrderno("NO"+ DateUtil.formatDate(new Date(),"yyyyMMddHHmmss"));
order.setOrdertime(new Date());
order.setPrice(flight.getEcprice());
order.setSpacetype(pricetype==1?"经济舱":"头等舱");
order.setFlightid(flightId);
order.setUserid(user.getId());
order.setNum(num);
order.setTotalprice(totalPrice);

ticketOrderService.insert(order);
flightService.updateByPrimaryKey(flight);


List<Ticketorder> ticketOrderList = ticketOrderService.getTicketOrderByUserName(currentUser);
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(Date.class, jsonDateValueProcessor);
JSONArray array = JSONArray.fromObject(ticketOrderList, jsonConfig);
mav.addObject("ticketOrderList",array);
mav.setViewName("main_userCenter");
request.setAttribute("mainPage","ticket/myTicketOrderList.jsp");
return mav;

}

}
package com.chen.ssm.web;


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

public class CookiesFilter implements Filter {


public void destroy() {

}


public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
System.out.println(request.getRequestURI());
String requestURI = request.getRequestURI();
/* if (requestURI.indexOf("index") > -1 || requestURI.indexOf("resources") > -1 || requestURI.indexOf("managerLoginPage") > -1 || requestURI.indexOf("manager/login") > -1) {
chain.doFilter(request, response);
return;
}
if (requestURI.indexOf("/flight/") > -1 || requestURI.indexOf("/ticketOrder/") > -1 || requestURI.indexOf("/aircraft/") > -1 || requestURI.indexOf("/user/") > -1) {
chain.doFilter(request, response);
return;
}*/
if (!(requestURI.indexOf("/manager/") > -1)) {
chain.doFilter(request, response);
return;
} else {
if (requestURI.indexOf("/manager/managerLoginPage") > -1 || requestURI.indexOf("/manager/login") > -1) {
chain.doFilter(request, response);
return;
}
if (request.getCookies() != null) {
Cookie[] cs = request.getCookies();
System.out.println(cs.length);
if (cs != null && cs.length > 0) {
for (Cookie c : cs) {
String cName = c.getName();
System.out.println(cName);
if (cName.equals("adminToken")) {


项目链接:
https://javayms.github.io?id=061122542008200rw
https://javayms.pages.dev?id=061122542008200rw