📄 motoshopserver.java.txt
字号:
/*
*MotoShopServer.java是一个Java servlet,
*它运行在一个带有JServ servlet引擎的Apache web服务器上。
*一旦该serlet由MotoShop的MIDlet
*客户接收到一个搜索请求,则调用搜索例程
*BookSearch.search()从而基于请求类型
*完成图书搜索,在此既可以是关键字搜索
*也可以是ISBN搜索。搜索结果以XML
*格式发回给 MotoShop客户
*/
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class MotoShopServer extends HttpServlet{
public void init(ServletConfig config)
throws ServletException{
super.init(config);
}
//doPost()方法处理Java servlet所收到的所有POST请求
public void doPost(
HttpServletRequest request,HttpServletResponse reponse)
throws ServletException,IOException{
//得到查询串中各域内容
String keyword_flag = request.getParameter("keyword");
String isbn_flag = request.getParameter("isbn");
//得到MotoShop客户发送的请求串
String requestString = " ";
try {
BufferReader br = request.getReader();
requestString = br.readLine();
}catch (Exception e){
System.err.println(e);
}
//BookSearch.search()询问不同在线书店以得到价格和图书信息
Vector bookList = null;
StringBuffer messageBuffer = new StringBuffer();
if( keyword_flag != null ){
if( keyword_flag.equalsIgnoreCase("YES"))
bookList = BookSearch.search("KEYWORD",requestString);
}else if( isbn_flag != null ){
if( isbn_flag.equalsIgnoreCase("YES"))
bookList = BookSearch.search("ISBN",requestString);
}
//由搜索结果构造XML响应串
if( bookList != null ){
messageBuffer.append("<BOOKLIST>");
//检索图书信息
for(int i = 0; i < bookList.size(); i++){
messageBuffer.append("<BOOK>");
Book book = (Book)bookList.elementAt(i);
Vector prices = book.getPrices();
messageBuffer.append("<TITLE>" + book.getTitle() + "</TITLE>");
messageBuffer.append("<AUTHOR>" + book.getAuthor() + "</AUTHOR>");
messageBuffer.append("<ISBN>" + book.getIsbn() + "</ISBN>");
messageBuffer.append("<PUBLISHER>" + book.getPublisher() + "</PUBLISHER>");
//检索价格信息
for(int j = 0; j < prices.size(); j++){
Pair price = (Pair)prices.elementAt(j);
messageBuffer.append("<SITENAME>" + price.getSiteName() + "</SITENAME>");
messageBuffer.append("<PRICE>" + price.getPrice() + "</PRICE>");
}
messageBuffer.append("</BOOK>");
}
messageBuffer.append("</BOOKLIST>");
} else {
messageBuffer.append("<ERROR>NO Book Found</ERROR>");
}
//向客户发回响应
PrintWriter out = new PrintWriter(response.getOutputStream(),true);
response.setContentType("text/html");
out.println(messageBuffer);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -