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 下载量 116 浏览量
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
资源评论
土豆片片
- 粉丝: 1838
- 资源: 5654
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- apache-maven-3.6.1-bin.zip
- c593f5fc-d4a7-4b43-8ab2-51afc90f3f62
- IIR滤波器参数计算函数
- WPF树菜单拖拽功能,下级目录拖到上级目录,上级目录拖到下级目录.zip
- CDH6.3.2版本hive2.1.1修复HIVE-14706后的jar包
- 鸿蒙项目实战-天气项目(当前城市天气、温度、湿度,24h天气,未来七天天气预报,生活指数,城市选择等)
- Linux环境下oracle数据库服务器配置中文最新版本
- Linux操作系统中Oracle11g数据库安装步骤详细图解中文最新版本
- SMA中心接触件插合力量(插入力及分离力)仿真
- 变色龙记事本,有NPP功能,JSONview功能
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功