当前位置:文档之家› JSP程序设计大作业

JSP程序设计大作业

JSP程序设计大作业题目:基于JSP的火车订票系统发姓名:**学号:***********1 简介此系统主要应用于铁道部门,完成铁道部门管理人员对车票的管理和旅客对车票的订购等,实现车票管理的信息化。

开发网上订购火车票系统不仅可以减轻铁道部门人员工作压力,比较系统地对车票、买票上的各项服务和信息进行管理,同时还可以方便旅客朋友们去查询和订购车票等,大大的提高服务质量和工作效率。

2 技术路线用了哪些技术?分别用于解决什么1数据库连接及操作通过构造方法加载数据库驱动,创建一个方法来获取数据库的连接,另一个方法来实现查询数据库的操作,另一个查询方法来实现增、删、改数据库的操作,closed()方法来关闭数据库连接。

2字符串处理类使用changeHTML()方法实现字符串中的特殊HTML字符;3用户登录入登录界面Login.jsp输入用户名和密码,在LoganDao中实例化数据库对象,在LogXServlet.java中将输入的用户名和密码与数据库中的数据进行对比,若相同则进入后台管理页面,否则重新登录3 系统设计a.业务逻辑设计客户端向带有jsp引擎的web服务器请求,web服务器作出回应。

Servelet调用JavaBean,转发jsp页面。

由Servlet来执行业务逻辑并负责程序的流程控制,JavaBean组件实现业务逻辑,充当着模型的角色,JSP用于页面的显示。

b. 功能模块设计⒈管理员模块功能本模块功能包括:添加、修改、删除和查询火车、线路和火车票信息以及修改个人密码等。

⑴添加火车、线路和火车票信息:主要是管理人员对火车自身信息、线路上存在的火车信息以及相应的火车票信息的添加。

⑵修改火车、线路和火车票信息:主要是管理人员对由于某些原因导致出现不合法火车信息和车票信息的更改、修订。

⑶删除火车、线路和火车票信息:主要是管理人员对一些不存在现实价值意义的火车和车票信息的删除。

⑷查询火车、线路和火车票信息:主要是管理人员对火车、线路和车票信息的查询。

⑸修改密码:管理人员修改自己的登录密码。

⒉用户模块功能本模块功能包括:用户注册信息,修改个人密码,查询个人信息,查询火车和线路信息,订购车票和退换车票以及查看通知等。

⑴注册信息:主要是用户在使用此系统之前向系统数据库中注册个人信息,便于系统以后的管理和保障系统的安全。

⑵修改个人密码:主要是为了保障用户信息安全,用户可以对自己密码进行替换和重新设置。

⑶查询个人信息:主要是用户对自己的信息查询。

⑷查询火车和线路信息:主要是用户根据自己所想要订购的车票,查询其相应的火车及其线路的相关信息。

⑸订购车票:用户订购自己所需要的车票。

