package flight.file;
import dao.FB_db;
import dao.FB_id;
import java.io.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.data.DefaultCategoryDataset;
import org.jfree.data.DefaultPieDataset;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import flight.dao.FlightFile;
import flight.dao.FileDao;
import utility.LogEvent;
import utility.MD5Util;
//根据前端发来的action指令采取对应措施
//将数据库取出的数据jsonList传到前端
public class ServletAction extends HttpServlet {
public String module = "flight";
public String sub = "file";
public SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public LogEvent flightLog = new LogEvent();
public void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
try {
processAction(request,response);
} catch (Exception e) {
e.printStackTrace();
}
}
public void processAction(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8");
String action = request.getParameter("action");
showDebug("processAction收到的action是:"+action);
if (action.equals("get_record")){
try {
getRecord(request, response);
} catch (SQLException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
else if(action.equals("delete_record")) {
try {
deleteRecord(request, response);
} catch (SQLException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
else if(action.equals("modify_record")) {
try {
modifyRecord(request, response);
} catch (SQLException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
else if(action.equals("add_record")) {
try {
addRecord(request, response);
} catch (SQLException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void processError(HttpServletRequest request, HttpServletResponse response,int errorNo,String errorMsg) throws JSONException, IOException{
String action = request.getParameter("action");
//errorNo=0->没有错误
//errorNo=1->action是空值
//errorNo=2->没有对应的处理该action的函数
//errorNo=3->session超时
showDebug("错误信息:"+errorMsg+",代码:"+errorNo);
JSONObject jsonObj=new JSONObject();
boolean isAjax=true;
if(request.getHeader("x-requested-with")==null){isAjax=false;} //判断是异步请求还是同步请求
if(isAjax){
jsonObj.put("result_code",errorNo);
jsonObj.put("result_msg",errorMsg);
jsonObj.put("action",action);
response.setContentType("application/json; charset=UTF-8");
PrintWriter out;
try {
out = response.getWriter();
out.print(jsonObj);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}else{
errorMsg = java.net.URLEncoder.encode(errorMsg, "UTF-8");
String url = errorMsg;
showDebug(url);
response.sendRedirect(url);
}
}
public void showDebug(String msg){
System.out.println("["+(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(new Date())+"]["+module+"/ServletAction]"+msg);
}
//从前端获取数据存入变量中,用以调用数据库其他数据
public void getRecord(HttpServletRequest request, HttpServletResponse response) throws Exception {
HttpSession session = request.getSession();
String existResultset= request.getParameter("exist_resultset");
if((existResultset==null) ||(existResultset.equals("null") || existResultset.isEmpty())) existResultset="0";
//获取userID和username
String userId=session.getAttribute("userID")==null?null:(String)session.getAttribute("userID");
String srcPlace=request.getParameter("srcPlace");
String dstPlace=request.getParameter("dstPlace");
String srcDate=request.getParameter("srcDate");
System.out.println(srcPlace);
System.out.println(dstPlace);
System.out.println(srcDate);
//数据获取完毕,开始和数据库交互
FlightFile query=new FlightFile();
query.setDbName("FlightBooking");
query.setUserID(userId);
query.setSrcPlace(srcPlace);
query.setDstPlace(dstPlace);
query.setSrcDate(srcDate);
JSONObject jsonObj=null;
if(existResultset.equals("1")){
//要求提取之前查询结果,如果有就取出来,如果没有就重新查询一次,并且保存进session里
if(session.getAttribute(module+"_"+sub+"_get_record_result")!=null){
jsonObj=(JSONObject)session.getAttribute(module+"_"+sub+"_get_record_result");
}else{
//没有就报错
jsonObj=new JSONObject();
jsonObj.put("result_code",10);
jsonObj.put("result_msg","exist_resultset参数不当,服务器当前没有结果数据,请重新设置!");
}
}else{
//如果是新查询
FileDao fileDao=new FileDao();
jsonObj = fileDao.getRecord(query);
session.setAttribute(module+"_"+sub+"_get_record_result",jsonObj);
}
jsonObj.put("userID",userId);
//数据查询完毕,根据交互方式返回数据
boolean isAjax=true;
if(request.getHeader("x-requested-with")==null){isAjax=false;} //判断是异步请求还是同步请求
if(isAjax){
response.setContentType("application/json; charset=UTF-8");
try {
PrintWriter out = response.getWriter();
out.print(jsonObj); //数据写入缓冲区
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}else{
String resultMsg="操作已经执行,请按返回按钮返回列表页面!";
int resultCode=0;
resultMsg=java.net.URLEncoder.encode(resultMsg, "UTF-8");
//String url = redirectPath+"/"+redirectUrl;
showDebug(resultMsg);
//response.sendRedirect(url);
}
}
public void deleteRecord(HttpServletRequest request, HttpServletResponse response)
没有合适的资源?快使用搜索试试~ 我知道了~
基于java+Servlet的前后端分离编写的机票预订管理系统源码.zip
共35个文件
java:17个
jsp:8个
properties:4个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 39 浏览量
2024-01-11
00:31:00
上传
评论
收藏 51KB ZIP 举报
温馨提示
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于java+Servlet的前后端分离编写的机票预订管理系统源码.zip基于java+Servlet的前后端分离编写的机票预订管理系统源码.zip基于java+Servlet的前后端分离编写的机票预订管理系统源码.zip基于java+Servlet的前后端分离编写的机票预订管理系统源码.zip基于java+Servlet的前后端分离编写的机票预订管理系统源码.zip基于java+Servlet的前后端分离编写的机票预订管理系统源码.zip基于java+Servlet的前后端分离编写的机票预订管理系统源码.zip基于java+Servlet的前后端分离编写的机票预订管理系统源码.zip基于java+Servlet的前后端分离编写的机票预订管理系统源码.zip基于java+Servlet的前后端分离编写的机票预订管理系统源码.zip
资源推荐
资源详情
资源评论
收起资源包目录
基于java+Servlet的前后端分离编写的机票预订管理系统源码.zip (35个子文件)
code_20105
index.jsp 279B
user-info.jsp 8KB
src
utility
PageBean.java 526B
LogEvent.java 2KB
FileUpload.java 7KB
MD5Util.java 2KB
dao
FB_db.java 4KB
FB_id.java 4KB
user
file
ServletAction.java 5KB
dao
FileDao.java 3KB
UserFile.java 3KB
flight
file
ServletAction.java 14KB
OrderAction.java 4KB
dao
FileDao.java 7KB
FlightFile.java 6KB
common
ForgetSecret.java 3KB
LoginServlet.java 7KB
register
file
ServletAction.java 3KB
dao
SignUp.java 2KB
conf
db.properties 271B
dbip_backup.properties 68B
db_backup.properties 234B
dbip.properties 61B
ticket_add_div.jsp 9KB
user_list.jsp 3KB
modify-password.html 6KB
logout.jsp 218B
tickets_list.jsp 6KB
ticket_modify_div.jsp 10KB
signup.html 7KB
homepage.jsp 8KB
forget-password.html 7KB
scripts
login.js 3KB
user_list.js 6KB
ticket_list.js 12KB
共 35 条
- 1
资源评论
土豆片片
- 粉丝: 1800
- 资源: 5647
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【安卓毕业设计】基于安卓平台学生课堂质量采集分析查询系统源码(完整前后端+mysql+说明文档).zip
- C语言利用OpenGL绘制动态3D爱心代码实例
- C# OpenCvSharp Demo - 图像字符化.rar
- 【安卓毕业设计】Android商城源码(完整前后端+mysql+说明文档).zip
- 由噪声回路到开关电源PCB布线设计关键点
- 虚拟键盘模块 支持Windows/Linux平台,已测
- 自定义显示控件类DisplayWithStatus
- 【安卓毕业设计】基于Android的药材管理作业源码(完整前后端+mysql+说明文档).zip
- 计算机科学中贪心算法的深度剖析与经典案例解析
- C#.NET权限管理系统源码 企业基本通用权限框架系统源码数据库 SQL2008源码类型 WebForm
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功