package dp.admin.svlt;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSet;
import java.util.ArrayList;
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 dp.been.Cusinfo;
import dp.been.Dpiao;
import dp.been.Piao;
import dp.been.Traininfo;
import dp.been.Userinfo;
import dp.been.Xianlu;
import dp.been.Zhandian;
import dp.utils.DbConn;
import dp.utils.FindService;
import dp.utils.HandleProperties;
public class Init extends HttpServlet {
/**
* Constructor of the object.
*/
public Init() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//设置传输数据编码方式
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html");
HttpSession session=request.getSession();
//获取当前登录用户信息
Object utype=session.getAttribute("utype");
Object userid=session.getAttribute("userid");
if(utype==null||userid==null){
return;
}
//获取前台数据
String flgs=request.getParameter("flgs");
String tname=request.getParameter("tname");
//定义sql语句变量
String sql="";
//创建配置文件操作对象
HandleProperties hp=new HandleProperties(session,utype+""+userid);
//创建数据库操作对象
DbConn db=new DbConn();
//管理员信息管理初始化
if("admin".equals(tname)){
if("1".equals(flgs)){
sql="select * from userinfo";
hp.setValue("sql", sql);
}else{
sql=hp.readValue("sql");
}
ResultSet rs=db.query(sql);
List<Userinfo> alist=FindService.getUserinfo(rs);
request.setAttribute("alist", alist);
request.getRequestDispatcher("/admin/mgadmin.jsp").forward(request, response);
return;
}
//顾客信息管理初始化
if("cusinfo".equals(tname)){
if("1".equals(flgs)){
sql="select * from cusinfo";
hp.setValue("sql", sql);
}else{
sql=hp.readValue("sql");
}
ResultSet rs=db.query(sql);
List<Cusinfo> alist=FindService.getCusinfo(rs);
request.setAttribute("alist", alist);
request.getRequestDispatcher("/admin/mgcusinfo.jsp").forward(request, response);
return;
}
//火车信息管理初始化
if("traininfo".equals(tname)){
if("1".equals(flgs)){
sql="select * from traininfo";
hp.setValue("sql", sql);
}else{
sql=hp.readValue("sql");
}
ResultSet rs=db.query(sql);
List<Traininfo> alist=FindService.getTraininfo(rs);
request.setAttribute("alist", alist);
request.getRequestDispatcher("/admin/mgtraininfo.jsp").forward(request, response);
return;
}
//站点信息管理初始化
if("zhandian".equals(tname)){
if("1".equals(flgs)){
sql="select * from zhandian";
hp.setValue("sql", sql);
}else{
sql=hp.readValue("sql");
}
ResultSet rs=db.query(sql);
List<Zhandian> alist=FindService.getZhandian(rs);
request.setAttribute("alist", alist);
request.getRequestDispatcher("/admin/mgzhandian.jsp").forward(request, response);
return;
}
//线路信息初始化
if("initxl".equals(tname)){
if("1".equals(flgs)){
sql="select * from traininfo";
hp.setValue("sql", sql);
}else{
sql=hp.readValue("sql");
}
List<Xianlu> xllist=new ArrayList();
DbConn db2=new DbConn();
ResultSet rs=db.query(sql);
List<Traininfo> tlist=FindService.getTraininfo(rs);
Iterator<Traininfo> it=tlist.iterator();
while(it.hasNext()){
Traininfo t=it.next();
Xianlu xl=new Xianlu();
xl.setTid(t.getId());
xl.setTname(t.getTname());
ResultSet rs2=db2.query("select zhandian.*,xh from xianlu,zhandian where xianlu.zdid=zhandian.id and xianlu.tid="+t.getId()+" order by xh");
List<Zhandian> zdlist=FindService.getZhandian(rs2);
xl.setZdlist(zdlist);
xllist.add(xl);
}
request.setAttribute("alist", xllist);
request.getRequestDispatcher("/admin/initxianlu.jsp").forward(request, response);
return;
}
//线路信息管理初始化
if("xianlu".equals(tname)){
String ids=request.getParameter("tid");
if("1".equals(flgs)){
sql="select zhandian.*,xh from zhandian,xianlu where zhandian.id=xianlu.zdid and xianlu.tid="+ids+" order by xh";
hp.setValue("sql", sql);
}else{
sql=hp.readValue("sql");
}
ResultSet rs=db.query(sql);
List<Zhandian> zlist=FindService.getZhandians(rs);
request.setAttribute("alist", zlist);
DbConn db2=new DbConn();
ResultSet rs2=db2.query("select * from zhandian where id not in(select zdid from xianlu where tid="+ids+")");
List<Zhandian> zdlist=FindService.getZhandian(rs2);
request.setAttribute("zdlist", zdlist);
DbConn db3=new DbConn();
Object tn=db3.getOnlyOne("select tname from traininfo where id="+ids);
Traininfo t=new Traininfo();
t.setId(Integer.parseInt(ids));
t.setTname(tn+"");
request.setAttribute("t", t);
request.getRequestDispatcher("/admin/mgxianlu.jsp").forward(request, response);
return;
}
//车票信息管理初始化
if("piao".equals(tname)){
String ids=request.getParameter("tid");
if("1".equals(flgs)){
sql="select tmp.*,zdname as eaddr,tname,traintype from (select piao.*,zdname as saddr from piao,zhandian where piao.szdid=zhandian.id and yxsj='1975-01-01' and zdname like '%0%') tmp,zhandian,traininfo where tmp.tid=traininfo.id and tmp.ezdid=zhandian.id and zdname like '%0%' and 1=0";
hp.setValue("sql", sql);
}else{
sql=hp.readValue("sql");
}
ResultSet rs2=db.query(sql);
List<Piao> plist=FindService.getPiao(rs2);
request.setAttribute("alist", plist);
DbConn db2=new DbConn();
ResultSet rs=db2.query("select * from traininfo");
List<Traininfo> tlist=FindService.getTraininfo(rs);
request.setAttribute("tlist", tlist);
request.getRequestDispatcher("/admin/mgpiao.jsp").forward(request, response);
return;
}
//订票信息管理初始化
if("dpiao".equals(tname)){
ResultSet rs=db.query("select dpiao.*,cxzh,ezdid,ezdname,ptype,pval,stime,szdid,szdname,tid,tname,traintype,yxsj from(select tmp.*,zdname as ezdname from(select piao.*,zdname as szdname,tname,traintype from piao,zhandian,traininfo where piao.tid=traininfo.id and piao.szdid=zhandian.id)tmp,zhandian where tmp.ezdid=zhandian.id)tm,dpiao,cusinfo where tm.id=dpiao.pid and dpiao.cidcard=cusinfo.cidcard");
List<Dpiao> dplist=FindService.getDpiao(rs);
request.setAttribute("alist", dplist);
request.getRequestDispatcher("/admin/mdpiao.jsp").forward(request, response);
return;
}
jsp+mysql开发的火车票网上购票系统源码.rar


2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
《基于JSP+MySQL的火车票网上购票系统详解》 火车票网上购票系统是现代信息技术在交通出行领域的重要应用,其核心在于为用户提供便捷、安全的在线购票服务。本系统采用JSP(JavaServer Pages)作为前端展示技术,MySQL作为后台数据库管理系统,实现了用户注册、登录、查询车次、预订及支付等一系列功能。以下将详细解析该系统的架构设计、关键技术以及实现流程。 一、系统架构设计 1. 前端:JSP作为动态网页技术,负责用户界面的呈现和交互处理。通过HTML、CSS和JavaScript进行页面布局与样式设计,利用JSP脚本语言处理用户的请求,如表单提交、数据验证等。 2. 后端:服务器端主要负责业务逻辑的处理和数据库操作。通常采用Servlet作为JSP与服务器之间的桥梁,处理用户请求,调用相应的业务方法,如查询车次、更新库存、处理订单等。 3. 数据库:MySQL作为关系型数据库,存储用户信息、车次信息、订单信息等关键数据。使用SQL语句进行数据的增删改查操作,保证数据的一致性和完整性。 二、关键技术 1. JSP+Servlet:JSP主要用于生成动态网页,Servlet则负责处理用户请求和控制业务流程。两者结合,构建MVC(Model-View-Controller)架构,提高了代码的可维护性和可扩展性。 2. JDBC(Java Database Connectivity):JDBC是Java连接数据库的标准接口,通过它,Java程序可以与MySQL数据库进行通信,执行SQL语句,实现数据的读写。 3. session和cookie:用于管理用户会话。session存储用户登录状态、购物车信息等,cookie用于记录用户偏好设置或临时登录状态。 4. AJAX(Asynchronous JavaScript and XML):在不刷新整个页面的情况下,实现局部数据的异步更新,提升用户体验。 三、实现流程 1. 用户注册/登录:用户填写信息,系统通过JSP页面接收,后端验证信息合法性,通过session保存用户状态。 2. 车次查询:用户输入出发地、目的地和日期,系统通过Servlet处理请求,查询MySQL数据库获取车次信息,并返回给前端展示。 3. 订票:用户选择车次,系统检查库存,如果可用,生成订单并扣减库存,否则提示无票。订单信息存储在数据库中。 4. 支付:系统提供支付接口,用户完成支付后,更新订单状态,完成购票过程。 5. 订单管理:用户可查看、取消或修改订单,系统根据用户操作更新数据库。 总结,基于JSP+MySQL的火车票网上购票系统,充分利用了Java的强大特性和MySQL的高效数据处理能力,实现了从用户交互到数据存储的完整流程。这种系统设计模式在实际应用中具有很高的灵活性和可靠性,是当前互联网服务领域常用的技术组合。通过对系统各部分的深入理解,开发者可以更好地设计和优化类似的应用,满足日益增长的在线服务需求。

























































































































- 1
- 2
- 3
- 4

- #完美解决问题
- #运行顺畅
- #内容详尽
- #全网独家
- #注释完整

- 粉丝: 1w+
- 资源: 4152





我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- STM32F103系列离线下载器制作全套指南:源程序、电路图与PCB图全解析,STM32F103系列离线下载器制作全攻略:源程序、电路图与PCB图全套解析,STM32F103系列离线下载器制作,包括源
- 基于多时段随机配电网重构的优化策略:以Switch Opening and Exchange Method for Stochastic Distribution Network Reconfigu
- Qt开发上位机源码解析:固高八轴运动控制卡集成与多语言样式切换功能下的喷码机控制及光学点定位技术,Qt开发上位机:基于固高八轴运动控制卡与海康威视相机的喷码机控制源码,支持光学点定位、二维码读码与等级
- 深度验证Logistic回归预测模型:Nomogram图、列线图与列线表的综合应用研究,深度验证Logistic回归预测模型:Nomogram图、列线图与列线表的综合应用研究,Logistic回归预测
- BP神经网络在数据分类预测与故障信号诊断中的matlab代码实现:注释详尽,直接运行出分类结果与误差分布,BP神经网络数据分类预测与故障信号诊断matlab代码实战:快速分类结果及误差分布可视化,BP
- C#高级运控框架:固高运动控制GTS400/800的开源解析与实现建议,C#驱动运控框架,掌握固高运动控制核心技术:GTS400与800源码解析,C#运控框架 固高运动控制 1、支持GTS400 80
- 专业量产电动自行车、滑板车电机控制方案:成熟Foc控制技术与国产芯片集成,功能全面升级,高效稳定调试体验,大厂成熟Foc电机控制方案应用于电动两轮车领域:专业调试,多功能集成,高效稳定控制代码,基于国
- 家庭微网能量管理的优化研究:基于并行分布式差分算法的改进粒子群含需求响应方法及其在含PV-电池系统的应用分析 ,基于改进粒子群算法的含需求响应家庭微网能量管理-并行分布式差分算法优化策略研究与应用
- 750W高PF值充电机电源方案:UCC28070等芯片组合,原理图与资料全解析,750W高PF值充电机电源方案详解:UCC28070+ST6599+PIC芯片组合,原理图与资料全套,750W高PF值充
- 污水厂全流程工艺的3D高清渲染图集,展示丰富设备配置及应用实践 ,3D渲染下的污水厂工艺设备全景图:全面呈现50余套设备的高清效果,污水厂高清效果图,3D渲染后高清图 基本污水厂的工艺段该有的都有,
- Modbus RTU通讯在西门子S7 PLC中实现简易源码编程管理多个从站:RS485总线与SCL语言应用,Modbus RTU通讯S7-1200主站程序简易实现指南:TIA博图SCL语言轻松读写RS
- SRM12-8开关磁阻电机:2200W功率、高效能额定转速3450rpm,开关磁阻电机SRM12-8型功率2200w,高效能额定转速3450rpm的电机技术详解,开关磁阻电机SRM12-8,功率220
- PCB封装库:类型齐全,命名规范,分类管理,附3D模型,可信赖的电子元器件库资源,高质量PCB封装库:类型齐全,命名规范,分类管理,附3D模型,可靠易用,Allegro PCB封装库(分类、命名很规范
- ,No.26 基于FPGA的cordic算法实现,输出sin和cos波形(quartusii版本),包括程序操作录像,算法程序 CORDIC为Coordinate rotation digital c
- 基于COMSOL模型的原油脱水技术:双液滴聚结行为研究及其关键因素分析,COMSOL原油脱水模型:基于流体场与电-磁场耦合的乳化液双液滴聚结行为研究,影响因素与速率关系的深入探讨,[COMSOL原油脱
- 基于多算法融合的智能数据预测与分类:SVM、BP、RBF神经网络与灰色算法的联合应用及优化研究,基于多算法融合的智能数据预测与分类技术研究:包括SVM、BP、RBF神经网络及灰色算法的应用,以及PSO


