?? 第8章(1).txt
字號:
{ return buffer;
}
}
}
用戶訂購頁面使用的beans(該beans負責填寫訂購單):
OrderForm.java:
import java.sql.*;
public class OrderForm
{ String logname, //用戶名。
realname, //真實姓名。
order_number,//圖書訂購號
phone,
address,
book_name, //書名。
mount; //數量。
Connection con;
Statement sql;
ResultSet rs;
public OrderForm()
{ //加載橋接器:
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
}
//設置屬性值、獲取屬性值的方法:
public void setLogname(String name)
{ logname=name;
}
public String getLogname()
{return logname;
}
public void setRealname(String name)
{ realname=name;
}
public String getRealname()
{return realname;
}
public void setOrder_number(String number)
{ order_number=number;
}
public String getOrder_number()
{return order_number;
}
public void setBook_name(String name)
{ book_name=name;
}
public String getBook_name()
{return book_name;
}
public void setPhone(String ph)
{ phone=ph;
}
public String getPhone()
{return phone;
}
public void setAddress(String ad)
{ address=ad;
}
public String getAddress()
{return address;
}
public void setMount(String n)
{ mount=n;
}
public String getMount()
{return mount;
}
//向數據庫的orderform訂單表添加訂購記錄:
public String setOrderBook()
{ try{con=DriverManager.getConnection("jdbc:odbc:shop","","");
sql=con.createStatement();
String s=
"'"+logname+"'"+","+"'"+realname+"'"+","+"'"+order_number+"'"+","+"'"+
book_name+"'"+","+"'"+mount+"'"+","+"'"+phone+"'"+","+"'"+address+"'";
String condition="INSERT INTO orderform VALUES"+"("+s+")";
sql.executeUpdate(condition);
con.close();
return "該書被添加到你的訂單";
}
catch(SQLException e)
{ return "你已經訂購了該書,請去修改訂單后再訂購";
}
}
}
訂購圖書頁面(效果如圖8.8所示)
buybook.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="BuyBook" %>
<%@ page import="Login" %>
<%@ page import="OrderForm" %>
<jsp:useBean id="login" class="Login" scope="session" >
</jsp:useBean>
<jsp:useBean id="book" class="BuyBook" scope="session" >
</jsp:useBean>
<jsp:useBean id="orderform" class="OrderForm" scope="page" >
</jsp:useBean>
<%! //處理字符串的方法:
public String codeString(String s)
{ String str=s;
try{byte b[]=str.getBytes("ISO-8859-1");
str=new String(b);
return str;
}
catch(Exception e)
{ return str;
}
}
%>
<HTML>
<BODY ><Font size=1>
<%@ include file="head.txt" %>
<% //如果客戶直接進入該頁面將被轉向登錄頁面。
if(session.isNew())
{response.sendRedirect("userLogin.jsp");
}
//如果沒有成功登錄將被轉向登錄頁面
String success=login.getSuccess();
if(success==null)
{success="";
}
if(!(success.equals("ok")))
{response.sendRedirect("userLogin.jsp");
}
%>
<%String str=response.encodeURL("buybook.jsp");
%>
<FORM action="<%=str%>" Method="post" >
<P>輸入要訂購的書的序列號:
<Input type=text name="id">
<Input type=submit name="g" value="提交">
</Form>
<jsp:setProperty name= "book" property="id" param="id" />
查詢到如下記錄:<BR>
<% StringBuffer b=book.getMessageBybook_id();
%>
<%=b%>
<P>如果準備訂購該書,請填寫訂單,點擊"添加到訂單"按鈕<BR>
<%if((book.getId())!=0)
{%> <FORM action="<%=str%>" method=post>
<BR>您的用戶名<Input TYPE=text name=logname value="<%=login.getLogname()%>" >*
<BR>您的密碼<Input TYPE=password name=password>*
<BR>訂購數量<Input TYPE=text name=mount value=1>(單位:冊)
<Input type=submit name="k" value="提交訂單">
</FORM>
<%}
%>
<% if((book.getId())!=0)
{ String name=request.getParameter("logname");//獲取在表單中提交的用戶名。
if(name==null)
{name="";
}
name=codeString(name);
String word=request.getParameter("password");//獲取在表單中提交的密碼。
if(word==null)
{word="";
}
word=codeString(word);
String mount=request.getParameter("mount");//獲取在表單中提交的密碼。
mount=codeString(mount);
//判斷提交的名字和密碼是否正確:
//如果正確就初始化orderform的值,并添加數據到訂單。
if((name.equals(login.getLogname()))&&(word.equals(login.getPassword())))
{
%>
<jsp:setProperty name= "orderform" property="logname" value="<%=login.getLogname()%>"/>
<jsp:setProperty name= "orderform" property="realname" value="<%=login.getRealname()%>"/>
<jsp:setProperty name= "orderform"
property="order_number" value="<%=book.getOrder_number()%>"/>
<jsp:setProperty name= "orderform"
property="book_name" value="<%=book.getBook_name()%>"/>
<jsp:setProperty name= "orderform" property="mount" value="<%=mount%>"/>
<jsp:setProperty name= "orderform" property="phone" value="<%=login.getPhone()%>"/>
<jsp:setProperty name= "orderform" property="address" value="<%=login.getAddress()%>"/>
<% String ms=orderform.setOrderBook();
out.print("<BR>"+ms);
}
else
{ out.print("<BR>"+"您必須輸入正確的密碼和用戶名");
}
}
%>
</Font>
</BODY>
</HTML>
查看訂單頁面(效果如圖8.9所示)
showOrderForm.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<%@ page import="Login" %>
<jsp:useBean id="login" class="Login" scope="session" >
</jsp:useBean>
<% //如果客戶直接進入該頁面將被轉向登錄頁面。
if(session.isNew())
{response.sendRedirect("userLogin.jsp");
}
//如果沒有成功登錄將被轉向登錄頁面
String success=login.getSuccess();
if(success==null)
{success="";
}
if(!(success.equals("ok")))
{response.sendRedirect("userLogin.jsp");
}
%>
<HTML>
<BODY ><Font size=1>
<P>你的訂單:
<% String logname=login.getLogname();
if(logname==null)
{logname="";
}
Connection con;
Statement sql;
ResultSet rs;
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
try{ con=DriverManager.getConnection("jdbc:odbc:shop","","");
sql=con.createStatement();
String condition="SELECT * FROM orderform WHERE logname = "+"'"+logname+"'";
rs=sql.executeQuery(condition);
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=50>"+"<Font size=1>"+"用戶名");
out.print("<TH width=50>"+"<Font size=1>"+"姓名");
out.print("<TH width=160>"+"<Font size=1>"+"訂購號");
out.print("<TH width=160>"+"<Font size=1>"+"書名");
out.print("<TH width=60>"+"<Font size=1>"+"訂購數量");
out.print("<TH width=60>"+"<Font size=1>"+"電話");
out.print("<TH width=160>"+"<Font size=1>"+"地址");
out.print("</TR>");
while(rs.next())
{ out.print("<TR>");
out.print("<TD >"+"<Font size=1>"+rs.getString(1)+"</TD>");
out.print("<TD >"+"<Font size=1>"+rs.getString(2)+"</TD>");
out.print("<TD >"+"<Font size=1>"+rs.getString(3)+"</TD>");
out.print("<TD >"+"<Font size=1>"+rs.getString(4)+"</TD>");
out.print("<TD >"+"<Font size=1>"+rs.getString(5)+"</TD>");
out.print("<TD >"+"<Font size=1>"+rs.getString(6)+"</TD>");
out.print("<TD >"+"<Font size=1>"+rs.getString(7)+"</TD>");
out.print("</TR>") ;
}
out.print("</Table>");
con.close();
}
catch(SQLException e)
{
}
%>
</BODY>
</HTML>
選擇修改方式的頁面(效果如圖8.10所示)
modifyForm.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<%@ page import="Login" %>
<jsp:useBean id="login" class="Login" scope="session" >
</jsp:useBean>
<% //如果客戶直接進入該頁面將被轉向登錄頁面。
if(session.isNew())
{response.sendRedirect("userLogin.jsp");
}
//如果沒有成功登錄將被轉向登錄頁面
String success=login.getSuccess();
if(success==null)
{success="";
}
if(!(success.equals("ok")))
{response.sendRedirect("userLogin.jsp");
}
%>
<HTML>
<BODY ><Font size=1>
<%@ include file="head.txt" %>
<P>你的訂單:
<% String logname=login.getLogname();
if(logname==null)
{logname="";
}
Connection con;
Statement sql;
ResultSet rs;
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
try{ con=DriverManager.getConnection("jdbc:odbc:shop","","");
sql=con.createStatement();
String condition="SELECT * FROM orderform WHERE logname = "+"'"+logname+"'";
rs=sql.executeQuery(condition);
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=50>"+"<Font size=1>"+"用戶名");
out.print("<TH width=50>"+"<Font size=1>"+"姓名");
out.print("<TH width=160>"+"<Font size=1>"+"訂購號");
out.print("<TH width=160>"+"<Font size=1>"+"書名");
out.print("<TH width=60>"+"<Font size=1>"+"訂購數量");
out.print("<TH width=60>"+"<Font size=1>"+"電話");
out.print("<TH width=160>"+"<Font size=1>"+"地址");
out.print("</TR>");
while(rs.next())
{ out.print("<TR>");
out.print("<TD >"+"<Font size=1>"+rs.getString(1)+"</TD>");
out.print("<TD >"+"<Font size=1>"+rs.getString(2)+"</TD>");
out.print("<TD >"+"<Font size=1>"+rs.getString(3)+"</TD>");
out.print("<TD >"+"<Font size=1>"+rs.getString(4)+"</TD>");
out.print("<TD >"+"<Font size=1>"+rs.getString(5)+"</TD>");
out.print("<TD >"+"<Font size=1>"+rs.getString(6)+"</TD>");
out.print("<TD >"+"<Font size=1>"+rs.getString(7)+"</TD>");
out.print("</TR>") ;
}
out.print("</Table>");
con.close();
}
catch(SQLException e)
{ }
%>
<P>修改訂單:
<%String str1=response.encodeURL("deletForm.jsp");
String str2=response.encodeURL("changeForm.jsp");
%>
<FORM action="<%=str1%>" method=post>
<BR>輸入訂購號<Input TYPE=text name=order_number >*
<Input type=submit name="k" value="提交刪除">
</FORM>
<FORM action="<%=str2%>" method=post>
<BR>輸入訂購號<Input TYPE=text name=order_number >*
<BR>輸入新定數<Input TYPE=text name=mount >*
<Input type=submit name="p" value="提交修改">
</FORM>
</BODY>
</HTML>
刪除訂購單頁面(效果如圖8.11所示)
deleteForm.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<%@ page import="Login" %>
<jsp:useBean id="login" class="Login" scope="session" >
</jsp:useBean>
<html>
<BODY>
<% //如果客戶直接進入該頁面將被轉向登錄頁面。
if(session.isNew())
{response.sendRedirect("userLogin.jsp");
}
//如果沒有成功登錄將被轉向登錄頁面
String success=login.getSuccess();
if(success==null)
{success="";
}
if(!(success.equals("ok")))
{response.sendRedirect("userLogin.jsp");
}
%>
<% //獲取訂單號:
String order_number=request.getParameter("order_number");
if(order_number==null)
{order_number="";
}
byte b[]=order_number.getBytes("ISO-8859-1");
order_number=new String(b);
Connection con=null;
Statement sql=null;
ResultSet rs=null;
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
try
{con=DriverManager.getConnection("jdbc:odbc:shop","","");
sql=con.createStatement();
String condition=
"DELETE FROM orderform WHERE order_number="+"'"+order_number+"'";
sql.executeUpdate(condition); //刪除。
out.print("<BR>"+"訂單條款被刪除一項");
}
catch(SQLException e)
{ out.print("<BR>"+"刪除失敗");
}
%>
</BODy>
</HTML>
修改訂購數量頁面(效果如圖8.12所示)
changeForm.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<%@ page import="Login" %>
<jsp:useBean id="login" class="Login" scope="session" >
</jsp:useBean>
<html>
<BODY>
<%@ include file="head.txt" %>
<% //如果客戶直接進入該頁面將被轉向登錄頁面。
if(session.isNew())
{response.sendRedirect("userLogin.jsp");
}
//如果沒有成功登錄將被轉向登錄頁面
String success=login.getSuccess();
if(success==null)
{success="";
}
if(!(success.equals("ok")))
{response.sendRedirect("userLogin.jsp");
}
%>
<% //獲取訂單號:
String order_number=request.getParameter("order_number");
if(order_number==null)
{order_number="";
}
byte b[]=order_number.getBytes("ISO-8859-1");
order_number=new String(b);
//獲取新的定數:
String newMount=request.getParameter("mount");
if(newMount==null)
{newMount="0";
}
byte c[]=newMount.getBytes("ISO-8859-1");
newMount=new String(c);
Connection con=null;
Statement sql=null;
ResultSet rs=null;
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
try
{con=DriverManager.getConnection("jdbc:odbc:shop","","");
sql=con.createStatement();
String condition=
"UPDATE orderform SET mount = "+newMount+" WHERE order_number="+"'"+order_number+"'";
//更新訂單:
sql.executeUpdate(condition);
out.print("<BR>"+"訂單被更新");
}
catch(SQLException e)
{ out.print("<BR>"+"更新失敗");
}
%>
</BODy>
</HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -