基于javaweb+mysql的jsp+servlet火车票售票系统(java+servlet+mysql+jsp)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的JSP+Servlet火车票售票系统(java+servlet+mysql+jsp)
管理员:
admin 123456
用户:
user1 123456
user2 123456
request.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
String train_num = request.getParameter("train_num");
if(train_num==null || "".equals(train_num.trim())){
out.close();
return;
}
TrainService trainService = new TrainServiceImpl();
Train train = trainService.getTrain(train_num); //根据车次得到列车信息
if(train == null ){
out.close();
return;
}
String stations = train.getStation(); //得到车站字符串
String aTime = train.getA_time(); //到站车时间字符串
String gTime = train.getG_time(); //发车时间字符串
String prices = train.getPrice(); //票价字符串
//切割字符串,得到车站数组,发车时间数组,到站时间数组以及票价数组
String []station = stations.split("/");
String []a_time = aTime.split("/");
String []g_time = gTime.split("/");
String []price = prices.split("/");
int length = station.length;
//封装参数
request.setAttribute("train", train);
request.setAttribute("station",station);
request.setAttribute("a_time", a_time);
request.setAttribute("g_time", g_time);
request.setAttribute("price",price);
request.setAttribute("length",length);
request.getRequestDispatcher("/files/listTrain.jsp").forward(request, response);
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
//接收订票信息
String user_id = request.getParameter("user_id");
String train_num = request.getParameter("train_num");
String leaveTime = request.getParameter("leaveTime");
String start = request.getParameter("origin");
String end = request.getParameter("terminus");
String g_time = request.getParameter("g_time");
String a_time = request.getParameter("a_time");
String price = request.getParameter("price");
Order order = new Order();
order.setUser_id(Integer.parseInt(user_id));
order.setTrain_num(train_num);
order.setLeaveTime(leaveTime);
order.setOrigin(start);
order.setTerminus(end);
order.setG_time(g_time);
order.setA_time(a_time);
order.setPrice(Float.parseFloat(price));
OrderService orderService = new OrderServiceImpl();
int remainder1 = orderService.getRemainderByTrainNum(train_num);//余票数
int remainder2 = remainder1-1; //余票减1
int result = orderService.addOrder(order);
int result2 = orderService.updateTrain(remainder2,train_num);
if(result>0 && result2>0){
out.close();
}else{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//处理请求乱码
request.setCharacterEncoding("utf-8");
//处理响应乱码
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
//接收模糊查询参数,用于分页查询
String username = request.getParameter("username"); //用户名
String status = request.getParameter("status"); //用户身份
//封装参数
User condition = new User();
if(username!=null && !"".equals(username.trim())){
condition.setUsername(username);
}
if(status!=null && !"".equals(status.trim())){
condition.setStatus(Integer.parseInt(status));
}
PageBean pb = new PageBean(); //页面显示条数固定
//接收分页查询相关参数
String currentPage = request.getParameter("currentPage"); //当前页
if(currentPage!=null && !"".equals(currentPage.trim())){
pb.setCurrentPage(Integer.parseInt(currentPage)); //设置当前页
}
//调用userService层方法
UserService userService = new UserServiceImpl();
List<User> list = userService.getUserByPage(pb, condition);
//将数据存入request并进行转发
request.setAttribute("list",list);
request.setAttribute("pb",pb);
request.setAttribute("condition", condition);
request.getRequestDispatcher("/files/listuser.jsp").forward(request, response);
}
}
/**
* 车次录入
*/
public class AddTrainServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
//接收参数
String train_num = request.getParameter("train_num");
String station = request.getParameter("station");
String a_time = request.getParameter("a_time");
String g_time = request.getParameter("g_time");
String price = request.getParameter("price");
String amount = request.getParameter("amount");
String remainder = request.getParameter("remainder");
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//处理乱码
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
//接收参数
String id = request.getParameter("userId");
String username = request.getParameter("username"); //用户名
String name = request.getParameter("name");
String sex = request.getParameter("sex");
String country = request.getParameter("country");
String papers_type = request.getParameter("papers_type");
String papers_num = request.getParameter("papers_num");
String phone = request.getParameter("phone");
String email = request.getParameter("email");
String address = request.getParameter("address");
//封装参数
User user = new User();
user.setId(Integer.parseInt(id));
user.setUsername(username);
user.setName(name);
user.setSex(sex);
user.setCounty(country);
user.setPapers_type(papers_type);
user.setPapers_num(papers_num);
user.setPhone(phone);
user.setEmail(email);
user.setAddress(address);
//调用userService层方法进行修改
UserService userService = new UserServiceImpl();
int result = userService.updateUserByConsumer(user);
if(result>0){
out.close();
}else{
out.close();
}
}
}
}
}
}
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//处理响应乱码
response.setContentType("text/html;charset=UTF-8");
//处理请求乱码
request.setCharacterEncoding("utf-8");
//接收用户名和密码
String username = request.getParameter("username");
String password = request.getParameter("password");
//服务器端验证
if(username==null || "".equals(username.trim())){
response.sendRedirect("login.jsp");
return;
}
if(password == null || "".equals(password.trim())){
response.sendRedirect("login.jsp");
return;
}
//调用service层方法进行登陆验证
UserService userService = new UserServiceImpl();
User user = userService.getUserByUsername(username);
boolean result = userService.checkLogin(username, password);
String alert = "用户名或密码不正确,请重新登陆!";
HttpSession session = request.getSession();
if(result){
int status = user.getStatus(); //权限控制
String papers_num = request.getParameter("papers_num");
String phone = request.getParameter("phone");
String email = request.getParameter("email");
String address = request.getParameter("address");
//封装参数
User user = new User();
user.setId(Integer.parseInt(id));
user.setUsername(username);
user.setName(name);
user.setSex(sex);
user.setCounty(country);
user.setPapers_type(papers_type);
user.setPapers_num(papers_num);
user.setPhone(phone);
user.setEmail(email);
user.setAddress(address);
//调用userService层方法进行修改
UserService userService = new UserServiceImpl();
int result = userService.updateUserByConsumer(user);
if(result>0){
out.close();
}else{
out.close();
}
}
}
/**
*用户管理,获得用户信息
*/
public class GetUsersServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
return;
}
//调用service层方法进行退票
OrderService orderService = new OrderServiceImpl();
int remainder1 = orderService.getRemainderByTrainNum(train_num);//余票数
int remainder2 = remainder1+1; //余票减1
int result1 = orderService.deleteOrder(Integer.parseInt(order_id));
int result2 = orderService.updateTrain(remainder2, train_num);
if(result1>0 && result2>0){
out.close();
}else{
out.close();
}
}
}
/**
* 根据order_id得到对应的订单信息
*/
public class GetOrderServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
public class GetMyOrderServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
//接收模糊查询参数
String train_num = request.getParameter("train_num");
//封装参数
Order condition = new Order();
if(train_num!=null && !"".equals(train_num.trim())){
condition.setTrain_num(train_num);
}
PageBean pb = new PageBean(); //页面显示条数固定
//接收分页查询相关参数
String currentPage = request.getParameter("currentPage"); //当前页
if(currentPage!=null && !"".equals(currentPage.trim())){
pb.setCurrentPage(Integer.parseInt(currentPage)); //设置当前页
}
String user_id = request.getParameter("user_id");
OrderService orderService = new OrderServiceImpl();
List<Order> list = orderService.getMyOrder(pb, condition, Integer.parseInt(user_id));
if(list.size()<=0 ){
out.close();
return;
}
request.setAttribute("list", list);
request.setAttribute("pb",pb);
request.setAttribute("condition", condition);
request.getRequestDispatcher("/files/myOrders.jsp").forward(request, response);
}
}
public class RegisterServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//处理请求以及响应乱码
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
//接收参数
String username = request.getParameter("username");
String password = request.getParameter("password");
String name = request.getParameter("name");
String sex = request.getParameter("sex");
String country = request.getParameter("country");
String papers_type = request.getParameter("papers_type");
String papers_num = request.getParameter("papers_num");
String phone = request.getParameter("phone");
String email = request.getParameter("email");
String address = request.getParameter("address");
//封装参数
User user = new User();
user.setUsername(username);
user.setPassword(password);
user.setName(name);
user.setSex(sex);
user.setCounty(country);
user.setPapers_type(papers_type);
user.setPapers_num(papers_num);
user.setPhone(phone);
user.setEmail(email);
user.setAddress(address);
//调用userService层方法进行修改
UserService userService = new UserServiceImpl();
return;
}
if(leaveTime==null || "".equals(leaveTime.trim())){
out.close();
return;
}
condition.setOrigin(start);
condition.setTerminus(end);
condition.setLeaveTime(leaveTime);
if(train_num != null && !"".equals(train_num.trim())){
condition.setTrain_num(train_num);
}
PageBean pb = new PageBean(); //页面显示条数固定
//接收分页查询相关参数
String currentPage = request.getParameter("currentPage"); //当前页
if(currentPage!=null && !"".equals(currentPage.trim())){
pb.setCurrentPage(Integer.parseInt(currentPage)); //设置当前页
}
//调用service层方法进行查询
TrainService trainService = new TrainServiceImpl();
List<Order> listTicket = new ArrayList<Order>();
List<Train> list = trainService.getTrainsByPage(pb, condition);
if(list.size()<=0 ){
out.close();
return;
}
for(int i=0;i<list.size();i++){
Train train = list.get(i);
Order ticket = new Order();
String stations = train.getStation();
String aTime = train.getA_time();
String gTime = train.getG_time();
String prices = train.getPrice();
String trainNum = train.getTrain_num();
int remainder = train.getRemainder();
String trainNum = request.getParameter("trainNum");
String train_num = request.getParameter("train_num");
String station = request.getParameter("station");
String a_time = request.getParameter("a_time");
String g_time = request.getParameter("g_time");
String price = request.getParameter("price");
String amount = request.getParameter("amount");
String remainder = request.getParameter("remainder");
//封装参数
Train train = new Train();
train.setTrain_num(train_num);
train.setStation(station);
train.setA_time(a_time);
train.setG_time(g_time);
train.setPrice(price);
train.setAmount(Integer.parseInt(amount));
train.setRemainder(Integer.parseInt(remainder));
//调用service层方法进行修改
OrderService orderService = new OrderServiceImpl();
List<Order> list = orderService.getOrderByTrainNum(train_num);
if(list.size()>0){
out.close();
return;
}
TrainService trainService = new TrainServiceImpl();
int result = trainService.updateTrain(train,trainNum);
if(result>0){
out.close();
}else{
out.close();
}
}
}
}
}
}
/**
* 退票
*/
public class ReturnTicketServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
String order_id = request.getParameter("order_id");
String train_num = request.getParameter("train_num");
String userId = request.getParameter("user_id");
if(order_id ==null || "".equals(order_id.trim())){
out.close();
return;
}
//调用service层方法进行退票
public class UpdateTrainServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
//接收参数
String trainNum = request.getParameter("trainNum");
String train_num = request.getParameter("train_num");
String station = request.getParameter("station");
String a_time = request.getParameter("a_time");
String g_time = request.getParameter("g_time");
String price = request.getParameter("price");
String amount = request.getParameter("amount");
String remainder = request.getParameter("remainder");
//封装参数
Train train = new Train();
train.setTrain_num(train_num);
train.setStation(station);
train.setA_time(a_time);
train.setG_time(g_time);
train.setPrice(price);
train.setAmount(Integer.parseInt(amount));
train.setRemainder(Integer.parseInt(remainder));
//调用service层方法进行修改
OrderService orderService = new OrderServiceImpl();
List<Order> list = orderService.getOrderByTrainNum(train_num);
if(list.size()>0){
out.close();
return;
}
TrainService trainService = new TrainServiceImpl();
int result = trainService.updateTrain(train,trainNum);
if(result>0){
out.close();
for(int i=0;i<list.size();i++){
Train train = list.get(i);
Order ticket = new Order();
String stations = train.getStation();
String aTime = train.getA_time();
String gTime = train.getG_time();
String prices = train.getPrice();
String trainNum = train.getTrain_num();
int remainder = train.getRemainder();
String []station = stations.split("/");
String []a_time = aTime.split("/");
String []g_time = gTime.split("/");
String []price = prices.split("/");
int startIndex =0 ;
int endIndex = 0 ;
for(int j=0;j<station.length;j++){
if(start.equals(station[j])){
startIndex = j;
}
if(end.equals(station[j])){
endIndex = j;
}
}
float startPrice =Float.parseFloat(price[startIndex]);
float endPrice = Float.parseFloat(price[endIndex]);
float ticketPrice = endPrice - startPrice;
ticket.setTrain_num(trainNum);
ticket.setOrigin(start);
ticket.setTerminus(end);
ticket.setA_time(a_time[endIndex]);
ticket.setG_time(g_time[startIndex]);
ticket.setPrice(ticketPrice);
ticket.setRemainder(remainder);
ticket.setLeaveTime(leaveTime);
listTicket.add(ticket);
}
request.setAttribute("listTicket",listTicket);
request.setAttribute("pb",pb);
request.setAttribute("condition", condition);
request.getRequestDispatcher("/buyTicket/buyTicket.jsp").forward(request, response);
}
}
int remainder1 = orderService.getRemainderByTrainNum(train_num);//余票数
int remainder2 = remainder1-1; //余票减1
int result = orderService.addOrder(order);
int result2 = orderService.updateTrain(remainder2,train_num);
if(result>0 && result2>0){
out.close();
}else{
out.close();
}
}
}
public class ToBuyTicketServlet extends HttpServlet {
public class UpdatePasswordServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
//接收参数
String id = request.getParameter("userId");
String oldPassword = request.getParameter("oldPassword");
String newPassword = request.getParameter("newPassword");
if(id==null || "".equals(id.trim())){
HttpSession session = request.getSession();
session.removeAttribute("status");
session.removeAttribute("welcome");
session.removeAttribute("username");
session.removeAttribute("user");
out.close();
return;
}
UserService userService = new UserServiceImpl();
User user = userService.getUserById(Integer.parseInt(id));