下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 JSP程序设计大作业题目:基于JSP的火车订票系统发: 王晶学号: 102014121461 简介此系统主要应用于铁道部门,完成铁道部门管理人员对车票的管理和旅客对车票的订购等,实现车票管理的信息化。开发网上订购火车票系统不仅可以减轻铁道部门人员工作压力,比较系统地对车票、买票上的各项服务和信息进行管理,同时还可以方便旅客朋友们去查询和订购车票等,大大的提高服务质量和工作效率。2 技术路线用了哪些技术?分别用于解决什么 1数据库连接及操作通过构造方法加载数据库驱动,创建一个方法来获取数据库的连接,另一个方法来实现查询数据库的操作,另一个查询方法来实现增、删、改数据库的操作,closed()方
2、法来关闭数据库连接。2字符串处理类使用changeHTML()方法实现字符串中的特殊HTML字符;3用户登录入登录界面Login.jsp输入用户名和密码,在LoganDao中实例化数据库对象,在LogXServlet.java中将输入的用户名和密码与数据库中的数据进行对比,若相同则进入后台管理页面,否则重新登录3 系统设计a. 业务逻辑设计客户端向带有jsp引擎的web服务器请求,web服务器作出回应。Servelet调用JavaBean,转发jsp页面。由Servlet来执行业务逻辑并负责程序的流程控制,JavaBean组件实现业务逻辑,充当着模型的角色,JSP用于页面的显示。b. 功能模块
3、设计管理员模块功能本模块功能包括:添加、修改、删除和查询火车、线路和火车票信息以及修改个人密码等。添加火车、线路和火车票信息:主要是管理人员对火车自身信息、线路上存在的火车信息以及相应的火车票信息的添加。修改火车、线路和火车票信息:主要是管理人员对由于某些原因导致出现不合法火车信息和车票信息的更改、修订。删除火车、线路和火车票信息:主要是管理人员对一些不存在现实价值意义的火车和车票信息的删除。查询火车、线路和火车票信息:主要是管理人员对火车、线路和车票信息的查询。修改密码:管理人员修改自己的登录密码。用户模块功能本模块功能包括:用户注册信息,修改个人密码,查询个人信息,查询火车和线路信息,订购
4、车票和退换车票以及查看通知等。注册信息:主要是用户在使用此系统之前向系统数据库中注册个人信息,便于系统以后的管理和保障系统的安全。修改个人密码:主要是为了保障用户信息安全,用户可以对自己密码进行替换和重新设置。查询个人信息:主要是用户对自己的信息查询。查询火车和线路信息:主要是用户根据自己所想要订购的车票,查询其相应的火车及其线路的相关信息。订购车票:用户订购自己所需要的车票。4 详细设计1登陆注册部分Login登陆<%pagelanguage="java"import="java.util.*"contentType="text/htm
5、l;charset=gb2312"%><%includefile="iframe/head.jsp"%><jsp:useBeanid="code"scope="page"class=".util.CheckCode"/><SCRIPTlanguage=javascript>/检验表单的合法性function checklogin() if (document.form1.username.value.replace(/s+$|s+/g,"").
6、length<=0) alert("请输入您的用户名!");document.form1.username.focus();else if (document.form1.password.value.replace(/s+$|s+/g,"").length<=0) alert("请输入您的密码!");document.form1.password.focus();else if(document.form1.checkcode.value.replace(/s+$|s+/g,"").length<
7、;=0) alert("请输入验证码!");document.form1.checkcode.focus(); else if (document.form1.checkcode.value != document.form1.yzm.value) alert("验证码错误!");document.form1.checkcode.focus();else form1.submit();</SCRIPT><%String message = (String)request.getAttribute("message")
8、;if(message = null)message = ""if (!message.trim().equals("")out.println("<script language='javascript'>");out.println("alert('"+message+"');");out.println("</script>");request.removeAttribute("message"
9、);String yzm=code.getCheckCode();%><FORMid=form1name=form1action=<%=basePath %>Login.shtml?method=PAGEUSERLOGINmethod=post><TABLEwidth=600border=0align="center"id=Table7><TBODY><TRheight=40><TDvAlign=centeralign=middlecolSpan=3><FONTface=宋体><
10、/FONT><BR><FONTcolor=#ff7700><STRONG>欢迎登陆<%=sysList.get(0).toString() %></STRONG></FONT></TD></TR><TR><TDcolSpan=3><HRclass=huialign=centerwidth="98%"SIZE=1></TD></TR><TRheight=60><TDalign=rightwidth=
11、84height=110></TD><TDnoWrapalign=middlewidth=171><TABLEwidth="100%"border=0><TBODY><TR><TDwidth="35%"height=24>用户名:</TD><TD><INPUTclass=input_newid=usernamestyle="WIDTH: 110px" size=15maxLength=10name=usernameonbefor
12、epaste="clipboardData.setData('text',clipboardData.getData('text').replace(/d/g,'')"onkeyup="value=value.replace(/W/g,'')"value=<%=request.getAttribute("reg_user")=null?"":request.getAttribute("reg_user") %>>&
13、lt;/TD></TR><TR><TDheight=25>密码:</TD><TDheight=25><INPUTclass=input_newid=passwordstyle="WIDTH: 110px" type=passwordsize=15maxLength=16name=passwordonbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/d/
14、g,'')"onkeyup="value=value.replace(/W/g,'')"></TD></TR><TR><TDcolspan=2height=25><inputtype=hiddenname=reg_typevalue=person></TD></TR><TR><TDheight=25>验证码:</TD><TDheight=25><inputtype="hidden&
15、quot;name="yzm"value="<%=yzm %>"><INPUTclass=input_newid=checkcodesize=5maxlength="4"name=checkcodeonKeyUp="this.value=this.value.replace(/D/gi,'')"><%=yzm %></TD></TR><TR><TDheight=25></TD><TDheigh
16、t=25><inputtype=buttonvalue="登录"onClick="checklogin()"></TD></TR></TBODY></TABLE></TD><TDwidth=81><LABEL></LABEL></TD></TR><TR><TDvAlign=centerheight=20><DIVid=Login1_ValidationSummary2style="
17、;DISPLAY: none; COLOR: red" showmessagebox="True"showsummary="False"></DIV></TD><TDclass=red1vAlign=center><Aclass=dhx12href=""></A></TD><TDvAlign=center><Ahref="lost.jsp">找回密码</A><Ahref="&l
18、t;%=basePath %>reg2.jsp">注册会员</A></TD></TR><TR><TDvAlign=centercolSpan=3height=22><HRclass=huialign=centerwidth="98%"SIZE=1></TD></TR><TRheight=40><TDclass=buttomtxtalign=middlecolSpan=3height=21></TD></TR>&
19、lt;/TBODY></TABLE></FORM><%includefile="iframe/foot.jsp"%>2管理员添加新路线News管理员增加路线<%pagelanguage="java"import="java.util.*"contentType="text/html;charset=gb2312"%><%includefile="iframe/head.jsp"%><!DOCTYPEHTMLPUBLIC&qu
20、ot;-/W3C/DTD HTML 4.01 Transitional/EN""./TR/1999/REC-html401-19991224/loose.dtd"><HTMLxmlns="./1999/xhtml"><HEAD><LINKhref="images/default.css"type=text/cssrel=stylesheet><LINKhref="images/css.css"type=text/cssrel=sty
21、lesheet><METAhttp-equiv=Content-Typecontent="text/html; charset=gb2312"><STYLEtype=text/css>.ycbt BORDER-RIGHT: #fff 1px solid; BORDER-TOP: #fff 1px solid; PADDING-LEFT: 1.8em; BACKGROUND-COLOR: #EAF2EF; BORDER-LEFT: #fff 1px solid; PADDING-TOP: 7px; BORDER-BOTTOM: #fff 1px
22、solid; HEIGHT: 20px.xsbt BORDER-RIGHT: #fff 1px solid; BORDER-TOP: #fff 1px solid; PADDING-LEFT: 1.8em; BACKGROUND-IMAGE: url(images/head1.gif); BORDER-LEFT: #fff 1px solid; PADDING-TOP: 7px; BORDER-BOTTOM: #fff 1px solid; HEIGHT: 20px.xsnr DISPLAY: block.yr DISPLAY: none</STYLE><SCRIPTtype
23、=text/javascript>function tb_xs(t,m,n)for(var i=1;i<=m;i+)if (i != n)document.getElementById("tb"+t+ "_bt" + i).className= "ycbt"document.getElementById("tb"+t+ "_nr" + i).className= "yr"elsedocument.getElementById("tb"+t+ &
24、quot;_bt" + i).className= "xsbt"document.getElementById("tb"+t+ "_nr" + i).className= "xsnr"</SCRIPT><SCRIPTlanguage=JavaScript><!-/屏蔽出错代码function killErr()return true;window.onerror=killErr;/-></SCRIPT><SCRIPTlanguage=JavaScrip
25、t><!-/处理大分类一行两个小分类function autoTable(div)fs=document.getElementById(div).getElementsByTagName("TABLE");for(var i=0;i<fs.length;i+)fsi.style.width='49.5%'if(i%2=1)f (document.all) fsi.style.styleFloat="right"elsefsi.style.cssFloat="right;"elseif (documen
26、t.all) fsi.style.styleFloat="left"elsefsi.style.cssFloat="left;"/-></SCRIPT><SCRIPTlanguage=JavaScriptsrc="images/inc.js"></SCRIPT><SCRIPTlanguage=JavaScriptsrc="images/default.js"></SCRIPT><SCRIPTlanguage=JavaScriptsrc=&quo
27、t;images/swfobject.js"></SCRIPT><METAcontent="MSHTML 6.00.2900.3268"name=GENERATOR></HEAD><%String message = (String)request.getAttribute("message");if(message = null)message = ""if (!message.trim().equals("")out.println("<
28、script language='javascript'>");out.println("alert('"+message+"');");out.println("</script>");request.removeAttribute("message");%><BODYtext=#000000bgColor=#ffffffleftMargin=0topMargin=0><SCRIPTlanguage=JavaScript>&
29、lt;!-/目的是为了做风格方便document.write('<div class="wrap">');/-></SCRIPT><TABLEwidth="100%"border=0align="center"cellPadding=3cellSpacing=1class=tablewidth><TBODY><TRalign="center"class=head><TDheight=23>序号</TD><
30、TD>车辆路线</TD><TD>车次</TD><TD>开车时间</TD><TD>到站时间</TD><TD>坐位类型</TD><TD>票价</TD><TD>预定</TD></TR><%List list2=tb.getAllTrain();if(list2.size()!=0)for(int i = 0; i<list2.size(); i+)List list3 = (List)list2.get(i);%&g
31、t;<TRalign="center"bgColor=#ffffff><TDwidth="30"id=map><%=i+1 %></TD><TDid=map><%=list3.get(1).toString() %></TD><TDid=map><%=list3.get(2).toString() %></TD><TDid=map><%=list3.get(3).toString() %></TD>&
32、lt;TDid=map><%=list3.get(4).toString() %></TD><TDid=map><%=list3.get(5).toString() %></TD><TDid=map><%=list3.get(6).toString() %></TD><TDid=map><ahref="<%=basePath %>Job.shtml?method=prepTrain&id=<%=list3.get(0).toString()
33、%>">预定</a></TD></TR><%></TBODY></TABLE><SCRIPTlanguage=JavaScript><!-/目的是为了做风格方便document.write('</div>');/-></SCRIPT><SCRIPTlanguage=JavaScript><!-clickEdit.init();/-></SCRIPT></BODY></HTML>&
34、lt;%includefile="iframe/foot.jsp"%>3查询路线Research查询路线<%pagelanguage="java"import="java.util.*"contentType="text/html;charset=gb2312"%><%includefile="iframe/head.jsp"%><!DOCTYPEHTMLPUBLIC"-/W3C/DTD HTML 4.01 Transitional/EN"
35、"./TR/1999/REC-html401-19991224/loose.dtd"><HTMLxmlns="./1999/xhtml"><HEAD><LINKhref="images/default.css"type=text/cssrel=stylesheet><LINKhref="images/css.css"type=text/cssrel=stylesheet><METAhttp-equiv=Content-Typeco
36、ntent="text/html; charset=gb2312"><STYLEtype=text/css>.ycbt BORDER-RIGHT: #fff 1px solid; BORDER-TOP: #fff 1px solid; PADDING-LEFT: 1.8em; BACKGROUND-COLOR: #EAF2EF; BORDER-LEFT: #fff 1px solid; PADDING-TOP: 7px; BORDER-BOTTOM: #fff 1px solid; HEIGHT: 20px.xsbt BORDER-RIGHT: #fff
37、1px solid; BORDER-TOP: #fff 1px solid; PADDING-LEFT: 1.8em; BACKGROUND-IMAGE: url(images/head1.gif); BORDER-LEFT: #fff 1px solid; PADDING-TOP: 7px; BORDER-BOTTOM: #fff 1px solid; HEIGHT: 20px.xsnr DISPLAY: block.yr DISPLAY: none</STYLE><SCRIPTtype=text/javascript>function tb_xs(t,m,n)for
38、(var i=1;i<=m;i+)if (i != n)document.getElementById("tb"+t+ "_bt" + i).className= "ycbt"document.getElementById("tb"+t+ "_nr" + i).className= "yr"elsedocument.getElementById("tb"+t+ "_bt" + i).className= "xsbt&qu
39、ot;document.getElementById("tb"+t+ "_nr" + i).className= "xsnr"</SCRIPT><SCRIPTlanguage=JavaScript><!-/屏蔽出错代码function killErr()return true;window.onerror=killErr;/-></SCRIPT><SCRIPTlanguage=JavaScript><!-/处理大分类一行两个小分类function autoTable(d
40、iv)fs=document.getElementById(div).getElementsByTagName("TABLE");for(var i=0;i<fs.length;i+)fsi.style.width='49.5%'if(i%2=1)if (document.all) fsi.style.styleFloat="right"elsefsi.style.cssFloat="right;"elseif (document.all) fsi.style.styleFloat="left"
41、;elsefsi.style.cssFloat="left;"/-></SCRIPT><SCRIPTlanguage=JavaScriptsrc="images/inc.js"></SCRIPT><SCRIPTlanguage=JavaScriptsrc="images/default.js"></SCRIPT><SCRIPTlanguage=JavaScriptsrc="images/swfobject.js"></SCRIPT&
42、gt;<METAcontent="MSHTML 6.00.2900.3268"name=GENERATOR></HEAD><scripttype="text/javascript">function f1() form1.submit();function f2() form2.submit();</script><BODYtext=#000000bgColor=#ffffffleftMargin=0topMargin=0><SCRIPTlanguage=JavaScript><
43、;!-/目的是为了做风格方便document.write('<div class="wrap">');/-></SCRIPT><TABLEclass=dragTablecellSpacing=0cellPadding=0width="100%"border=0><TBODY><TR><TDclass=head><SPANclass=TAG>路线信息查询</SPAN></TD></TR><TR><T
44、Dclass=middlealign="center"><formaction="<%=basePath %>searchinfo.jsp"method="post"name="form1"><TABLEcellSpacing=0cellPadding=0width="100%"border=0><TBODY><TR><TDwidth=100%align=center>请选择路线:<selectname=&quo
45、t;train"><%List list=tb.getAllTrain();if(!list.isEmpty()for(int i=0;i<list.size();i+)List list2=(List)list.get(i);%><optionvalue=<%=list2.get(1).toString() %>><%=list2.get(1).toString() %></option><% %></select><inputtype=buttononclick="f1
46、()"value="查询信息"></TD></TR></TBODY></TABLE></form></TD></TR></TBODY></TABLE><SCRIPTlanguage=JavaScript><!-/目的是为了做风格方便document.write('</div>');/-></SCRIPT><SCRIPTlanguage=JavaScript><!-clic
47、kEdit.init();/-></SCRIPT></BODY></HTML><%includefile="iframe/foot.jsp"%>4显示路线查询结果Researchinfo查询结果<%pagelanguage="java"import="java.util.*,.util.*"contentType="text/html;charset=gb2312"%><%includefile="iframe/head.jsp&qu
48、ot;%><!DOCTYPEHTMLPUBLIC"-/W3C/DTD HTML 4.01 Transitional/EN""./TR/1999/REC-html401-19991224/loose.dtd"><HTMLxmlns="./1999/xhtml"><HEAD><LINKhref="images/default.css"type=text/cssrel=stylesheet><LINKhref="images/
49、css.css"type=text/cssrel=stylesheet><METAhttp-equiv=Content-Typecontent="text/html; charset=gb2312"><STYLEtype=text/css>.ycbt BORDER-RIGHT: #fff 1px solid; BORDER-TOP: #fff 1px solid; PADDING-LEFT: 1.8em; BACKGROUND-COLOR: #EAF2EF; BORDER-LEFT: #fff 1px solid; PADDING-T
50、OP: 7px; BORDER-BOTTOM: #fff 1px solid; HEIGHT: 20px.xsbt BORDER-RIGHT: #fff 1px solid; BORDER-TOP: #fff 1px solid; PADDING-LEFT: 1.8em; BACKGROUND-IMAGE: url(images/head1.gif); BORDER-LEFT: #fff 1px solid; PADDING-TOP: 7px; BORDER-BOTTOM: #fff 1px solid; HEIGHT: 20px.xsnr DISPLAY: block.yr DISPLAY:
51、 none</STYLE><SCRIPTtype=text/javascript>function tb_xs(t,m,n)for(var i=1;i<=m;i+)if (i != n)document.getElementById("tb"+t+ "_bt" + i).className= "ycbt"document.getElementById("tb"+t+ "_nr" + i).className= "yr"elsedocument.g
52、etElementById("tb"+t+ "_bt" + i).className= "xsbt"document.getElementById("tb"+t+ "_nr" + i).className= "xsnr"</SCRIPT><SCRIPTlanguage=JavaScript><!-/屏蔽出错代码function killErr()return true;window.onerror=killErr;/-></SCRIP
53、T><SCRIPTlanguage=JavaScript><!-/处理大分类一行两个小分类function autoTable(div)fs=document.getElementById(div).getElementsByTagName("TABLE");for(var i=0;i<fs.length;i+)fsi.style.width='49.5%'if(i%2=1)if (document.all) fsi.style.styleFloat="right"elsefsi.style.cssFloat
54、="right;"elseif (document.all) fsi.style.styleFloat="left"elsefsi.style.cssFloat="left;"/-></SCRIPT><SCRIPTlanguage=JavaScriptsrc="images/inc.js"></SCRIPT><SCRIPTlanguage=JavaScriptsrc="images/default.js"></SCRIPT><
55、;SCRIPTlanguage=JavaScriptsrc="images/swfobject.js"></SCRIPT><METAcontent="MSHTML 6.00.2900.3268"name=GENERATOR></HEAD><BODYtext=#000000bgColor=#ffffffleftMargin=0topMargin=0><SCRIPTlanguage=JavaScript><!-/目的是为了做风格方便document.write('<div class="wrap">');/-></SCRIPT><%String train=mon.toChineseAndTrim(request.getParameter("train");%><TABLEwidth="100%"border=0align="center"cellPadding=3cellSpacing=1class=tablewidth><TBODY><TRalign="center"clas
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《独立创作图画书》表格版教案-2026-2027学年冀美版(新教材)小学美术四年级上册
- 《职业规划能力提升与就业指导》第六章
- 生活垃圾堆肥操作工工艺优化模拟考核试卷含答案
- 高炉炼铁工岗前职业水平考核试卷含答案
- 2025年虚假信息生成检测方法
- 2025年执业医师考试-医师定期考核(口腔)历年参考题库含答案解析
- 2025年质检员《专业管理实务》练习模拟试题及答案
- 2025年中国农业银行校园招聘笔试参考试题附答案解析
- 2025年中药煎煮方法与技巧专项训练试题及答案
- 2025年注册城乡规划师实务真题(附答案)
- 新疆维吾尔自治区初中级档案职称考试(档案基础)手机备考题库及答案(2026年)
- 肿瘤心理干预沟通护理课件
- 2026年校招:中国银行试题及答案
- 2026年物业管理条例考核试题及答案
- 公共娱乐场所电气消防安全培训
- 2026秋新版道德与法治五年级上册教学课件:第七课第1课时 社会主义好-自力更生结硕果 有多个微课视频
- 第5课 中国人民站起来了 第1课时 课件(内嵌视频)2026-2027学年道德与法治五年级上册统编版
- 制造业公司绩效考核含全套KPI指标库
- 2026年《资料员》考试题库带答案(考试直接用)
- 水利水电工程基坑临边防护专项方案
- 2026年浙江省绍兴市越城区网格员招录真题(含答案)
评论
0/150
提交评论