JSP程序设计大作业.docx
《JSP程序设计大作业.docx》由会员分享,可在线阅读,更多相关《JSP程序设计大作业.docx(26页珍藏版)》请在冰豆网上搜索。
JSP程序设计大作业
JSP程序设计大作业
题目:
基于JSP的火车订票系统发
姓名:
王晶
学号:
10201412146
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登陆
<%@pagelanguage="java"import="java.util.*"contentType="text/html;charset=gb2312"%>
<%@includefile="iframe/head.jsp"%>
useBeanid="code"scope="page"class="com.util.CheckCode"/>
//检验表单的合法性
functionchecklogin(){
if(document.form1.username.value.replace(/\s+$|^\s+/g,"").length<=0){
alert("\请输入您的用户名!
");
document.form1.username.focus();
}
elseif(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();
}
elseif(document.form1.checkcode.value!
=document.form1.yzm.value){
alert("\验证码错误!
");
document.form1.checkcode.focus();
}
else{
form1.submit();
}
}
<%
Stringmessage=(String)request.getAttribute("message");
if(message==null){
message="";
}
if(!
message.trim().equals("")){
out.println("");
out.println("alert('"+message+"');");
out.println("");
}
request.removeAttribute("message");
Stringyzm=code.getCheckCode();
%>
Login.shtml?
method=PAGEUSERLOGINmethod=post>
欢迎登陆<%=sysList.get(0).toString()%>
|
用户名:
110px"size=15maxLength=10name=usernameonbeforepaste="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")%>>
|
密 码:
110px"type=passwordsize=15maxLength=16name=passwordonbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
onkeyup="value=value.replace(/[\W]/g,'')">
|
|
验证码:
">
<%=yzm%>
|
|
none;COLOR:
red"showmessagebox="True"showsummary="False">
找回密码reg2.jsp">注册会员
|
|
<%@includefile="iframe/foot.jsp"%>
2管理员添加新路线
News管理员增加路线
<%@pagelanguage="java"import="java.util.*"contentType="text/html;charset=gb2312"%>
<%@includefile="iframe/head.jsp"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:
//www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
//www.w3.org/1999/xhtml">
.ycbt{
BORDER-RIGHT:
#fff1pxsolid;BORDER-TOP:
#fff1pxsolid;PADDING-LEFT:
1.8em;BACKGROUND-COLOR:
#EAF2EF;BORDER-LEFT:
#fff1pxsolid;PADDING-TOP:
7px;BORDER-BOTTOM:
#fff1pxsolid;HEIGHT:
20px
}
.xsbt{
BORDER-RIGHT:
#fff1pxsolid;BORDER-TOP:
#fff1pxsolid;PADDING-LEFT:
1.8em;BACKGROUND-IMAGE:
url(images/head1.gif);BORDER-LEFT:
#fff1pxsolid;PADDING-TOP:
7px;BORDER-BOTTOM:
#fff1pxsolid;HEIGHT:
20px
}
.xsnr{
DISPLAY:
block
}
.ycnr{
DISPLAY:
none
}
functiontb_xs(t,m,n){
for(vari=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";}}}
--//屏蔽出错代码
functionkillErr(){
returntrue;
}
window.onerror=killErr;
//-->
--//处理大分类一行两个小分类
functionautoTable(div){
fs=document.getElementById(div).getElementsByTagName("TABLE");
for(vari=0;ifs[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;";
}
}
}
}
//-->
<%
Stringmessage=(String)request.getAttribute("message");
if(message==null){
message="";
}
if(!
message.trim().equals("")){
out.println("");
out.println("alert('"+message+"');");
out.println("");
}
request.removeAttribute("message");
%>
--//目的是为了做风格方便
document.write('');
//-->
序号
车辆路线 | 车次 | 开车时间 | 到站时间 | 坐位类型 | 票价 | 预定 | <%Listlist2=tb.getAllTrain();
if(list2.size()!
=0){
for(inti=0;iListlist3=(List)list2.get(i);
%>
<%=i+1%>
<%=list3.get
(1).toString()%>
<%=list3.get
(2).toString()%>
<%=list3.get(3).toString()%>
<%=list3.get(4).toString()%>
<%=list3.get(5).toString()%>
<%=list3.get(6).toString()%>
Job.shtml?
method=prepTrain&id=<%=list3.get(0).toString()%>">预定
<%}}%>
--//目的是为了做风格方便
document.write('