版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JSP程序设计大作业题目:基于JSP的火车订票系统发: 王晶学号: 1 简介此系统主要应用于铁道部门,完成铁道部门管理人员对车票的管理和旅客对车票的订购等,实现车票管理的信息化。开发网上订购火车票系统不仅可以减轻铁道部门人职工作压力,比较系统地对车票、买票上的各项服务和信息进行管理,同时还可以方便旅客朋友们去查询和订购车票等,大大的提高服务质量和工作效率。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登陆<% page language="java" import="java.util.*" contentType="text/html;chars
5、et=gb2312" %><% include file="iframe/head.jsp" %><jsp:useBean id="code" scope="page" class="com.util.CheckCode" /><SCRIPT language=javascript>/检验表单的合法性function checklogin() if (document.form1.username.value.replace(/s+$|s+/g,"&qu
6、ot;).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,"").leng
7、th<=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&q
8、uot;);if(message = null)message = ""if (!message.trim().equals("")out.println("<script language='javascript'>");out.println("alert('"+message+"');");out.println("</script>");request.removeAttribute("message&
9、quot;);String yzm=code.getCheckCode();%> <FORM id=form1 name=form1 action=<%=basePath %>?method=PAGEUSERLOGIN method=post > <TABLE width=600 border=0 align="center" id=Table7> <TBODY> <TR height=40> <TD vAlign=center align=middle colSpan=3><FONT fa
10、ce=宋体></FONT><BR><FONT color=#ff7700><STRONG>欢送登陆<%=sysList.get(0).toString() %></STRONG></FONT></TD></TR> <TR> <TD colSpan=3> <HR class=hui align=center width="98%" SIZE=1> </TD></TR> <TR height=60&g
11、t; <TD align=right width=84 height=110></TD> <TD noWrap align=middle width=171> <TABLE width="100%" border=0> <TBODY> <TR> <TD width="35%" height=24>用户名:</TD> <TD> <INPUT class=input_new id=username style="WIDTH: 110px
12、" size=15 maxLength=10 name=username onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/d/g,'')" onkeyup="value=value.replace(/W/g,'')" value=<%=request.getAttribute("reg_user")=null?"":re
13、quest.getAttribute("reg_user") %>> </TD> </TR> <TR> <TD height=25>密码:</TD> <TD height=25> <INPUT class=input_new id=password style="WIDTH: 110px" type=password size=15 maxLength=16 name=password onbeforepaste="clipboardData.setDat
14、a('text',clipboardData.getData('text').replace(/d/g,'')" onkeyup="value=value.replace(/W/g,'')"> </TD> </TR> <TR> <TD colspan=2 height=25><input type=hidden name=reg_type value=person> </TD> </TR> <TR>
15、<TD height=25>验证码:</TD> <TD height=25><input type="hidden" name="yzm" value="<%=yzm %>" > <INPUT class=input_new id=checkcode size=5 maxlength="4" name=checkcode onKeyUp="this.value=this.value.replace(/D/gi,'')&quo
16、t;> <%=yzm %> </TD> </TR> <TR> <TD height=25></TD> <TD height=25><input type=button value="登录" onClick="checklogin()"></TD> </TR> </TBODY> </TABLE> </TD> <TD width=81> <LABEL> </LABEL&
17、gt; </TD> </TR> <TR><TD vAlign=center height=20><DIV id=Login1_ValidationSummary2 style="DISPLAY: none; COLOR: red" showmessagebox="True" showsummary="False"></DIV></TD> <TD class=red1 vAlign=center> <A class=dhx12 href
18、=""></A> </TD> <TD vAlign=center><A href="lost.jsp">找回密码</A> <A href="<%=basePath %>reg2.jsp">注册会员</A></TD></TR> <TR><TD vAlign=center colSpan=3 height=22> <HR class=hui align=center width=&qu
19、ot;98%" SIZE=1> </TD></TR> <TR height=40><TD class=buttomtxt align=middle colSpan=3 height=21></TD></TR></TBODY> </TABLE></FORM><% include file="iframe/foot.jsp"%>2管理员添加新路线News管理员增加路线<% page language="java" im
20、port="java.util.*" contentType="text/html;charset=gb2312" %><% include file="iframe/head.jsp" %><!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN" " :/ /TR/1999/REC-html401-19991224/loose.dtd"><HTML xmlns=" :/ w
21、3.org/1999/xhtml"><HEAD><LINK href="images/default.css" type=text/css rel=stylesheet><LINK href="images/css.css" type=text/css rel=stylesheet><META -equiv=Content-Type content="text/html; charset=gb2312"><STYLE type=text/css>.ycbt B
22、ORDER-RIGHT: #fff 1px solid; BORDER-TOP: #fff 1px solid; PADDING-LEFT: ; BACKGROUND-COLOR: #EAF2EF; BORDER-LEFT: #fff 1px solid; PADDING-TOP: 7px; BORDER-BOTTOM: #fff 1px solid; HEIGHT: 20px.xsbt BORDER-RIGHT: #fff 1px solid; BORDER-TOP: #fff 1px solid; PADDING-LEFT: ; BACKGROUND-IMAGE: url(images/h
23、ead1.gif); BORDER-LEFT: #fff 1px solid; PADDING-TOP: 7px; BORDER-BOTTOM: #fff 1px solid; HEIGHT: 20px.xsnr DISPLAY: block.ycnr DISPLAY: none</STYLE><SCRIPT type=text/javascript>function tb_xs(t,m,n)for(var i=1;i<=m;i+)if (i != n)document.getElementById("tb"+t+ "_bt"
24、; + i).className= "ycbt"document.getElementById("tb"+t+ "_nr" + i).className= "ycnr"elsedocument.getElementById("tb"+t+ "_bt" + i).className= "xsbt"document.getElementById("tb"+t+ "_nr" + i).className= "xs
25、nr"</SCRIPT><SCRIPT language=JavaScript><!-/屏蔽出错代码function killErr()return true;window.onerror=killErr;/-></SCRIPT><SCRIPT language=JavaScript><!-/处理大分类一行两个小分类function autoTable(div)fs=document.getElementById(div).getElementsByTagName("TABLE");for(var
26、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 (document.all) fsi.style.styleFloat="left"elsefsi.style.cssFloat="left;"/-></SCRIPT><SCRIPT language=Ja
27、vaScript src="images/inc.js"></SCRIPT><SCRIPT language=JavaScript src="images/default.js"></SCRIPT><SCRIPT language=JavaScript src="images/swfobject.js"></SCRIPT><META content="MSHTML 6.00.2900.3268" name=GENERATOR></H
28、EAD><%String message = (String)request.getAttribute("message");if(message = null)message = ""if (!message.trim().equals("")out.println("<script language='javascript'>");out.println("alert('"+message+"');");out.pr
29、intln("</script>");request.removeAttribute("message");%><BODY text=#000000 bgColor=#ffffff leftMargin=0 topMargin=0><SCRIPT language=JavaScript><!-/目的是为了做风格方便document.write('<div class="wrap">');/-></SCRIPT> <TABLE width
30、="100%" border=0 align="center" cellPadding=3 cellSpacing=1 class=tablewidth> <TBODY> <TR align="center" class=head><TD height=23>序号</TD><TD>车辆路线</TD><TD>车次</TD><TD>开车时间</TD><TD>到站时间</TD><TD&g
31、t;坐位类型</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);%> <TR align="center" bgColor=#ffffff><TD width="30" id=map><%=i+1
32、 %></TD><TD id=map><%=list3.get(1).toString() %></TD><TD id=map><%=list3.get(2).toString() %></TD><TD id=map><%=list3.get(3).toString() %></TD><TD id=map><%=list3.get(4).toString() %></TD><TD id=map><%=list3.ge
33、t(5).toString() %></TD><TD id=map><%=list3.get(6).toString() %></TD><TD id=map><a href="<%=basePath %>Job.shtml?method=prepTrain&id=<%=list3.get(0).toString()%>">预定</a></TD> </TR><%> </TBODY> </TABLE>
34、;<SCRIPT language=JavaScript><!-/目的是为了做风格方便document.write('</div>');/-></SCRIPT><SCRIPT language=JavaScript><!-clickEdit.init();/-></SCRIPT></BODY></HTML><% include file="iframe/foot.jsp"%>3查询路线Research查询路线<% page langu
35、age="java" import="java.util.*" contentType="text/html;charset=gb2312" %><% include file="iframe/head.jsp" %><!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN" " :/ /TR/1999/REC-html401-19991224/loose.dtd"><
36、;HTML xmlns=" :/ /1999/xhtml"><HEAD><LINK href="images/default.css" type=text/css rel=stylesheet><LINK href="images/css.css" type=text/css rel=stylesheet><META -equiv=Content-Type content="text/html; charset=gb2312"><STYLE t
37、ype=text/css>.ycbt BORDER-RIGHT: #fff 1px solid; BORDER-TOP: #fff 1px solid; PADDING-LEFT: ; BACKGROUND-COLOR: #EAF2EF; BORDER-LEFT: #fff 1px solid; PADDING-TOP: 7px; BORDER-BOTTOM: #fff 1px solid; HEIGHT: 20px.xsbt BORDER-RIGHT: #fff 1px solid; BORDER-TOP: #fff 1px solid; PADDING-LEFT: ; BACKGRO
38、UND-IMAGE: url(images/head1.gif); BORDER-LEFT: #fff 1px solid; PADDING-TOP: 7px; BORDER-BOTTOM: #fff 1px solid; HEIGHT: 20px.xsnr DISPLAY: block.ycnr DISPLAY: none</STYLE><SCRIPT type=text/javascript>function tb_xs(t,m,n)for(var i=1;i<=m;i+)if (i != n)document.getElementById("tb&
39、quot;+t+ "_bt" + i).className= "ycbt"document.getElementById("tb"+t+ "_nr" + i).className= "ycnr"elsedocument.getElementById("tb"+t+ "_bt" + i).className= "xsbt"document.getElementById("tb"+t+ "_nr" +
40、 i).className= "xsnr"</SCRIPT><SCRIPT language=JavaScript><!-/屏蔽出错代码function killErr()return true;window.onerror=killErr;/-></SCRIPT><SCRIPT language=JavaScript><!-/处理大分类一行两个小分类function autoTable(div)fs=document.getElementById(div).getElementsByTagName(&quo
41、t;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"elsefsi.style.cssFloat="left;"/-></SCRIPT&g
42、t;<SCRIPT language=JavaScript src="images/inc.js"></SCRIPT><SCRIPT language=JavaScript src="images/default.js"></SCRIPT><SCRIPT language=JavaScript src="images/swfobject.js"></SCRIPT><META content="MSHTML 6.00.2900.3268"
43、name=GENERATOR></HEAD><script type="text/javascript">function f1() form1.submit();function f2() form2.submit();</script><BODY text=#000000 bgColor=#ffffff leftMargin=0 topMargin=0><SCRIPT language=JavaScript><!-/目的是为了做风格方便document.write('<div clas
44、s="wrap">');/-></SCRIPT> <TABLE class=dragTable cellSpacing=0 cellPadding=0 width="100%" border=0><TBODY> <TR> <TD class=head ><SPAN class=TAG>路线信息查询</SPAN> </TD></TR><TR><TD class=middle align="center&
45、quot; ><form action="<%=basePath %>searchinfo.jsp" method="post" name="form1" > <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD width=100% align=center>请选择路线:<select name="train">
46、; <%List list=tb.getAllTrain();if(!list.isEmpty()for(int i=0;i<list.size();i+)List list2=(List)list.get(i);%> <option value=<%=list2.get(1).toString() %>><%=list2.get(1).toString() %></option> <% %> </select> <input type=button onclick="f1()"
47、 value="查询信息"></TD></TR></TBODY></TABLE></form></TD></TR> </TBODY> </TABLE><SCRIPT language=JavaScript><!-/目的是为了做风格方便document.write('</div>');/-></SCRIPT><SCRIPT language=JavaScript><!-clickEd
48、it.init();/-></SCRIPT></BODY></HTML><% include file="iframe/foot.jsp"%>4显示路线查询结果Researchinfo查询结果<% page language="java" import="java.util.*,.*" contentType="text/html;charset=gb2312" %><% include file="iframe/head.jsp&q
49、uot; %><!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN" " :/ /TR/1999/REC-html401-19991224/loose.dtd"><HTML xmlns=" :/ /1999/xhtml"><HEAD><LINK href="images/default.css" type=text/css rel=stylesheet><LINK h
50、ref="images/css.css" type=text/css rel=stylesheet><META -equiv=Content-Type content="text/html; charset=gb2312"><STYLE type=text/css>.ycbt BORDER-RIGHT: #fff 1px solid; BORDER-TOP: #fff 1px solid; PADDING-LEFT: ; BACKGROUND-COLOR: #EAF2EF; BORDER-LEFT: #fff 1px sol
51、id; PADDING-TOP: 7px; BORDER-BOTTOM: #fff 1px solid; HEIGHT: 20px.xsbt BORDER-RIGHT: #fff 1px solid; BORDER-TOP: #fff 1px solid; PADDING-LEFT: ; BACKGROUND-IMAGE: url(images/head1.gif); BORDER-LEFT: #fff 1px solid; PADDING-TOP: 7px; BORDER-BOTTOM: #fff 1px solid; HEIGHT: 20px.xsnr DISPLAY: block.ycn
52、r DISPLAY: none</STYLE><SCRIPT type=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= "ycnr"e
53、lsedocument.getElementById("tb"+t+ "_bt" + i).className= "xsbt"document.getElementById("tb"+t+ "_nr" + i).className= "xsnr"</SCRIPT><SCRIPT language=JavaScript><!-/屏蔽出错代码function killErr()return true;window.onerror=killErr;/-
54、></SCRIPT><SCRIPT language=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
55、.style.cssFloat="right;"elseif (document.all) fsi.style.styleFloat="left"elsefsi.style.cssFloat="left;"/-></SCRIPT><SCRIPT language=JavaScript src="images/inc.js"></SCRIPT><SCRIPT language=JavaScript src="images/default.js">
56、;</SCRIPT><SCRIPT language=JavaScript src="images/swfobject.js"></SCRIPT><META content="MSHTML 6.00.2900.3268" name=GENERATOR></HEAD><BODY text=#000000 bgColor=#ffffff leftMargin=0 topMargin=0><SCRIPT language=JavaScript><!-/目的是为了做风格方便
57、document.write('<div class="wrap">');/-></SCRIPT><%String train=Common.toChineseAndTrim(request.getParameter("train");%> <TABLE width="100%" border=0 align="center" cellPadding=3 cellSpacing=1 class=tablewidth> <TBODY> <TR align="cen
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 渭南市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(巩固)
- 南昌市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)参考答案详解
- 重庆市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(a卷)
- 宜宾市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(名师系列)
- 广元市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)完整答案详解
- 2026年绥化市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解1套
- 锦州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(培优a卷)
- 贵阳市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(典型题)
- 梁平县农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(综合题)
- 2026年舟山市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及一套参考答案详解
- 2025年上海中考复习必背英语考纲词汇表默写(汉英互译)
- 合伙养猪的协议合同
- 执法办案中心应急预案
- 脑血管造影术课件
- 精神科服药健康宣教课件
- T-CIPS 013-2024 高校和科研机构专利转化运用评价规范
- 代孕协议样本
- 2025-2030年中国凹印制版产业前景趋势展望及投资潜力评估报告
- 《眼睑疾病》课件
- DB3707T 089.3-2023 应急救援队伍建设规范 第3部分:地震、地质灾害
- 【MOOC】心理学与生活-南京大学 中国大学慕课MOOC答案
评论
0/150
提交评论