JSP程序设计大作业_第1页
JSP程序设计大作业_第2页
JSP程序设计大作业_第3页
JSP程序设计大作业_第4页
JSP程序设计大作业_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JSP程序设计大作业

题目:基于JSP的火车订票系统发

姓名:王晶

学号:10201412146

1简介

此系统主要应用于铁道部门,完成铁道部门管理人员对车票的管理与旅客对

车票的订购等,实现车票管理的信息化。开发网上订购火车票系统不仅可以减轻

铁道部门人员工作压力,比较系统地对车票、买票上的各项服务与信息进行管理,

同时还可以方便旅客朋友们去查询与订购车票等,大大的提高服务质量与工作效

率。

2技术路线

用了哪些技术?分别用于解决什么

1数据库连接及操作

通过构造方法加载数据库驱动,创建一个方法来获取数据库的连接,另一个方法来实现查询数

据库的操作,另一个查询方法来实现增、册k改数据库的操作,closed。

方法来关闭数据库连接。

2字符串处理类

使用changeHTML。方法实现字符串中的特殊HTML字符;

3用户登录

入登录界面Login、jsp输入用户名与密码,在LoganDao中实例化数据库对象,在LogXServlet、

java中将输入的用户名与密码与数据库中的数据进行对比,若相同则进入后台管理页面,否则

重新登录

3系统设计

a.业务逻辑设计

客户端向带有jsp引擎的web服务器请求,web服务器作出回应。Servelet调用JavaBean,转发

jsp页面。由Servlet来执行业务逻辑并负责程序的流程控制JavaBean组件实现业务逻辑,充

当着模型的角色,JSP用于页面的显示。

b、功能模块设计

1.管理员模块功能

本模块功能包括:添加、修改、删除与查询火车、线路与火车票信息以及修改个人密码

等。

⑴添加火车、线路与火车票信息:主要就是管理人员对火车自身信息、线路上存在的火

车信息以及相应的火车票信息的添加。

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

车信息与车票信息的更改、修订。

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

与车票信息的删除。

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

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

2.用户模块功能

本模块功能包括:用户注册信息,修改个人密码,查询个人信息,查询火车与线路信息,订购

车票与退换车票以及查瞧通知等。

⑴注册信息:主要就是用户在使用此系统之前向系统数据库中注册个人信息,便于系统以

后的管理与保障系统的安全。

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

设置。

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

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

其线路的相关信息。

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

4详细设计

1登陆注册部分

Login登陆

<%@pagelanguage="java,rimport="java>util>★"

contentType=ntext/html;charset=gb2312n%>

<%@includefile=frame/head、jsp”%>

<jsp:useBeanid="code"scope="page"util、GeckCode”/>

<SCRIPTlanguage=javascript>

//检验表单的合法性

functionchecklogin(){

if(document、forml>username、value、replace(八s+$|人\s+/g,"“)、

length<=0){

alert("\请输入您的用户名!”);

document、formlsusername、focus();

)

elseif(documentsforml^password、value、replace(八s+$|人\s+/g,””)、

length<=0){

alert("\请输入您的密码!");

document、forml>password、focus();

)

elseif(document^formlcheckcode、value、replac㊀(八s+$|人\s+/g,"”)、

length<=0){

alert(”'请输入验证码!”);

document、formiccheckcode>focus();

}

elseif(document、formiccheckcode、value!=documentsforml>yzm、

value){

alert("\验证码错误!”);

document、forml^checkcode、focus();

)

else{

forml>submit();

)

}

</SCRIPT>

<%

Stringmessage=(String)request^getAttribute(nmessagen);

if(message==null){

message=

)

if([message、trim()>equals(""))(

out、printin(n<scriptlanguage=*javascript*>',);

out、printin("alert(*n+message+n1);n);

out、printin(H</script>n);

)

request、removeAttribute(HmessageH);

Stringyzm=code>getCheckCode();

%>

<FORMid=forn?lname=forml

action=<^basePath」〉Login、shtml?method=PAGEUSERLOG工Nmethod=post>

<TABLE

width=600border=0align="center"id=Table7>

<TBODY>

<TR

height=40>

<TDvAlign=centera1iqn=middlecolSpan=3>

<FONTface=^^></FONT><BRXFONT

color=#ff7700〉<STRONG〉欢迎登陆〈三二sysLj三邑_get(0)、

toString()%></STRONG></FONT>

</TDX/TR>

<TR>

<TDcolSpan=3>

<HRclass=huialign=centerwidth="98%'rSIZE=1>

</TDX/TR>

<TR

height=60>

<TDalign=rightwidth=84height=lI0>

</TD>

<TDnoWrapa1i.gn=middlewidth=l71>

<TABLEwidth=n100%"border=0>

<TBODY>

<TR>

<TDwidth="35%"height=24〉用户名:</TD>

<TD>

〈INPUTclass=input_newid=username

style=nWIDTH:llOpx"size=15maxLength=l0name=username

cnbeforepaste="clipboardData、setData(textr,clipboardData^

r1Ar1

getData(text)>replace(/[\d]/gf))"

onkeyup=,,value=value>replace(/[\W]/g,*,)n

value=<%=request>getAttribute(Hreg_usern)==null?nn:request>

getAttribute(”reg_userH)%»

</TD>

</TR>

<TR>

<TDheight=25>密码:</TD>

<TDheight=25>

<INPUTclass=input_newid=password

style=nWIDTH:11Opxutype=passwordsize=15maxLength=l6name=password

onbeforepaste="clipboardData、setData(rtext1,clipboardData>

rfrrn

getData(text)>replace(/[^\d]/gf))

onkeyup=,,value=value>replace(/[\W]/g,,1)n>

</TD>

</TR>

<TR>

<TDcolspan=2height=25xinputtype=hidden

name=reg_typevalue=person>

</TD>

</TR>

<TR>

<TDheight=25>验证石马:</TD>

<TDheight=25><inputtype=rthidden11

name="yzmnvalue=r,<%=yzm%>r,>

<INPUTclass=input_newidL=checkcode

size=5maxlength="4"name=checkcodeonKeyUp=Hthis>value=this>value、

replace(/\D/giz**)"><%=yzm%>

</TD>

</TR>

<TR>

<TDheight=25></TD>

<TDheight=25xinputtype=buttonvalue="

登录“onClick=nchecklogin()nx/TD>

</TR>

</TBODY>

</TABLE>

</TD>

<TDwidth=81>

<LABEL>

</LABEL>

</TD>

</TR>

<TR>

<TDvAlign=centerheight=20>

<DIVid=Loginl_ValidationSuimnary2

style=nDISPLAY:none;COLOR:red"showmessagebox="

showsummary="False"></DIV></TD>

<TDclass=red2vAlign=center>

<Acla.ss=dhxl2href="F,x/A>

</TD>

<TDvAlign=center>

<Ahref="lost>找回密码</A><A

href=,r<%=basePath%>reg2.jsp”>注册会员<3>

</TD>

</TR>

<TR>

<TDvA1ign=centercolSpan=3height=22>

<HRclass=huialign=centerwidth=l,98%t,

SIZE=1>

</TDX/TR>

<TRheight=40>

<TDclass=buttomtxta1ign=micldlecolSpan=3

height=21>

</TD>

</TR>

</TBODY>

</TABLE>

</FORM>

<%@includefile="iframe/footjsp"%>

2管理员添加新路线

News管理员增加路线

<%@pagelanguage="java11import=11java>util>>"

contentType="text/html;charset=gb2312"%>

<%@includefile=frame/head、jsp”%>

<!DOCTYPEHTMLPUBLIC”-//W3C//DTDHTML4、01Transitional//ENn

<HTMLxmlns="n>

<HEAD>

〈LINKhref="images/default>css11type=text/cssrel=stylesheet>

<LINKhref=nimages/css>css"type=text/cssrel=stylesheet>

<METAhttp-equiv=Content-Typecontent="text/html;charset=gb2312">

<STYLEtype=text/css>

、ycbt{

BORDER-RIGHT:Ipxsolid;BORDER-TOP:#fffIpxsolid;PADDING-LEFT:

1、8em;BACKGROUND-COLOR:#EAF2EE;BORDER-LEFT:#fffIpxsolid;

PADDING-TOP:7px;BORDER-BOTTOM:#fffIpxsolid;HEIGHT:20px

)

、xsbt{

BORDER-RIGHT:Ipxsolid;BORDER-TOP:Ipxsolid;PADDING-LEFT:

1.8em;BACKGROUND-IMAGE:url(images/headl.gif);BORDER-LEFT:Ipx

solid;PADDING-TOP:7px;BORDER-BOTTOM:#fffIpxsolid;HEIGHT:20px

}

、xsnr{

DISPLAY:block

}

、ycnr{

DISPLAY:none

}

</STYLE>

<SCRIPTtype=text/javascript>

functiontb_xs(tzmzn){

for(vari=l;i<=m;i++){

if(i!=n){

documentsgetElementByld(ntbn+t+n_bt"+i)、className="ycbt";

document、getElementByld(ntbn+t+n_nrH+i)、className="ycnr";}

else{

document、getElementByld('*tbn+t+H_btn+i)、className="xsbf*;

documentsgetElementByld(ntbn+t++i)>className="xsnr”;}}}

</SCRIPT>

<SCRIPTlanguage=JavaScript>

<!—//屏蔽出错代码

functionkillErr(){

returntrue;

}

window、onerror=killErr;

//—>

</SCRIPT>

<SCRIPTlanguage=JavaScript>

<!--//处理大分类一行两个小分类

functionautoTable(div){

fs=document>getElementByld(div)、getElementsByTagName(nTABLEn);

for(vari=0;i<fs^length;i++){

fs[i]>style、width=*49>5%1;

if(i%2==l){

f(document>all){

fs[i]>stylesstyleFloat=HrightH;

}else{

fs[i]>style、cssFloat=Hright;n;

)

)else{

if(document^all){

fs[i]>style、styleFloat=,,leftn;

}else{

fs[i]>style、cssFloat="left;H;

)

)

)

}

//—>

</SCRIPT>

<SCRIPTlanguage=JavaScriptsrc="images/inc>jsr,x/SCRIPT>

<SCRIPTlanguage=JavaScriptsrc="images/defaultjsr,x/SCRIPT>

<SCRIPTlanguage=JavaScriptsrc=11images/swfobjectyjsr,x/SCRIPT>

<METAcontent=nMSHTML6、00、2900.3268"name=GENERATOR>

</HEAD>

<%

Stringmessage=(String)requestsgetAttribute(nmessagen);

if(message==null){

message='*n;

)

if([message、trim()>equals(nn)){

out、printin(,'<scriptlanguage=1javascript*>**);

out、printin("alert(*n+message+n*);");

out、printin(*'</script>n);

}

request、removeAttribute("message**);

%>

<BODYtext=#000000bgColor=#ffffffleftMargin=OtopMargin=(7>

<SCRIPTlanguage=JavaScript>

<目的就是为了做风格方便

documentswrite(*<divclass=nwrap,f>');

//—>

〈/SCRIPT〉

<TABLEwidth=11100%"border=0align="center"cellPadding=3

cellSpacing=lclass=tablewidth>

<TBODY>

<TRalign="center"class=head>

<TDheight=23>序号</TD>

<TD〉车辆路线</TD>

<TD>车次</TD>

<TD〉开车时间</TD>

<TD>至I」站时间</TD>

<TD>坐位类型</TD>

<TD>票价</TD>

<TD〉预定</TD>

</TR>

<Listlist2=tbsgetAHTrain();

if(list2>size()!=0){

for(inti=0;i<list2>size();i++){

Listlist3=(List)list2、get(i);

%>

<TRalign="center"bgColor=#ffffff>

<TDwidth="30"id=7nap><%=i+l%></TD>

<TDid=n?ap><%=list3>get(1)、toString()%></TD>

<TDid=/napx%=list3^get⑵、toString()%></TD>

<TDid=n?ap><%list3>get(3)>toString()%></TD>

<TDid=znapx%=list3sget(4)、toString()%></TD>

<TDid=/nap><%=list3>get(5)>toString()%></TD>

<TDid=7nap><之=1is13、get⑹、toString()%></TD>

<TDid=/nap><ahref=,r<%=basePath%>

shtml?method=prepTrain&id=<.=1is13sget(0)stoString()>”>预定</a〉</TD>

</TR>

<%}}%>

</TBODY>

</TABLE>

<SCRIPTlanguage=JavaScript>

<”-//目的就是为了做风格方便

documentswrite(1</div>1);

//—>

</SCRIPT>

<SCRIPTlanguage=JavaScript>

<!——

clickEdit>init();

//-->

〈/SCRIPT〉

</BODY>

</HTML>

<%@includefile=niframe/foot>jsp,r%>

3查询路线

Research查询路线

<%@pagelanguage="java"import="java>util、*“

contentType="text/html;charset=gb2312"%>

<%@includefile=frame/head、jsp”%>

<!DOCTYPEHTMLPUBLICn-//W3C//DTDHTML4、01Transitional//ENnnn>

<HTMLxmlns="">

<HEAD>

<LINKhref="images/default>css11type=text/cssrel=stylesheet>

〈LINKhref=r,images/css>cssntype=text/cssrel=stylesheet>

〈METAhttp-equiv=Content-Typecontent="text/html;charset=gb2312">

<STYLEtype=text/css>

、ycbt{

BORDER-RIGHT:Ipxsolid;BORDER-TOP:*fffIpxsolid;PADDING-LEFT:

2、8em;BACKGROUND-COLOR:#EAF2EF;BORDER-LEFT:#fffIpxsolid;

PADDING-TOP:7px;BORDER-BOTTOM:Ipxsolid;HEIGHT:20px

}

、xsbt{

BORDER-RIGHT:Ipxsolid;BORDER-TOP:#fffIpxsolid;PADDING-LEFT:

1、8em;BACKGROUND-IMAGE:url(images/headl.gif);BORDER-LEFT:#fffIpx

solid;PADDING-TOP:7px;BORDER-BOTTOM:#fffIpxsolid;HEIGHT:20px

}

、xsnr{

DISPLAY:block

}

、ycnr{

DISPLAY:none

}

</STYLE>

<SCRIPTtype=text/javascript>

functiontb_xs(tzm,n){

for(vari=l;i<=m;i++){

if(i!=n){

document、getElementByld(ntbn+t+n_btn+i)、className=nycbtn;

document%getElementByld(,ftbn+t+n__nrH+i)、className="ycnr";}

else{

documentsgetElementByld(,rtbn+t+”_bt"+i)、className="xsbt”;

document、getElementByld(ntbn+t+n_nrH+i)>className=nxsnrH;}}}

</SCRIPT>

<SCRIPTlanguage=JavaScript>

<!--//屏蔽出错代码

functionkillErr(){

returntrue;

windowsonerror=killErr;

//—>

</SCRIPT>

<SCRIPTlanquage=JavaScript>

<!--//处理大分类一行两个小分类

functionautoTable(div){

fs=document^getElementByld(div)>getElementsByTagName(nTABLEn);

for(vari=0;i<fs>length;i++){

fs[i]sstyle>width='49N5%1;

if(i%2==l){

if(document、all){

fs[i]>style、styleFloat=Hrightn;

}else{

fs[i]>style、cssFloat=uright;n;

)

}else{

if(document、all){

fs[i]>style、styleFloat=,,leftn;

Jelse{

fs[i]>style、cssFloat=Hleft;n;

}

</SCRIPT>

<SCRIPTlanguage=JavaScriptsrc="images/inc>jsr,x/SCRIPT>

〈SCR工PTlanguage=JavaScriptsrc="images/default>Js,fx/SCRIPT>

<SCRIPTlanguage=JavaScriptsrc="images/swfobject>jsr,x/SCRIPT>

<METAcontent=uMSHTML6、00、2900、3268“GENERATOR

</HEAD>

<scripttype=11text/javascriptn>

functionfl()

forml>submit();

}

functionf2()

form2ssubmit();

)

</script>

<BODYtext=#OOOOOObgColor=leftMargin=0topMargin=(7>

<SCRIPTlanguage=JavaScript>

<!—//目的就是为了做风格方便

document%write(1<divclass=f,wrap'T>1);

</SCRIPT>

<TABLEclass=dragTablecellSpacing=(9cellPadding=Owidth="100%"

border=0>

<TBODY>

<TR>

<TDclass=head>

〈SPANclass=TAG〉路线信息查询〈/SPAN〉

</TD>

</TR>

<TR>

<TDclass=middlealign="center">

<formaction=n<%=basePath%>searchinfo^jsp"method="post"

name="forml”>

<TABLEcellSpacing=OcellPadding=Owidth="100%"border=0>

<TBODY>

<TR>

<TDwidth=JZOO告align=cent:er〉请选择路线:〈selectname="trainn>

<%Listlist=tb、getAllTrain();if(!list>isEmpty()){for(int

i=0;i<list>size();i++){Listlist2=(List)list>get(i);%>

<optionvalue=<%^list2^get(l)、toString()%»<%=list2>get(1)>

toString()%></option>

<%}}%>

</select><inputtype=buttononclick=nf1()HY"查询信息

,rX/TD>

</TR>

</TBODY>

</TABLE>

</form>

</TD>

</TR>

</TBODY>

</TABLE>

<SCRIPTlanguage=JavaScript>

<!—//目的就是为了做风格方便

documentswrite(*</div>1);

//——>

</SCRIPT>

<SCRIPTlanguage=JavaScript>

<!——

clickEdit、init();

//—>

</SCRIPT>

</BODY>

</HTML>

<%@includefile=niframe/foot.jsp"%>

4显示路线查询结果

Researchinfo查询结果

<%@pagelanguage="java11import="java>util>util>

contentType="text/html;charset=gb2312"%>

<%@includefile="Wframe/bead、jsp”%>

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4、01Transitional//ENU

<HTMLxmlns="">

<HEAD>

<LINKhref="images/defaultcssntype=text/cssrel=stylesheet>

<LINKhref=r'images/css>cssr,type=text/cssrel=stylesheet>

<METAhttp-equiv=Content-Typecontent="text/html;charset=gb2312">

<STYLEtype=text/css>

、ycbt{

BORDER-RIGHT:#fffIpxsolid;BORDER-TOP:Ipxsolid;PADDING-LEFT:

1>8em;BACKGROUND-COLOR:#EAF2EF;BORDER-LEFT:#fffIpxsolid;

PADDING-TOP:7px;BORDER-BOTTOM:#fffIpxsolid;HEIGHT:20px

}

、xsbt{

BORDER-RIGHT:Ipxsolid;BORDER-TOP:Ipxsolid;PADDING-LEFT:

1.8em;BACKGROUND-IMAGE:url(images/headl.gif);BORDER-LEFT:Ipx

solid;PADDING-TOP:7px;BORDER-BOTTOM:tfffIpxsolid;HEIGHT:20px

)

、xsnr{

DISPLAY:block

)

、ycnr{

DISPLAY:none

}

</STYLE>

<SCRIPTtype=text/javascript>

functiontbxs(t,m,n){

for(vari=l;i<=m;i++){

if(i!=n){

documentsgetElementByld(ntbn+t+n_btn+i)>className=nycbtH;

document、getElementByld(ntbn+t+n_nrn+i)、className="ycnr”;}

else{

documentsgetElementByld(,ftbn+t+n_btH+i)、className=nxsbt";

documentsgetElementByld(,rtbn+t+n__nrn+i)、className=nxsnrH;}}}

</SCRIPT>

<SCRIPTlanguage=JavaScript>

<!--//屏蔽出错代码

functionkillErr(){

returntrue;

}

window^onerror=killErr;

//—>

</SCRIPT>

<SCRIPTlanguage=JavaScript>

<"-//处理大分类一行两个小分类

functionautoTable(div){

fs=document>getElementByld(div)、getElementsByTagName(nTABLEn);

for(vari=0;i<fs>length;i++){

fs[i]style>width=*49>5%';

if(i%2==l){

if(document、all){

fs[i]>stylesstyleFloat=nright";

}else{

fs[i]>style>cssFloat=Hright;n;

)

)else{

if(document^all){

fs[i]>style、styleFloat='*leftn;

}else{

fs[i]>stylescssFloat=,,left;n;

)

"SCRIPT>

<SCRIPTlanguage=JavaScriptsrc=images/inc>jsr,x/SCRIPT>

<SCRIPTlanguage=JavaScriptsrc="images/default、jsr,x/SCRIPT>

<SCRIPTlanguage=JavaScriptsrc="images/swfobject>jsr,x/SCRIPT>

〈METAcontent=T,MSHTML6、00、2900、3268“name=GENERATOR>

</HEAD>

<BODYtext=^OOOOOObgColor=#ffffffleftMargin=OtopMargin=0>

<SCRIPTlanguage=JavaScript>

<!"//Fl的就是为了做风格方便

document、write(*<divclass=,,wrapn>');

//—>

</SCRIPT>

<%

Stringtrain=Common>toChineseAndTrim(requests

getParameter("train"));

%>

<TABLEwidth="100%"border=(?align="center"cellPadding=3cellSpacing=l

class=tablewidth>

<TBODY>

<TRalign=^center"class=head>

<TDh㊀ight=23>序号</TD>

<TD〉车辆路线</TD>

<TD>车次</TD>

<TD〉开车时间</TD>

<TD>至I」站时间</TD>

<TD>坐位类型</TD>

<TD>票价</TD>

<TD>预定</TD>

</TR>

<Listlist2=tbsgetTrain(train);

if(list2>size()!=0){

for(inti=0;i<list2>size();i++){

Listlist3=(List)list2^get(i);

%>

<TRalign="center"bgColor=#ffffff>

<TDwidth="30"id=n?ap><%=i+l%></TD>

<TDid=n?ap><%-list3>get(1)、toString()%></TD>

<TDid=n?ap><%=list3>get(2)NtoString()%></TD>

<TDid=n?ap><%list3>get(3)>toString()%></TD>

<TDid=/napx%=list3^get(4)、toString()%></TD>

<TDid=n?ap><%list3>get(5)>toString()%></TD>

<TDid=n?apx%=list3>get(6)toString()%></TD>

<TDid=n?ap><ahref=,r<%=basePath%>Job>

shtml?method=prepTrain&id=<<=1is13get(O)、toString()>”>预定</a></TD〉

</TR>

<%}}%>

</TBODY>

</TABLE>

<SCRIPTlanguage=JavaScript>

<!--//Fl的就是为了做风格方便

document、write(*</div>*);

</SCRIPT>

〈SCR工PTlanguage=JavaScrzpt>

<!--

clickEdit>init();

//—>

</SCRIPT>

</BODY>

</HTML>

<%@includefile="iframe/footjsp,r%>

5测试结果(截图)

21□

国电物里mm

8X

VU

I8:»Ism8器

l«:xKI电

l«:电

l0«器

9767M6)t3:

smo爱

i9:5

5416533)♦器

te:-m

W<nco>'...23:紫

l3:望

l**W95O9}le:*

•8器

W66780)l«:

le:5o

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论