📄 auctionservlet.java
字号:
package auction;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.naming.*;
import javax.ejb.*;
import java.rmi.RemoteException;
import java.util.*;
import java.text.NumberFormat;
import bidder.*;
import registration.*;
import seller.*;
import pool.*;
import search.*;
public class AuctionServlet extends HttpServlet {
Context ctx=null;
private String detailsTemplate;
public void init(ServletConfig config) throws ServletException{
super.init(config);
try {
ctx = getInitialContext();
}catch (Exception e){
System.err.println("failed to contact EJB server"+e);
}
try {
detailsTemplate=readFile(config.getInitParameter("detailstemplate"));
} catch(IOException e) {
System.err.println("Error in AuctionServlet <init>"+e);
}
}
public void service(HttpServletRequest request,
HttpServletResponse response) throws IOException {
String cmd;
response.setContentType("text/html");
ServletOutputStream out = response.getOutputStream();
if (ctx == null ) {
try {
ctx = getInitialContext();
}catch (Exception e){
System.err.println("failed to contact EJB server"+e);
}
}
cmd=request.getParameter("action");
if(cmd !=null) {
if(cmd.equals("list")) {
listAllItems(out);
}
else if(cmd.equals("newlist")) {
listAllNewItems(out);
}
else if(cmd.equals("search")) {
searchItems(out, request);
}
else if(cmd.equals("close")) {
listClosingItems(out);
}
else if (cmd.equals("insert")) {
insertItem(out, request);
}
else if (cmd.equals("details")) {
itemDetails(out, request );
}
else if (cmd.equals("bid")) {
itemBid(out, request) ;
}
else if (cmd.equals("register")) {
registerUser(out, request);
}
}
else {
// no command set
setTitle(out, "error");
}
setFooter(out);
out.flush();
}
static private void addLine(String message, ServletOutputStream out)
throws IOException {
if(message !=null) {
out.println("<BR>"+message);
}
}
static public Context getInitialContext() throws Exception {
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.TengahInitialContextFactory");
return new InitialContext(p);
}
private void listAllItems(ServletOutputStream out) throws IOException{
String text = "Click Item number for description and to place bid.";
setTitle(out, "Auction results");
try {
addLine("<BR>"+text, out);
BidderHome bhome=(BidderHome) ctx.lookup("bidder");
Bidder bid=bhome.create();
Enumeration enum=(Enumeration)bid.getItemList();
if(enum != null) {
displayitems(enum, out);
addLine("", out);
}
} catch (Exception e) {
addLine("AuctionServlet List All Items error",out);
System.out.println("AuctionServlet <list>:"+e);
}
out.flush();
}
private void listAllNewItems(ServletOutputStream out) throws IOException {
setTitle(out, "New Auction Items");
try {
addLine("", out);
String text = "Click Item number for description and to place bid.";
addLine(text, out);
BidderHome bhome=(BidderHome) ctx.lookup("bidder");
Bidder bid=bhome.create();
Enumeration enum=(Enumeration)bid.getNewItemList();
if(enum != null) {
displayitems(enum, out);
addLine("", out);
}
} catch (Exception e) {
addLine("AuctionServlet List New Items error", out);
System.out.println("AuctionServlet <newlist>:"+e);
}
out.flush();
}
private void searchItems(ServletOutputStream out,
HttpServletRequest request) throws IOException {
String searchString=request.getParameter("searchString");
String text = "Click Item number for description and to place bid.";
setTitle(out, "Search Results");
try {
addLine("<BR>"+text, out);
AuctionItemHome ahome = (AuctionItemHome) ctx.lookup("auctionitems");
SearchHome shome=(SearchHome) ctx.lookup("search");
Search search=shome.create();
Enumeration enum=(Enumeration)
search.getMatchingItemsList(searchString);
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 ((enum != null) && (enum.hasMoreElements())) {
while(enum.hasMoreElements()) {
AuctionItem ai=ahome.findByPrimaryKey((AuctionItemPK)enum.nextElement());
displayLineItem(ai, out);
}
}
addLine("</TABLE>", out);
} catch (Exception e) {
addLine("AuctionServlet Search Items error", out);
System.out.println("AuctionServlet <searchItems>:"+e);
}
out.flush();
}
private void listClosingItems(ServletOutputStream out) throws IOException{
setTitle(out, "Items Due to Close Today");
String text = "Click Item number for description and to place bid.";
setTitle(out, "Items Due to Close Today");
try {
addLine("<BR>"+text, out);
BidderHome bhome=(BidderHome) ctx.lookup("bidder");
Bidder bid=bhome.create();
Enumeration enum=(Enumeration)bid.getClosedItemList();
if(enum != null) {
displayitems(enum, out);
addLine("", out);
}
} catch (Exception e) {
addLine("AuctionServlet List Closed Items error", out);
System.out.println("AuctionServlet <close>:"+e);
}
out.flush();
}
private void insertItem(ServletOutputStream out, HttpServletRequest request) throws IOException{
setTitle(out, "Insert Auction Item");
String seller=request.getParameter("seller");
String description=request.getParameter("description");
String summary=request.getParameter("summary");
String password=request.getParameter("password");
String price=request.getParameter("startprice");
double startprice=0.00;
try{
startprice=((Number)NumberFormat.getCurrencyInstance().parse("$"+price)).doubleValue();
}catch(java.text.ParseException e){
System.out.println("money problem"+e);
return;
}catch (NumberFormatException e) {
System.out.println("money problem"+e);
return;
}
int auctiondays=7;
try{
auctiondays=Integer.parseInt(request.getParameter("auctiondays"));
} catch(NumberFormatException e){
System.out.println("problem parsing auction days"+e);
return;
}
if(auctiondays<=0 || auctiondays>7) {
auctiondays=7;
}
try {
SellerHome home = (SellerHome) ctx.lookup("seller");
Seller si= home.create();
if(si != null) {
int result= si.insertItem(seller, password, description,
auctiondays, startprice, summary);
if (result >0) {
addLine("Inserted item "+summary, out);
addLine("Details available <A HREF=/AuctionServlet?action=details&item="+result+">here</A>", out);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -