📄 server.java
字号:
generalResponseQueue.enqueue(responseMessage);
}
else if ((requestMessage.methodName).equals("searchAddress"))
{
String domainName = requestMessage.parameterString;
System.out.println("domainName = " + domainName);
String address = registryServer.searchAddress(domainName);
System.out.println("address = " + address);
responseMessage.threadID = threadID;
responseMessage.returnValue = address;
generalResponseQueue.enqueue(responseMessage);
}
else if ((requestMessage.methodName).equals("getPage"))
{
String pageName=requestMessage.parameterString;
String pageName1="";
System.out.println("pageName = " + pageName);
StringBuffer pageBuffer = webServer.getPage(pageName);
int index1=pageName.indexOf("?");
if(index1>0)
{
pageName1=pageName.substring(0,index1);
}
if ((pageName1).equals("response.xml"))
{
Hashtable parameterHash = tools.convertURLStringToHash(requestMessage.parameterString);
String inputAccountName = (String)parameterHash.get("0");
String inputAccountPassword = (String)parameterHash.get("1");
String inputCreditCardNumber = (String)parameterHash.get("2");
String inputBookName = (String)parameterHash.get("3");
int inputQuantity = tools.convertStringToInt((String)parameterHash.get("4"));
Hashtable responseHash = bookRetailer.buyBooks(inputAccountName, inputAccountPassword, inputCreditCardNumber, inputBookName, inputQuantity);
responseMessage.threadID = threadID;
responseMessage.returnValue = (this.createReceiptPage(responseHash,pageName)).toString();
generalResponseQueue.enqueue(responseMessage);
}
else if((pageName1).equals("select.xml"))
{
responseMessage.threadID = threadID;
responseMessage.returnValue = pageBuffer.toString();
generalResponseQueue.enqueue(responseMessage);
}
else
{
responseMessage.threadID = threadID;
responseMessage.returnValue = pageBuffer.toString();
generalResponseQueue.enqueue(responseMessage);
}
}
}
}
}
}
private StringBuffer createReceiptPage(Hashtable responseHash)
{
String responseXML = webServer.getResponseXML();
try
{
InputStream is = new FileInputStream(responseXML);
Parser parser = new Parser(responseXML);
Document doc = parser.readStream(is);
Element root = doc.getDocumentElement();
Element titleItem;
Element paragraphItem;
Element paragraphTitleItem;
Element descriptionItem;
Element linkItem;
Element linkPresentationItem;
Element linkPageItem;
Element formItem;
Element formTitleItem;
Element formMethodItem;
Element formElementItem;
Element formFieldItem;
Element formValueItem;
titleItem = doc.createElement("Title");
titleItem.appendChild(doc.createTextNode("Receipt"));
root.appendChild(titleItem);
paragraphItem = doc.createElement("Paragraph");
root.appendChild(paragraphItem);
paragraphTitleItem = doc.createElement("ParagraphTitle");
paragraphTitleItem.appendChild(doc.createTextNode("Your order is processed!"));
paragraphItem.appendChild(paragraphTitleItem);
descriptionItem = doc.createElement("Description");
descriptionItem.appendChild(doc.createTextNode("This is your receipt"));
paragraphItem.appendChild(descriptionItem);
linkItem = doc.createElement("Link");
paragraphItem.appendChild(linkItem);
linkPresentationItem = doc.createElement("LinkPresentation");
linkPresentationItem.appendChild(doc.createTextNode("Receipt"));
linkItem.appendChild(linkPresentationItem);
linkPageItem = doc.createElement("LinkPage");
linkPageItem.appendChild(doc.createTextNode("http://www.ibm.com/index.xml"));
linkItem.appendChild(linkPageItem);
formItem = doc.createElement("Form");
paragraphItem.appendChild(formItem);
formTitleItem = doc.createElement("FormTitle");
formTitleItem.appendChild(doc.createTextNode("Receipt Form"));
formItem.appendChild(formTitleItem);
formMethodItem = doc.createElement("FormMethod");
formMethodItem.appendChild(doc.createTextNode("null"));
formItem.appendChild(formMethodItem);
Enumeration enum = responseHash.keys();
String fieldName;
String fieldValue;
while (enum.hasMoreElements())
{
fieldName = (String)enum.nextElement();
fieldValue = (String)responseHash.get(fieldName);
formElementItem = doc.createElement("FormElement");
formItem.appendChild(formElementItem);
formFieldItem = doc.createElement("FormField");
formFieldItem.appendChild(doc.createTextNode(fieldName));
formElementItem.appendChild(formFieldItem);
formValueItem = doc.createElement("FormValue");
formValueItem.appendChild(doc.createTextNode(fieldValue));
formElementItem.appendChild(formValueItem);
}
FileWriter fw = new FileWriter(responseXML);
PrintWriter pw = new PrintWriter(fw, true);
((TXDocument)doc).printWithFormat(pw);
}
catch (Exception e)
{
e.printStackTrace();
}
StringBuffer stringBuffer = new StringBuffer();
stringBuffer = webServer.getPage("response.xml");
return stringBuffer;
}
private StringBuffer createReceiptPage(Hashtable responseHash,String pageName)
{
String responseXML = webServer.getResponseXML();
try
{
InputStream is = new FileInputStream(responseXML);
Parser parser = new Parser(responseXML);
Document doc = parser.readStream(is);
Element root = doc.getDocumentElement();
Element titleItem;
Element paragraphItem;
Element paragraphTitleItem;
Element descriptionItem;
Element linkItem;
Element linkPresentationItem;
Element linkPageItem;
Element formItem;
Element formTitleItem;
Element formMethodItem;
Element formElementItem;
Element formFieldItem;
Element formValueItem;
titleItem = doc.createElement("Title");
titleItem.appendChild(doc.createTextNode("Receipt"));
root.appendChild(titleItem);
paragraphItem = doc.createElement("Paragraph");
root.appendChild(paragraphItem);
paragraphTitleItem = doc.createElement("ParagraphTitle");
paragraphTitleItem.appendChild(doc.createTextNode("Your order is processed!"));
paragraphItem.appendChild(paragraphTitleItem);
descriptionItem = doc.createElement("Description");
descriptionItem.appendChild(doc.createTextNode("This is your receipt"));
paragraphItem.appendChild(descriptionItem);
linkItem = doc.createElement("Link");
paragraphItem.appendChild(linkItem);
linkPresentationItem = doc.createElement("LinkPresentation");
linkPresentationItem.appendChild(doc.createTextNode("Receipt"));
linkItem.appendChild(linkPresentationItem);
linkPageItem = doc.createElement("LinkPage");
linkPageItem.appendChild(doc.createTextNode("http://www.ibm.com/select.xml"));
linkItem.appendChild(linkPageItem);
formItem = doc.createElement("Form");
paragraphItem.appendChild(formItem);
formTitleItem = doc.createElement("FormTitle");
formTitleItem.appendChild(doc.createTextNode("Receipt Form"));
formItem.appendChild(formTitleItem);
formMethodItem = doc.createElement("FormMethod");
formMethodItem.appendChild(doc.createTextNode("null"));
formItem.appendChild(formMethodItem);
Enumeration enum = responseHash.keys();
String fieldName;
String fieldValue;
while (enum.hasMoreElements())
{
fieldName = (String)enum.nextElement();
fieldValue = (String)responseHash.get(fieldName);
formElementItem = doc.createElement("FormElement");
formItem.appendChild(formElementItem);
formFieldItem = doc.createElement("FormField");
formFieldItem.appendChild(doc.createTextNode(fieldName));
formElementItem.appendChild(formFieldItem);
formValueItem = doc.createElement("FormValue");
formValueItem.appendChild(doc.createTextNode(fieldValue));
formElementItem.appendChild(formValueItem);
}
FileWriter fw = new FileWriter(responseXML);
PrintWriter pw = new PrintWriter(fw, true);
((TXDocument)doc).printWithFormat(pw);
}
catch (Exception e)
{
e.printStackTrace();
}
StringBuffer stringBuffer = new StringBuffer();
stringBuffer = webServer.getPage(pageName);
return stringBuffer;
}
}
class RequestMessage
{
public String threadID;
public String methodName;
public String parameterString;
}
class ResponseMessage
{
public String threadID;
public String returnValue;
}
class ConnectionStatus
{
int connectionLimitation = 100;
int criticalConnectionLimitation = 1;
int currentConnection = 0;
int currentCriticalConnection = 0;
public boolean getRegularConnection()
{
if (currentConnection < connectionLimitation)
{
currentConnection ++;
return true;
}
else
{
return false;
}
}
public boolean getCriticalConnection()
{
if (currentCriticalConnection < criticalConnectionLimitation)
{
currentCriticalConnection ++;
return true;
}
else
{
return false;
}
}
public void getRegularDisconnection()
{
currentConnection --;
}
public void getCriticalDisconnection()
{
currentCriticalConnection --;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -