计算机网站设计_第1页
计算机网站设计_第2页
计算机网站设计_第3页
计算机网站设计_第4页
计算机网站设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

购物网站设计和实现第一章:绪论1.1设计思想2开发工具的选用及介绍3实现的关键技术第二章:网站总体分析与设计1网站系统分析2主页设计3数据字典第三章:详细设计1购物系统3.1.1功能3.1.2组成结构3.1.3界面设计与重点难点代码设计3.2产品介绍系统3.2.1功能介绍3.2.2组成结构2.3界面设计与重点难点代码设计第四章:结束语夏勇2005年4月15日第一章绪论近年来,随着internet的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并逐步进入传统的流通领域。于是电子商务开始流行起来,越来越多的商家在网上建起在线商店,向消费者展示出一种新颖的购物理念。网上订购系统作为B2S,B2C(Businesstocustomer,即企业对消费者),C2C(Customertocustomer,即消费者对消费者)电子商务的前端商务平台,在其商务活动全过程中起着举足轻重的作用。本文旨在商讨如何建设B2c的网上购物系统。1设计思想通过网站,全面宣传展示企业的形象和进行网上销售产品,打破传统的销售模式,提高企业的办事效率。JSP的优势:JAVAserverpages:“JAVA服务器网页”,一般简称为“JSP”,JSP产生的执行结果都是标准的HTML格式,而且这些程序师在网络服务端中执行,使用一般的浏览器(如IE或Netscape)都可以正确的获得JSPDE“执行”结果,并且将这JSP执行的结果直接在浏览器中"浏览",不像JavascrIpt是在客户端(client)的浏览器上执行。JSP的特点:任何开发工具皆可开发JSP只要使用一般的文书编辑程序,如Windwos记事本,就可以编辑。当然,其他网页发展工具,例如,FrontpageExpress,Frontpage等也可以;不过还是建议你用记事本来写,既省钱又方便,如实使用那些所见即所得的网页编辑来写JSP,可能会发生一些意想不到的离奇状态。JSP直接内嵌在HTML中,非常简单易用,大大降低了程序设计开发的难度。JSP程序中可以直接嵌入Java代码,也可以直接运用Java所提供各类包,这样就大大加强了JSP程序本身的功能。JSP程序在被请求执行时,服务器端相关软件产生Servlet的执行文件,存储于服务器内存中,并将结果返回到客户端,HDBC提供了与数据库产品无关的数据库连接方式,因此JSP程序与客户端系统无关,可以非常方便地跨平台使用。语言相容性高由于JSP采用的是JAVA虚拟机,所以在把程序编译成JAVA虚拟机能够处理的信息后,再由JSVA虚拟机解释执行,这样它就可以运行在不同的平台下,又由于JSP是SUN公司J2EE的两大主流开发系统之一,所以JSP是一种面向对象得编程语言。除秘安全性高如果我们在浏览器中直接查看网页的原始代码,就只能看到HTML文件,原始的JSP程序代码是看不到的!JSP是一种面向对象的编程语言,它的很多实现方法都可以进行封装,这样即使有人下载了JSP的原代码,但是它并不知道类的具体位置,也就不知道他的实现方法。易于操控数据库JSP可以轻易地通过JDBC-0DBC驱动程序连接各种不同的数据库,例如:Acess,Foxpro,dBase,Oracle,SqIserver等等,另外,JSP亦可将"文本文件"或是"Excel”文件当成数据库用。基于以上原因,所以我选择了JSP结合Frontpage构架电脑网站。现的关键技术IServiet介绍Serviet是使用javaservlet应用程序设计接口及相关类和方法的java程序。它在web服务器上或应用服务器上运行并扩展了该服务器的能力。Jacaserelet对于web服务器就好像jacaapplet对于web浏览器。Applet装入web浏览器并在web浏览器内执行,而servlet则是装入web服务器并在web服务器内执行。JaeasereletapI定义了servlet服务器之间的一个标准接口,这使得servlet具有跨服务器平台的特征。2ToMcAT介绍Tomcat是一个免费的开源的servlet容器,它是apsche基金会的jakarta项目中的一个核心项目,由于apache,sun和其他一些公司及个人共同开发而成。由于有了sun的参与和支持,最新的servlet和jsp规范总能在tomcat中得到体现。与传统的左面应用程序不同,tomcat中的应用程序师一个WAR(webarchive)文件。WAR是sun提出的一种web应用程序格式,与JAR类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有html和jsp文件或者包含着两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。通常在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的servlet累和jsp或servlet所依赖的其它内(如javabean)。通常这些所依赖的类也可以打包成JAR方到WEB-TNF下得Iib目录下,当然也可以当道系统的CLASSPATH中,但那样移植和管理起来不方便。3JDK介绍JDK是整个java的核心,包括了java运行环境(javaruntimeenvirnment),一堆java工具和java基础的类库(rt.jar)。不论什么java应用服务器实质都是内置了某个版本的JDKo因此掌握JDK是学好java的第一步。JDBC-ODBC技术JDBC是java的开发者一sun的javasoft公司制定的java数据库连接(javadatabasecnnectivity)技术的简称,是为各种常用数据库提供无缝连接的技术。JDBC在web和internet应用程序中的作用和ODBC在windows系列平台应用程序中的作用类似。ODBC(opendatabaseconnectivity),称为开放式数据库互联技术,是由microsort公司倡导并得到世界普遍响应的一门数据库连接技术,如果读者有使用ODBC编程的经验,就会发现JDBC与ODBC很类似。DIBC现在可以连接的数据库包括:xbase.oracle,Sybase,aceess,SQLSERVER以及paradox等。JDBCAPLJDBCAPL使开发者不必不断重写程序而可以建立数据库前台。尽管ANSL委员会有个标准组,但每个数据库系统厂家的系统连接和通讯方法仍然五花八门。为了建立健全独立于平台的应用程序和基于web的小程序,开发人员应考虑用java开发前台连接办法,从外部看,第三方软件开发者通过专用办法,通过本地方法集成客户机方库或通过建立第三层和新协议来满足这种需求。JavaSoft是sun公司负责开发java产品的业务单位,和数据库与数据工具厂家一起建立独立于DBMS的机制,使开发人员不必考虑所用的特定数据而编写客户机方应用程序。产生的JDBCAPL第一版是核心JDK2的一部分。JDBC向应用程序开发者提供了独立于数据库的统一的APLo这个APL提供了编写的标准和考虑所有不同应用程序设计的标准。其奥秘是一组由驱动程序实现的java接口。驱动程序负责标准JDBC调用向支持的数据库所要的集团调用转变。应用程序编写一次并移植到各种驱动程序上。应用程序不变,驱动程序则各不相同。驱动程序可以用于开发多层数据库设计的中间层,也称中间件(middleware)。除了向开发者提供统一的独立于DBMS的框架外,JDBC还提供了让开发者保持数据库厂家提供的特定功能和方法。JDBC驱动程序必须支持ANSIAQL-2项目层,但JDBC允许开发者直接将查询字符串递到连接的驱动程序。这些字段可能是ANSLSQL也可能不是,或者根本不是AQL。这些字符串的使用时基础驱动程序的事。JDBC不是mincrosoft的ODBC(开放式数据库连接)规范派生的,JDBC完全是用java编写的,而ODBC是个C接口。但是,JDBC和ODBC都是基于X/开放SQL命令接口(CLI),相同的概念性基础使API工作进展更快,使APL得接受更加容易。JavaSoft提供了JDBC变成ODBC的JDBC-ODBC桥。这个用本地方法完成的版本很小很有效。一般来说,JDBCAPL中有两层接口:应用程序层,开发人员用API通过SQL调用数据库和取得结果,驱动程序层,处理与具体驱动程序版本的所有通讯。每个JDBC应用程序(或小程序)至少要有一个JDBC程序,每个驱动程序是针对一种DBMS的。但驱动程序不必直接联到数据库。第二章网站总体分析与设计1网站系统分析根据前面的设计思想进行分析,按照系统开发的基本观点对网站进行分解,从内容上可对网站作如下划分:1公司简介通过文字和图片来展现。1企业荣誉通过文字来展现。1产品介绍通过商城动态,最新商品,特价商品,购物车,我的账户等栏目来实现。1联系我们通过公司地址,邮政编码,电话,电子邮箱来展现。2主页设计网站主页采用文字和图片相结合,体现公司的主营方向,静态主页方式介绍公司和公司的荣誉,对于产品介绍,留言,购物车,就得用于JSP与数据库结合的技术建立书籍库查询管网站流程图如下:2.3数据字典采用的数据库是microsoftsqlservet2000,拟建立nclxyc库文件,包含如下几个表文件。字段名数据类型描述IDInt自动编号

Sia-usernvarchar用户名Passwordnvarchar密码Namenvarchar真实姓名Zipcodenvarchar邮编Telnvarchar电话号码Mai1nvarchar电子邮件InfoBit是否订阅产品快讯Tacticbit统计发送邮件列表Procineenvarchar会员省份Addressnvarchar详细地址Sexnvarchar会员姓名Pricemoney购物总额IpnvarcharIP地址Gradenvarchar会员级别nowdatetime注册日期以上为sia-user用户登录信息和购物信息表Aia-class产品小类字段名数据类型描述IDInt自动编号C1nameNcarchar小类别名称clidint归大类别Sia-category产品大类字段名数据类型描述ClidInt自动编号c1namenarchar类别名称sia-config网站设置字段名数据类型描述Titlenvarchar浏览器标题栏Pronamenvarchar公司名称Addressnvarchar公司地址ur1nvarchar公司网址Zipcodenvarchar公司邮编Mai1namenvarchar公司邮件前缀Mai1servernvarchar公司邮件后缀Te11nvarchar电话1Te12nvarchar电话2Faxnvarchar传真Logonvarchar公司或网站logoBannernvarcharBanner图片BannerurInvarcharBanner图片链接CssurInvarchar网站颜色样式Tabcolornvarchar表格颜色Infonvarchar网站介绍

Banner2nvarchar公司图片sendmobenvarchar订单说明(显示在购物结算)Sia_discount产品优惠表字段名数据类型描述IDInt自动编号GradeInt会员级别DiscountInt级别拆扣prinemoney会员级别自动升级所需消费金额Sia_guestbook留言表字段名数据类型描述IDInt自动编号Namenvarchar留言者姓名emai1nvarchar留言者E-mai1IPnvarchar留言者IP地址Telnvarchar留言者电话Contentnvarchar留言内容dateandtimedatetime留言日期Sia_news新闻表字段名数据类型描述IDInt自动编号Titlenvarchar新闻标题Contentnvarchar新闻内容Visitsint访问次数datenvarchar日期sia-product产口信息表字段名数据类型描述ProidInt自动编号Codenvarchar产口编号Pronamenvarchar产品名称PropriceMoney产口原价DispriceMoney优惠价格1nfonvarchar产品介绍Sma1Ipicnvarchar产品缩图Bigpicnvarchar产品图片HitsInt浏览次数StockInt产品库存量Companynvarchar产品生产厂家Companylnvarchar产品生产厂家网址ClidNit产品归类ClaidNit产品归小类HideBit是否隐藏该产品,以防缺货AdddataDatetime加入日期V!int投票选项“很好”

V2int投票选项“好”V3int投票选项“一般”V4int投票选项“差”V5int投票选项“很差”Sia_product1购买产品信息表字段名数据类型描述IDInt自动编号Pronamenvarchar产品名称DispriceNvarchar产品单价PriceInt产品数量Proidint购买产品的ID号usernamenvarchar购买者姓名Sia_payment字段名数据类型描述IDInt自动编号Paymodenvarchar付款方法sendmmodenvarchar付款说明Sia_order保存购买信息字段名数据类型描述OrderidInt自动编号Ordernumbernvarchar购物车编号Sia_userNvarchar购物人会员代号PriceFloat该订单购物金额VipdiscountFloat会员折扣paymentnvarchar购物人付款方式Remarknvarchar购物人备注附言Ipnvarchar购物人IP地址NowDatetime购物人提交订单时间drderstatenvarchar订单处理状态第三章详细设计1购物车系统1.1功能:购买者首先在最新商品或者物价商品或者排行榜选择自己喜欢的产品,然后点击购买,将此商品放入购物车,管理人员可以通过此购物车查看相关信息,给购物者提货,并且购物人员可以通过此购物车查看到自己购买的商品,此购物车除管理人员可以全部查看外,其它人员者只能看到自己的购物车。1.2组成构造.购物车网页add.jsp:用来显示你当前所购的商品.放入购物车网页addmycar.jsp:将商品放入购物车.去结算中心网页check-out.jsp:jsp:显示购物清单和你的个人信息及付款方式,当你的个人信息确认无误后,点击提交.保存个人信息check,jsp:将你的购物清单和个人信息及付款方式通过jsp程序放入数据库中保存,这个jsp程序将产生一个随机的订单号,以便以后查询。这几个等程序用到了sia_usr、sia_order^sia_list、sia_product1下图为购物系统的流程图:3.1.3界面设计与重点、难点代码的设计购物车和我的帐户的数据全部储存在数据库中,要在网页中显示目前的购物产品,必须先进行数据库的链接和打开,要链接数据库我们必须使用%@pageimport="java,sql.*"%包中的connection、statementsclass类程序:<%Connectionconn=nulI:Statementstm=nulIStatementstm1=nuIIStatementstm2=nulITry{Class,forname("sun.jdbc.odbc.jdbcodbcdriver;}Catch(cIassnotfonudexceptione){ont.print("与数据库驱动程序连接失败");}Try(Conn=drivermanager.getconnection(wjdbc:odbc:ycw, ,alisan328w);StiTFconn.createstatement(resultset.type-scrol|-sensitive,resultset.concur-updatable);Stml=conn.createstatement();Stm2=conn.createstatement(resuItset.type_scroII-sensitive,resuitset.concur-updatabIe);)Catch(sqIexceptioneI)Out.print(“与数据库连接失败”);)%>其中:class,forname标示建立jdbc-odbc桥驱动程序,调用其方法forname().创建连接对象conn,它属于connection类,用类drivermanager调用getconnection()方法。其中:yc标示创建的odbc数据源,sa标示连接的用户名,Iisan328为密码。当与数据库建立连接成功,就需要建立一个数据集对象他们属于类statement,这三个对象表示打开的表采取不同的方式。Try和catch是java中用来进行错误处理,也就是如果连接成功或能够打开数据库就调用try里面的函数体,否者调用catch里的函数体。使用createstatement方法来打开数据表:1,游标类型,包括三个参数:Resultset.type-forword-onIy:只可以向前移动Resultset.type-scroll-insensitve:可卷动。但是不受其他用户对数据库更改的影响。Resultset.type-scroII-sens11ive:可卷动。当其他用户更改数据库时这个记录也会改变。2.记录更新权限,包括两个参数:ResuItset.concur-read-onIy,只读Resultset.concur-updatabIe,可更新数据排序与SQL指令1.selet指令的筛选语句:格式:select…from在SQL语言中:"select”数据表中选取某些“栏位”的数据。.如果要选取的数据表数据包含一个以上的栏位,则我们可以利用“,”逗号来栏位名称隔开。.如果要选取的数据表数据包含了全部的栏位,则我们可以利用万用字符来代表全部的栏位。可排序数据的select指令1.当我们希望被选取出来的数据记录数据能够依据某个或某几个栏位的内容来排序时,只要将这些排序依据的栏位摆放在“orderby”保留字之后,然后将这处排序的语句连接在"select…from”后面就行了。"orderby”默认的排序方式是“由小排到大”,但如实希望排序方式是“由大排到小”,则我们可以再栏位名称后再加上“desc”保留字!将排序方式改为“由大排到小二在“购物栏”网页中的打开数据库JSP程序中的语句:Stringsp15=uselect*fromsia-productIwhereusername='+aia-user+'”功能为:从数据表“productl”中取出所有栏位的数据,取出的数据记录由where子句确定,也即显示出数据表中的字段username的值与变量sia-user相同的数据。点击购物当用户想通过网上购物,请点击购物,出现一个你所选取产品的信息。在这个模块中,利用session的getattribute方法来获取用户是否登录,代码如下:Stringsia-user=(string)session.getattribute("sia-user");If(sia-user==nuII)Out.print(“请先登录”);而用request,getparameter来获取表名单的内容,代码如下:<%Stringadd=request.getparameter(“add");Stringproname=request,getparameter("proname");Intpric=cint(request,getparameter("price”)):%>而gets"()函数是自编的一个函数,它是用来将获取的中文字符精心转换,否则将会出现乱码。代码如下:<%@pageimport="java,utiI.*"%><%!Intcint(stringcint)(Try(Intn;)Catch(numberformatexceptione){Returno;))%>加入购物车:当用户确认需要购买此商品,就可以将此商品加入购物车。产品保存到数据表sia-produt1中,如果在此表中不存在此商品,那么则会用到INSETINTOSQL语句想数据表中插入数据,否则更新此数据表。代码如下:<%Stringsql=aselect*fromsia-productIwhereproid="+proid+“'";Resultsetrs=stm.executequery(sq1);If(!rs.next());(Rs.closeO;Stringsq12="insertintosia-productI(proname,price,proid,usrname)values('"+proname+"',disprice+”',"+pric+"'"+proid+"'"+sia-user+"')”;Stm.executeupdate(sp13);)%>插入或更新完成以后,将直接跳转到mycar.jsp,实现此功能的方法为:Respinse.sendtedirect,这个方法就是跳转到某一个页面,代码如下:<%Response,sendtedirect(umycart.jsp");%>通过一条while语句将购物车里面的产品读出来:代码如下:<%WhiIe(rs.next())Stringproname=rs.getstring("proname");Intdisprice=rs.geting\t("disprice");Intprice=rs.getint("price");Intproid=rs.getint("proid");Intsum=disprice*price;Sum=sum+sum;%><trcalign=Hmiddle”bgcolor=>,#f7f7f7”><tdwidth="10%"height="20"align="centerff<divalign="centetM><inputtype="checkbox“name="pronamewcaIue=w<%=proname%>f,checkedonfocus=this.blur()></divX/td><td height=“20"><aHref="add.jsp?add=<%=proid%>&disprice=<%=disprice%>&proname=<%=proname%>$price=<%=price%>w><%=proname%></td>”<tdwidth="15%"height="20"align=”centetM><%=disprice%.00</td<tdwidth二"15%”height二“20"align二"centetw><%:price"15%”height二"20"align="centetw><%></td><tdwidth=“15%"height="20"align=,,centet>,><divaIign=wcenterw><%=sun%></div></td></td><%1Rs.closeO;%>如果用户需要对购买产品的数量进行修改,代码如下:<td height=“20"><aHref二 ”add.jsp?add=<%=proid%>&disprice=<%=disprice%>&>&proname=<%=proname%>&price=<%=price%>”><%=proname%X/td>此模块中用到了session,getattribute()方法来获取用户名的用户的级别,如果获取的用户名和级别为空,将显示“请登录”信息并且不用在执行以下的程序。代码如下:<%Stringsia-user=(string)session.getattribute("sia-uset");Stringgrade=(string)session.getattribute("grade");//如果购买车为空,转入错误界面If(sia-user==muII&&grade==fnuII)(Out.print("请先登录”);Return;%>Rs.beforefirst()方法标示将游标指向第一条记录之前。而rs.next标示找到此条记录,!rs.next标示在表中未找到相关信息。当你对购物车中的不满意,可以点击清空购物车,代码为onelick:"javascript:confirmdel()w,此语句是一个javascript,它会去调用confirmdel函数,此函数执行的代码为:<scriptlanguage二"javascript”>FunctionconfirmdeI(){If(confirm(“你确定清空购物车的全部产品?!!”))Window,location,href="cart-clear.jsp,T1点了以后,会提示“你确定清空购物车中选购的全部产品“,点击确定以后,将去调用car-clear,jsp页面,此页面的代码如下:《%@pagecontenttype="text/html;charset=gbkn%>%@inglubefile=wheader,jsp"%><tablewidth=“778"aIign="centerceIIpadding二"0"ceIIspacing二"0"><tr><tdwidth二“185"valign="top"class二"table-right”><!—#inclubefiIe="left,asp”-></td><tdwidth="100%"height="300" align="centetrffvaIign=99middle”Bgcolor=w#FFFFFF”><P><%StringsqIdel=wDELETEfomsia-productIw;Stm.executeupdate(sqIdel);Out.print(“你的购物车已清空,如果你有什么问题欢迎与我们联系。谢谢!”);%》《br》《br》<imgsre="images/cart.gifwwidth="100"height="100"></p><p></p></td></tr></table>此代码中用到了spl语句的delete,它是用于删除数据表中的数据,executeupdate方法是用于更新数据表。Out.print表示打印一条语句到终端。如果你对所购买的产品满意,请点击结算中心。此页中将从数据表中读出产品信息和个人信息及付款方式。在此页中用到了byter[]=remark.getbytes(aISO-8859-199)Remark=newstring(r)此语句表示在终端上显示的是中文,而不显示乱码。Rs.getint表示获取数据表中的字段为int型,并且返回的值为into由于产生的订单编号采取的是日期加时间的方法,所以要用到JAVA的DATE类和CALENDAR,DATE类中的构造函数用于获取系统日期,写法为:datetday二newdate。,而gethour获取的系统时间中的小时数,getminutes获取系统时间中的分钟数,getseconds()获取系统时间中的秒钟数。用calendar类用于获取系统日期,用get(calendat.year)方法获取系统年份,用get(calendar,month)方法获取系统月份,用get(calendar.date)获取系统日期,这几个方法返回值为整型。String.valueof将整型转换为字符型。具体代码如下:《先Datetday=newdate();CaIendartday1=caIendar.getinstance(0;Stringyy=string.caIueof(tdayl.get(caIendar.year));Intmm=tday1.get(caIendar.month)+1;If(mm<10)Month="0"+string.caIueof(mm);ElseMonth=string.caIueof(mm);Intdd=tday1.get(caIendar.date);If(dd<10)Dd1=w0"+string.vaIueof(dd);ElseDd1=string.caIueof(dd);Stringriqi=year+minth+dd1;〃生成订单所有所需要的元素,格式为:小时,分钟,秒Intxiaoshi=tday.gethoursO;If(xiaoshi<10)Hour="0"+string.caIueof(xiaoshi);EIseHuur=string.caIueof(xiaoshi);Intfenzhong=tday.getminutes();If(fenzhong<10)Zenzhong1=,,0"+string.caIueof(fenzhong);ElseFenzhong1=string.caIueof(fenzhong);Intmiao=tday.getseconds();If(miao<10)Miao="0"+string.caIueof(miao);ElseMiao1=string.caIueof(miao);%>2产品介绍系统2.1功能介绍此系统式对产品的介绍,包括最新商品,特价商品,排行榜。商城动态。这个系统主要是用于宣传公司销售的商品,公司最新的消息和公司获取用户的意见和建议。2.2组成结构图此系统共有七个模板组成1,首页index.jsp:此页显示最新商品,推荐商品,特价商品等部分产品。2,商城动态news,jsp:此页显示公司的最新消息。3,最新商品new.jsp:此页介绍公司的最新商品。4,特价商品prontion.jsp:此页显示商品的原有价格和现有价格,并且原有价格用了一根线删除线。5,排行榜hot.jsp:此页按人气从高到底显示商品。6,留言回馈guestbook,jsp:此页是公司为了获取用户的意见和建议而设的。7,显示商品的具体信息product,jsp:此页显示商品的编码,厂商,产品人气,加入日期和商品的说明。产品介绍系统流程图如下:3.2.3界面设计与重点,难点代码的设计。最新商品,特价商品,排行榜,商城动态都是从数据表中读出来的,这就需要与数据库建立最新链接和打开数据库,要连接数据库我们必须使用<%pageinport=wjaca.spl.9M%>包中的connection,statement,cIass类程序:<%Connectionconn=nu11StatementstnFnul1Statementstm1=nu11Statementstm2=nu11Try{Class,frname(Usun.jdbc.odbc.jdbcodbcdriver;)Cath(cIassnotfoundexceptione)(Out.print("与数据库驱动程序连接失败");)Try{drivermanaget.getconnection("jdbc:odbc:yc","sa","Iisan328n);Stm=conn.createstatement(resuItset.type-scroII-sensitive,rensitve,resuItset.concur-updatabIe);Stm1=conn.createstatement();Stm2=conn.createstateent(resuItset.type-scroII-sensitive,resuItset.concur-updatable);)Catch(sqIexceptionel);)Out.print(“与数据库连接失败"):)%>此代码保存为conn,jsp,以后要访问数据库就用<%@inclubefile二"conn.jsp,T%>语句来调用。此语句的说明见3.1.3首页主要显示最新商品,特价商品,推荐商品。此模块一开头就用到了<%@inclubefile="conn,jsp"%>,这句表示调用公共模块进行数据库连接。由于首页只是显示部分商品的信息,所以用到了SQL语句“selecttop4*fromsia-productwherehide=0orderbyproiddesc”表示孑丁开数据表sia-product,wherehide=0表示满足条件为hide=0的记录,orderbyprodidesc表示按照proid从高到底进行排序,top4*表示只显示4条记录的所以字段。在此模块中用到了switch多分支语句结构,用判断登录的用户名的级别,为了得到用户的级别,用到了session.getattibuteO方法,代码如下:<%Intgrade=cint((string)session.getattribute("grade"));%><tabIeheight="120"align="centervcelIpadding="0"ce11spacing=w10”><tr><tdvalign=wmiddle"><br>     欢迎《fontcolor=”#FF3333"><%=session.getattibute(usia-user)%></font><%switch(grade)(Case0:(Out.print(“好友会员”);Break;)(Out.print(u星级会员”);Break:)Out.print(“铜牌会员”);Break;(Out.print(u银牌会员”);Break;)Case4:(Out.print(“金牌会员”);Break;)}%>的光临!!<br>商城动态代码如下:<%@pagecontenttype二"text/html;charset=GBK"%><%@incIudefile=wheader,jsp"%>第一句表示已中文编辑码GBK来显示中文,第二句表示调用header,jsp,此文件是一个公共模块,表示网页的顶部。此模块用到了分页,jap的分页与ASP分页完全不一样,首先打开数据表,然后将游标指向最后一条记录,然后用getrowO方法获取结果集中最后一行的行号,再用最后一行行号与每页显示的记录数相除,看所得余数是否为0,如果为0,表示这一页能够显示完,否则加1,最后用absolute。方法将游标移到指定位置处,具体代码如下:Stringspll="select*fromsia-newsorderbyidDESC”;ResuItsetrs=stm.executequery(spII);If(!rs.next())Out.print("<br>暂无新闻”);Intpagesize=18;Intpagecount=0;Rs,last();IntIastrow=rs.getrow();Pagecount=(Iastrow%pagesize=0)?(Iastrow/pagesize):(lastrow/pagesize+1);Intshowpage=1;%><p>共有<%=pagecount%>页每页显示<%=pagesize%>条记录<%Stringinteger=request.get[arametre("showpage");If(integer==nulI)(Integer:”1”;)Try(Showpage=integer.parseint(integer);Catch(numberformatexceprione)(Showpage=1;)If(showpage<=1)(Showpage=1;1If(showpage>=pagecount)(Showpage=pagecount;}Intposition=(show1)*pagesize+1;Rs.absoIute(position);%>然后显示每一条记录,为了每一页只显示规定得记录数,用到了for循环语句,为了能够很好的控制游标,防止超出数据表的记录数,用到了isafterlast。方法,具体代码如下:For(inti=1;i<=pagesize;i++)(If(!rs.isafterIast());(%><td valign="middle”> <aHref=news/index.jsp?id=<%rs.getint("id")%>oneIick=>,returnopenadminwindow(this.href);"><%=rs.getstring(<<titlen)%></a><scriptlanguage^^javascriptw>functionopenadminwindow(urI)(Popupwin=window.open(urI,wnew","scroIIbars=yes,width=350,height=400n;Returnfalse;)</script> <fontcolor二”#999999n></font></td></tr><%Rs.next();))%>最新商品用于发布公司最新的产品,方便用户了解公司最新的产品走向。由于JSP与SQLSERVER2000结合,在操作过程中,容易出现无效的描述符,防止此错误的一种方法是将数据表里的数据按字段顺序先读出来存放在一个变量里,在以后就可以只访问这个变量就行了。具体代码如下:<%Proid=rs.getint("proid");Proname=rs.getstring(upronameM;Proprice=rs.getstring("proprice");Disprice=rs.getstring("disprice");SmaIIpic=rs.getstring(usmaIIpic");%>又由于JSP在使用变量之前要对变量进行声明,所以在这几条语句之前要对proid,proname,proprice,diaprice,smaIIpic进行声明:具体代码如下:Intproid=0Stringpriname=nu11Stringproprice=nu11Str

温馨提示

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

评论

0/150

提交评论