4 详细设计1登陆注册部分Login登陆<%@page language="java"import="java.util.*"contentType="text/html;charset=gb2312"%><%@include file="iframe/head.jsp"%><jsp:useBean id="code"scope="page"class="com.util.CheckCode"/><SCRIPT language=javascript>//检验表单的合法性function checklogin() {if(ername.value.replace(/\s+$|^\s+/g,"").length<=0) { alert("\请输入您的用户名!");ername.focus();}else if(document.form1.password.value.replace(/\s+$|^\s+/g,"").length<=0) { alert("\请输入您的密码!");document.form1.password.focus();}elseif(document.form1.checkcode.value.replace(/\s+$|^\s+/g,"").length<=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");if(message == null){message = "";}if (!message.trim().equals("")){out.println("<script language='javascript'>");out.println("alert('"+message+"');");out.println("</script>");}request.removeAttribute("message");String yzm=code.getCheckCode();%><FORM id=form1name=form1action=<%=basePath %>Login.shtml?method=PAGEUSERLOGIN method=post><TABLE width=600border=0align="center"id=Table7><TBODY><TR height=40><TD vAlign=center align=middle colSpan=3><FONT face=宋体></FONT><BR><FONTcolor=#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><TD align=right width=84height=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=usernamestyle="WIDTH: 110px" size=15maxLength=10name=usernameonbeforepaste="clipboardData.setData('text',clipboardData.getData('te xt').replace(/[^\d]/g,''))"onkeyup="value=value.replace(/[\W]/g,'')" value=<%=request.getAttribute("reg_user")==null?"":request.getAttribu te("reg_user") %>></TD></TR><TR><TD height=25>密码:</TD><TD height=25><INPUT class=input_new id=passwordstyle="WIDTH: 110px" type=password size=15maxLength=16name=password onbeforepaste="clipboardData.setData('text',clipboardData.getData('te xt').replace(/[^\d]/g,''))"onkeyup="value=value.replace(/[\W]/g,'')"></TD></TR><TR><TD colspan=2height=25><input type=hidden name=reg_type value=person></TD></TR><TR><TD height=25>验证码:</TD><TD height=25><input type="hidden"name="yzm"value="<%=yzm %>"><INPUT class=input_new id=checkcodesize=5maxlength="4"name=checkcodeonKeyUp="this.value=this.value.replace(/\D/gi,'')"><%=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></TD></TR><TR><TD vAlign=center height=20><DIV id=Login1_ValidationSummary2style="DISPLAY: none; COLOR: red" showmessagebox="True"showsummary="False"></DIV></TD><TD class=red1vAlign=center><A class=dhx12href=""></A></TD><TD vAlign=center><A href="lost.jsp">找回密码</A><Ahref="<%=basePath %>reg2.jsp">注册会员</A></TD></TR><TR><TD vAlign=center colSpan=3height=22><HR class=hui align=center width="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"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"><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 http-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: 1.8em; 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: 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}.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" + i).className= "ycbt"; document.getElementById("tb"+t+ "_nr" + i).className= "ycnr";}else{document.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;//--></SCRIPT><SCRIPT language=JavaScript><!--//处理大分类一行两个小分类function autoTable(div){fs=document.getElementById(div).getElementsByTagName("TABLE");for(var i=0;i<fs.length;i++){fs[i].style.width='49.5%';if(i%2==1){f (document.all) {fs[i].style.styleFloat="right";}else{fs[i].style.cssFloat="right;";}}else{if (document.all) {fs[i].style.styleFloat="left";}else{fs[i].style.cssFloat="left;";}}}}//--></SCRIPT><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"name=GENERATOR></HEAD><%String message = (String)request.getAttribute("message");if(message == null){message = "";}if (!message.trim().equals("")){out.println("<script language='javascript'>");out.println("alert('"+message+"');");out.println("</script>");}request.removeAttribute("message");%><BODY text=#000000bgColor=#ffffff leftMargin=0topMargin=0><SCRIPT language=JavaScript><!--//目的是为了做风格方便document.write('<div class="wrap">');//--></SCRIPT><TABLE width="100%"border=0align="center"cellPadding=3 cellSpacing=1class=tablewidth><TBODY><TR align="center"class=head><TD height=23>序号</TD><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);%><TR align="center"bgColor=#ffffff><TD width="30"id=map><%=i+1 %></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.get(5).toString() %></TD><TD id=map><%=list3.get(6).toString() %></TD><TD id=map><ahref="<%=basePath %>Job.shtml?method=prepTrain&id=<%=list3.get(0).toS tring()%>">预定</a></TD></TR><%}}%></TBODY></TABLE><SCRIPT language=JavaScript><!--//目的是为了做风格方便document.write('</div>');//--></SCRIPT><SCRIPT language=JavaScript><!--clickEdit.init();//--></SCRIPT></BODY></HTML><%@include file="iframe/foot.jsp"%>3查询路线Research查询路线<%@page language="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"><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 http-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: 1.8em; 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: 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}.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" + i).className= "ycbt"; document.getElementById("tb"+t+ "_nr" + i).className= "ycnr";}else{document.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;//--></SCRIPT><SCRIPT language=JavaScript><!--//处理大分类一行两个小分类function autoTable(div){fs=document.getElementById(div).getElementsByTagName("TABLE");for(var i=0;i<fs.length;i++){fs[i].style.width='49.5%';if(i%2==1){if (document.all) {fs[i].style.styleFloat="right";}else{fs[i].style.cssFloat="right;";}}else{if (document.all) {fs[i].style.styleFloat="left";}else{fs[i].style.cssFloat="left;";}}}}//--></SCRIPT><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"name=GENERATOR></HEAD><script type="text/javascript">function f1(){form1.submit();}function f2(){form2.submit();}</script><BODY text=#000000bgColor=#ffffff leftMargin=0topMargin=0><SCRIPT language=JavaScript><!--//目的是为了做风格方便document.write('<div class="wrap">');//--></SCRIPT><TABLE class=dragTable cellSpacing=0cellPadding=0width="100%" border=0><TBODY><TR><TD class=head><SPAN class=TAG>路线信息查询</SPAN></TD></TR><TR><TD class=middle align="center"><form action="<%=basePath %>searchinfo.jsp"method="post"name="form1"><TABLE cellSpacing=0cellPadding=0width="100%"border=0><TBODY><TR><TD width=100%align=center>请选择路线:<select name="train"><%List list=tb.getAllTrain();if(!list.isEmpty()){for(inti=0;i<list.size();i++){List list2=(List)list.get(i);%><optionvalue=<%=list2.get(1).toString() %>><%=list2.get(1).toString() %></op tion><%}} %></select><input type=button onclick="f1()"value="查询信息"></TD></TR></TBODY></TABLE></form></TD></TR></TBODY></TABLE><SCRIPT language=JavaScript><!--//目的是为了做风格方便document.write('</div>');//--></SCRIPT><SCRIPT language=JavaScript><!--clickEdit.init();//--></SCRIPT></BODY></HTML><%@include file="iframe/foot.jsp"%>4显示路线查询结果Researchinfo查询结果<%@page language="java"import="java.util.*,com.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="/1999/xhtml"><HEAD><LINK href="images/default.css"type=text/css rel=stylesheet><LINK href="images/css.css"type=text/css rel=stylesheet><META http-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: 1.8em; 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: 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}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";} else{document.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;//--></SCRIPT><SCRIPT language=JavaScript><!--//处理大分类一行两个小分类function autoTable(div){fs=document.getElementById(div).getElementsByTagName("TABLE");for(var i=0;i<fs.length;i++){fs[i].style.width='49.5%';if(i%2==1){if (document.all) {fs[i].style.styleFloat="right";}else{fs[i].style.cssFloat="right;";}}else{if (document.all) {fs[i].style.styleFloat="left";}else{fs[i].style.cssFloat="left;";}}}}//--><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"name=GENERATOR></HEAD><BODY text=#000000bgColor=#ffffff leftMargin=0topMargin=0><SCRIPT language=JavaScript><!--//目的是为了做风格方便document.write('<div class="wrap">');//--></SCRIPT><%Stringtrain=Common.toChineseAndTrim(request.getParameter("train"));%><TABLE width="100%"border=0align="center"cellPadding=3cellSpacing=1 class=tablewidth><TBODY><TR align="center"class=head><TD height=23>序号</TD><TD>车辆路线</TD><TD>车次</TD><TD>开车时间</TD><TD>到站时间</TD><TD>坐位类型</TD><TD>票价</TD><TD>预定</TD></TR><%List list2=tb.getTrain(train);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 %></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.get(5).toString() %></TD><TD id=map><%=list3.get(6).toString() %></TD><TD id=map><ahref="<%=basePath %>Job.shtml?method=prepTrain&id=<%=list3.get(0).toS tring()%>">预定</a></TD></TR><%}}%></TBODY></TABLE><SCRIPT language=JavaScript><!--//目的是为了做风格方便document.write('</div>');//--></SCRIPT><SCRIPT language=JavaScript><!--clickEdit.init();//--></SCRIPT></BODY></HTML><%@include file="iframe/foot.jsp"%>5 测试结果(截图)6 总结本次大作业的选题,研究均是在我们的指导教师的悉心指导下进行的。

相关主题