📄 auctionservlet.java
字号:
private void itemDetails(ServletOutputStream out, HttpServletRequest request) throws IOException{
setTitle(out, "Item Details");
String item=request.getParameter("item");
int itemid=0;
try {
itemid=Integer.parseInt(item);
}catch (NumberFormatException e) {
System.out.println("problem with item id "+itemid);
return;
}
try {
AuctionItemHome home = (AuctionItemHome) ctx.lookup("auctionitems");
AuctionItemPK pk=new AuctionItemPK();
pk.id=itemid;
AuctionItem ai=home.findByPrimaryKey(pk);
displayPageItem(ai, out);
addLine("<BR><HR><P>Do you want to bid on this item?", out);
addLine("<FORM ACTION=\"/AuctionServlet\" METHOD=\"POST\">", out);
addLine("<TR>Enter your user id:<INPUT TYPE=\"TEXT\" SIZE=20 NAME=\"buyer\"> ", out);
addLine("and password:<INPUT TYPE=\"PASSWORD\" SIZE=20 NAME=\"password\"></TR>", out);
addLine("<TR>Your bid amount:<INPUT TYPE=\"TEXT\" SIZE=20 NAME=\"amount\"></TR>", out);
addLine("<INPUT TYPE=\"HIDDEN\" NAME=\"action\" VALUE=\"bid\">", out);
addLine("<INPUT TYPE=\"HIDDEN\" NAME=\"item\" VALUE=\""+itemid+"\">", out);
addLine("<INPUT TYPE=\"SUBMIT\" VALUE=\"Place Bid\" NAME=\"Bid\"></FORM>", out);
} catch (Exception e) {
addLine("AuctionServlet List Item error", out);
System.out.println("AuctionServlet <details>:"+e);
}
out.flush();
}
private void itemBid(ServletOutputStream out, HttpServletRequest request) throws IOException{
setTitle(out, "Item Bid");
String item=request.getParameter("item");
String buyer=request.getParameter("buyer");
String password=request.getParameter("password");
String bid=request.getParameter("amount");
int itemid=0;
double bidamount=0;
try {
itemid=Integer.parseInt(item);
}catch (NumberFormatException e) {
System.out.println("problem with item id " +itemid);
return;
}
try {
bidamount=Double.valueOf(bid).doubleValue();
}catch (NumberFormatException e) {
System.out.println("problem with bid" +bid);
return;
}
try {
BidderHome bhome = (BidderHome) ctx.lookup("bidder");
Bidder bidbean=bhome.create();
int result=bidbean.placeBid(itemid, buyer, password, bidamount);
switch(result) {
case Auction.OUT_BID:
addLine("Your bid was not high enough", out);
break;
case Auction.HIGH_BID:
addLine("You are the high bidder", out);
break;
case Auction.AUCTION_OVER:
addLine("This auction has finished", out);
break;
case Auction.INVALID_USER:
addLine("Invalid user or password", out);
break;
default:
addLine("Problem submitting bid", out);
}
} catch (Exception e) {
addLine("AuctionServlet Bid error", out);
System.out.println("AuctionServlet <bid>:"+e);
}
out.flush();
}
private void registerUser(ServletOutputStream out, HttpServletRequest request) throws IOException{
String user=request.getParameter("user");
String password=request.getParameter("password");
String creditcard=request.getParameter("creditcard");
String emailaddress=request.getParameter("emailaddress");
try {
RegistrationHome regRef = (RegistrationHome)java.rmi.Naming.lookup("//localhost/registration2");
RegistrationPK reguser = regRef.create(user, password, emailaddress, creditcard);
if(reguser != null) {
addLine("Created user: "+reguser.getUser(),out);
addLine("", out);
}
else {
addLine("Error creating user id, possibly already exists ", out);
}
} catch(Exception e) {
addLine("AuctionServlet registration error", out);
System.out.println("AuctionServlet <register>:"+e.toString());
}
out.flush();
}
private void auditAccounts(ServletOutputStream out,
HttpServletRequest request) throws IOException{
String text = "Audit of users with low credit.";
String remoteaddr =request.getHeader("REMOTE_ADDR");
setTitle(out, "Audit Accounts");
if(!remoteaddr.equals("127.0.0.1")) {
addLine("service not available", out);
}
try {
addLine("<BR>"+text, out);
addLine("<TABLE BORDER=1 CELLPADDING=1 CELLSPACING=0><TR><TH>User</TH><TH>Accounts Balance</TH></TR>", out);
SellerHome home = (SellerHome) ctx.lookup("seller");
Seller si= home.create();
if(si != null) {
ArrayList ar=si.auditAccounts();
for(Iterator i=ar.iterator(); i.hasNext();) {
Registration user=(Registration)(i.next());
addLine("<TD>"+user.getUser()+"</TD><TD>"+user.getBalance()+"</TD></TR>", out);
}
addLine("</TABLE>", out);
}
} catch (Exception e) {
addLine("AuctionServlet auditAccounts error",out);
System.out.println("AuctionServlet <auditAccounts>:"+e);
}
out.flush();
}
static private void displayitems(Enumeration e,
ServletOutputStream out) throws Exception{
addLine("<TABLE BORDER=1 CELLPADDING=1 CELLSPACING=0><TR><TH>Item</TH><TH>Summary</TH><TH>Current High bid</TH><TH>Number of bids</TH><TH>Closing Date</TH></TR>", out);
while((e !=null) && (e.hasMoreElements())) {
while(e.hasMoreElements()) {
displayLineItem((AuctionItem) e.nextElement(), out);
}
}
addLine("</TABLE>", out);
}
static private void displayLineItem(AuctionItem auctionItem, ServletOutputStream out)
throws RemoteException, IOException {
StringBuffer line= new StringBuffer();
int bidcount=auctionItem.getBidCount();
int key=(int)auctionItem.getId();
line.append("<TR><TD><A HREF=/AuctionServlet?action=details&item="+key+">"+key+"</A></TD>");
line.append("<TD>"+auctionItem.getSummary() +"</TD>");
if(bidcount >0) {
line.append("<TD>"+NumberFormat.getCurrencyInstance().format(auctionItem.getHighBid()) +"</TD>");
}
else {
line.append("<TD>-</TD>");
}
line.append("<TD>"+bidcount+"</TD>");
line.append("<TD>"+auctionItem.getEndDate() +"</TD></TR>");
addLine(line.toString(), out);
}
static private void displayPageItem(AuctionItem auctionItem, ServletOutputStream out)
throws RemoteException, IOException {
int bidcount=auctionItem.getBidCount();
addLine(auctionItem.getSummary(), out);
addLine("Auction Item Number: "+auctionItem.getPrimaryKey(), out);
if(bidcount >0) {
addLine("<P>Current price: "+NumberFormat.getCurrencyInstance().format(auctionItem.getHighBid()), out);
addLine("Minimum increment: "+NumberFormat.getCurrencyInstance().format(auctionItem.getIncrement()), out);
}
else {
addLine("<P>Current price: "+NumberFormat.getCurrencyInstance().format(auctionItem.getStartPrice()), out);
}
addLine("# of bids: "+bidcount, out);
addLine("<P>Auction Started: "+auctionItem.getStartDate(), out);
addLine("Auction Ends: "+auctionItem.getEndDate(), out);
addLine("<P>Seller: "+auctionItem.getSeller(), out);
if(bidcount >0) {
addLine("High Bidder: "+auctionItem.getHighBidder(), out);
} else {
addLine("High Bidder: "+"-", out);
}
addLine("<HR><P>", out);
addLine("Description: "+auctionItem.getDescription(), out);
}
private String readFile (String file) throws IOException {
if (file != null) {
StringBuffer buffer = new StringBuffer();
BufferedReader reader = new BufferedReader (new FileReader (file));
String line;
while ( (line=reader.readLine()) != null ) {
buffer.append (line+'\n');
}
reader.close();
return buffer.toString();
}
else {
return null;
}
}
private void setTitle(ServletOutputStream out, String title) {
try {
out.println("<HTML><HEAD><TITLE>"+title+"</TITLE></HEAD>");
out.println("<BODY BGCOLOR=\"WHITE\">");
} catch(IOException e) {
System.out.println("Unable to set title"+e);
}
}
private void setFooter(ServletOutputStream out) {
try {
out.println("<HR><CENTER> <A HREF=\"registration.html\">Register</A>");
out.println("<STRONG>|</STRONG>");
out.println("<A HREF=\"/AuctionServlet?action=newlist\">New Items</A>");
out.println("<STRONG>|</STRONG>");
out.println("<A HREF=\"/AuctionServlet?action=close\">Closing Items</A>");
out.println("<STRONG>|</STRONG>");
out.println("<A HREF=\"/AuctionServlet?action=list\">All Items</A>");
out.println("<STRONG>|</STRONG>");
out.println("<A HREF=\"sell.html\">Sell Items</A>");
out.println("</CENTER>");
} catch (IOException e) {
System.out.println("Unable to set footer"+e);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -