nextImage();">换一张
Image.jsp代码如下:
<%
try{
BufferedImagebf=newBufferedImage(70,25,BufferedImage.TYPE_INT_RGB);
Graphics2Dg2=bf.createGraphics();
g2.setPaint(newColor(0,0,255));
g2.fillRect(0,0,70,25);
g2.setPaint(newColor(255,255,255));
Stringstr=request.getParameter("num");
session.setAttribute("num",str);
g2.setFont(newFont("Arial",Font.BOLD,24));
g2.drawString(str,7,20);
for(inti=0;i<10;i++){
intr=(int)(Math.random()*255);
intg=(int)(Math.random()*255);
intb=(int)(Math.random()*255);
g2.setPaint(newColor(r,g,b));
intx1=(int)(Math.random()*80);
inty1=(int)(Math.random()*30);
intx2=(int)(Math.random()*80);
inty2=(int)(Math.random()*30);
g2.drawLine(x1,y1,x2,y2);
}
g2.dispose();
ImageIO.write(bf,"jpg",response.getOutputStream());
out.clear();
out=pageContext.pushBody();
}catch(Exceptione){
System.out.println(e);
}
%>
3.防止相同用户名用户注册:
当提交数据后,为了防止出现相同的用户,在进行注册的时候,通过相应的DAO中的exsitOne方法先检查用户名是否存在,存在不允许注册,关键代码如下:
publicBooleanexsitOne(StringuserName){
Stringsql="selectuNamefromRegUser";
try{
stat=conn.createStatement();
rs=stat.executeQuery(sql);
while(rs.next()){
Stringexsit=rs.getString("uName");
if(userName.equals(exsit)){
returntrue;
}
}
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
returnfalse;
}
图5.2注册验证图
5.1.3我的订单模块:
对于购买了商品的用户,在产生订单后,可以通过双击查看订单,在查看订单的时候,可以查看到订单的当前状态,以及订单的总金额,和订单的一些基本信息。
1.显示所有订单:
读取数据库中指定用户的所有订单,将结果集存取到一个ArrayList中,再返回显示页面,关键代码如下:
response.setContentType("text/html");
Stringid=request.getParameter("uid");
Stringsql="select*frombookOrderwhereuid="+id;
DAOdao=newDAO();
ResultSetrs=dao.getOrderInfo(sql);
ArrayListmylist=newArrayList();
try{
while(rs.next()){
intoid=Integer.parseInt(rs.getString("oId"));
Stringreceiver=rs.getString("oReceiveName");
StringoPayType=rs.getString("oPayType");
floattotal=dao.getTotal("selectsum(oAmount*oPrice)fromorderInfowhereoId="+oid);
StringoStatus=rs.getString("oStatus");
Stringdate=rs.getString("oTime");
MyOrderBeanone=newMyOrderBean(oid,date,receiver,total,oPayType,oStatus);
mylist.add(one);
}
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
2.显示某个订单:
当用户双击某个订单的时候,通过订单的id,以及用户id,联合查询出指定的订单,再返回到显示页面,关键代码如下:
Stringid=request.getParameter("id");
Stringsql="select*frombookOrder,orderInfo,bookwherebookOrder.oId=orderInfo.oIdandbook.bId=orderInfo.bIdandbookOrder.oId="
+id+"";
DAOdao=newDAO();
ResultSetrs=dao.getOrderInfo(sql);
ArrayListonelist=newArrayList();
Stringreceiver="";
Stringaddress="";
Stringphone="";
StringsendType="";
StringpayType="";
try{
while(rs.next()){
receiver=rs.getString("oReceiveName");
address=rs.getString("oReceiveAddress");
phone=rs.getString("oReceivePhone");
sendType=rs.getString("oSendType");
payType=rs.getString("oPayType");
Stringbookname=rs.getString("bName");
intcount=rs.getInt("oAmount");
floatprice=rs.getFloat("oPrice");
AllbookInOneOrderone=newAllbookInOneOrder(bookname,count,price);
onelist.add(one);
}
com.with.javabean.MyOneOrderBeanoneorder=newcom.with.javabean.MyOneOrderBean(
receiver,address,phone,sendType,payType,onelist);
request.setAttribute("order",oneorder);
request.setAttribute("id",id);
request.getRequestDispatcher("../MyOneOrder.jsp")
.include(request,response);
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
5.1.4商品浏览模块:
用户可以通过商品的分类查找到相应类别的商品,也可以通过输入相应商品的名称,找到相应的商品:
1.商品分类:
读取数据库中的制定类别,将所有类别显示在首页的商品类别导航上面,关键代码如下:
<%ArrayListbooktype=(ArrayList)request
.getAttribute("bookTypeInfos1");
if(null!
=booktype){
for(inti=0;iBookTypebookTypeInfo=booktype.get(i);
%>
"href="/BookShopping/servlet.user/ListOneBookType?
bid=<%=
bookTypeInfo.getBTypeId()%>">
10.5pt"color=#9e0b0e><%=bookTypeInfo.getBTypeName()%>
|
<%
}
}
%>
2.商品查找:
用户可以通过输入书籍名称,查找出自己要找的书籍,关键代码如下:
Servlet:
DAOdao=newDAO();
Stringsql="select*frombookwherebNamelike'%"+what+"%'";
ArrayListarraylist=newArrayList();
ResultSetrs=dao.getOrderInfo(sql);//得到所查的书
DAO:
publicResultSetgetOrderInfo(Stringsql){
try{
stat=conn.createStatement();
rs=stat.executeQuery(sql);
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
returnrs;
}
3.浏览历史:
用浏览历史是为了方便用户查找自己浏览过的商品,当用户点击了一件商品的购买链接的时候,就会在浏览历史中保存该商品,并创建一个相应的链接,方便下次查看.关键代码如下:
点击链接产生Cookie:
"href="/BookShopping/servlet.user/ListOneBook?
id=<%=bookInfo.getBId()%>"
onclick="setCookies('history<%=bookInfo.getBId()%>','<%=bookInfo.getBName()%>');">
14pt"color=#9e0b0e><%=bookInfo.getBName()%>
在指定区域读取Cookie:
Cookiecook[]=request.getCookies();
if(cook!
=null){
for(inti=0;i=-1)
{%>
id=<%=
c