⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server.java

📁 自己写的很独特的web服务器
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
						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 + -