📄 adminprotocolhandler.java
字号:
}
out.println("<td>" + courierName + "</td>");
out.println("<td>" + deliveryOrder.getDescription()+ "</td>");
out.println("<td>" + deliveryOrder.getSenderAddress()+ "</td>");
out.println("<td>" + deliveryOrder.getRecipientAddress()+ "</td>");
out.println("<td>" + deliveryOrder.getNote()+ "</td>");
out.println("</tr>");
}
out.println("</table>");
out.println("<br><p><font color=\"red\">" +
"Note: Delivery Orders are not stored persistently in" +
" this prototype.</font></p>");
out.println("<p><a href=\"" + contextPath + ADMIN_MAIN +
"\">Courier and Delivery Order Administration</a></p>");
out.println("</body>");
out.println("</html>");
}
void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
try
{
String pathInfo = request.getPathInfo();
if (pathInfo.equals("/admin-create-courier"))
{
handleCreateCourierRequest(request, response);
}
else if (pathInfo.equals("/admin-delete-courier"))
{
handleDeleteCourierRequest(request, response);
}
else if (pathInfo.equals("/admin-create-deliveryOrder"))
{
handleCreateDeliveryOrder(request, response);
}
else if (pathInfo.equals("/admin-delete-deliveryOrder"))
{
handleDeleteDeliveryOrderRequest(request, response);
}
else
{
response.sendError(HttpServletResponse.SC_BAD_REQUEST,
"Unexpected path info");
}
}
catch(Exception e)
{
writeErrorPage(response, e.getMessage(), request.getContextPath());
}
}
private void handleCreateCourierRequest(HttpServletRequest request,
HttpServletResponse response)
throws IOException
{
String name = request.getParameter("name");
String contextPath = request.getContextPath();
if ((name == null) || (name.length() == 0))
{
writeErrorPage(response, "Specify a name", contextPath);
}
else if (courierDatabase.getCourier(name) != null)
{
writeErrorPage(response,
"Courier \"" + name + "\" already exists",
contextPath);
}
else
{
String password = request.getParameter("password");
if (password == null)
{
password = "";
}
Courier courier = courierDatabase.createCourier(name, password);
writeCourierCreatedPage(response, name, contextPath);
}
}
private void handleDeleteCourierRequest(HttpServletRequest request,
HttpServletResponse response)
throws IOException
{
String name = request.getParameter("name");
String contextPath = request.getContextPath();
if ((name == null) || (name.length() == 0))
{
writeErrorPage(response, "Specify a name", contextPath);
}
else
{
String password = request.getParameter("password");
if (password == null)
{
password = "";
}
Courier courier = courierDatabase.getCourier(name);
if ((courier == null) || !courier.isCorrectPassword(password))
{
writeErrorPage(response,
"Invalid name or password",
contextPath);
}
else
{
courierDatabase.deleteCourier(courier);
writeCourierDeletedPage(response, name, contextPath);
}
}
}
private void handleCreateDeliveryOrder(HttpServletRequest request,
HttpServletResponse response)
throws IOException
{
String contextPath = request.getContextPath();
String description = request.getParameter("description");
String senderAddress = request.getParameter("senderAddress");
String recipientAddress = request.getParameter("recipientAddress");
String note = request.getParameter("note");
if (note == null)
{
note = "";
}
String errorStr = "";
if ((description == null) || (description.length() == 0))
{
errorStr += "Description missing. ";
}
if ((senderAddress == null) || (senderAddress.length() == 0))
{
errorStr += "Sender Address missing. ";
}
if ((recipientAddress == null) || (recipientAddress.length() == 0))
{
errorStr += "Recipient Address missing. ";
}
if (!errorStr.equals(""))
{
// Some mandatory field is missing.
writeErrorPage(response, errorStr, contextPath);
}
else
{
DeliveryOrder deliveryOrder =
deliveryOrderDatabase.createDeliveryOrder(
description,
senderAddress,
recipientAddress,
note
);
writeDeliveryOrderCreatedPage(response,
deliveryOrder.getId(),
contextPath);
}
}
private void handleDeleteDeliveryOrderRequest(HttpServletRequest request,
HttpServletResponse response)
throws IOException
{
String id = request.getParameter("id");
String contextPath = request.getContextPath();
if ((id == null) || (id.length() == 0))
{
writeErrorPage(response,
"Specify a DeliveryOrder 'id'", contextPath);
}
DeliveryOrder deliveryOrder =
deliveryOrderDatabase.getDeliveryOrder(id);
if (deliveryOrder == null)
{
writeErrorPage(response,
"Invalid DeliveryOrder 'id'", contextPath);
}
else
{
deliveryOrderDatabase.deleteDeliveryOrder(deliveryOrder);
writeDeliveryOrderDeletedPage(response, id, contextPath);
}
}
private void writeErrorPage(HttpServletResponse response,
String message,
String contextPath)
throws IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>" + SERVICE_NAME + ": Error</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1><font color=\"red\">Error</font></h1>");
out.println("<p>" + message + "</p>");
out.println("<a href=\"" + contextPath + ADMIN_MAIN +
"\">Back to admin homepage</a>");
out.println("</body>");
out.println("</html>");
out.close();
}
private void writeAdminPage(PrintWriter out, String contextPath)
throws IOException
{
out.println("<html>");
out.println("<head>");
out.println("<title>admin</title>");
out.println("</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Courier and Delivery Order Administration</h1>");
out.println("<ul>");
out.println("<li><a href=\"" + contextPath +
"/admin-courier\">courier administration</a></li>");
out.println("<ul>");
out.println("<li><a href=\"" + contextPath +
"/admin-create-courier\">create courier</a></li>");
out.println("<li><a href=\"" + contextPath +
"/admin-delete-courier\">delete courier</a></li>");
out.println("</ul>");
out.println("<li><a href=\"" + contextPath +
"/admin-deliveryOrder\">delivery request" +
" administration</a></li>");
out.println("<ul>");
out.println("<li><a href=\"" + contextPath +
"/admin-create-deliveryOrder\">" +
"create delivery request</a></li>");
out.println("<li><a href=\"" + contextPath +
"/admin-delete-deliveryOrder\">" +
"delete delivery request</a></li>");
out.println("</ul>");
out.println("</ul>");
out.println("</body>");
out.println("</html>");
out.close();
}
private void writeCourierCreatedPage(HttpServletResponse response,
String name,
String contextPath)
throws IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Courier Created</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Courier Created</h1>");
out.println("<p>Courier " + name + " is now ready for use.</p>");
out.println("<a href=\"" + contextPath + "/admin-courier\">" +
"Back to courier list" +
"</a>");
out.println("</body>");
out.println("</html>");
out.close();
}
private void writeDeliveryOrderCreatedPage(HttpServletResponse response,
String id,
String contextPath)
throws IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Delivery Order Created</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Delivery Order Created</h1>");
out.println("<p>Delivery Order (" + id + ") " +
"is now ready for use.</p>");
out.println("<a href=\"" + contextPath +
"/admin-deliveryOrder\">Back to delivery request list</a>");
out.println("</body>");
out.println("</html>");
out.close();
}
private void writeCourierDeletedPage(HttpServletResponse response,
String name,
String contextPath)
throws IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Courier Deleted</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Courier Deleted</h1>");
out.println("<p>Courier " + name + " is now deleted.</p>");
out.println("<a href=\"" + contextPath +
"/admin\">Back to courier list</a>");
out.println("</body>");
out.println("</html>");
out.close();
}
private void writeDeliveryOrderDeletedPage(HttpServletResponse response,
String id,
String contextPath)
throws IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Delivery Order Deleted</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Delivery Order Deleted</h1>");
out.println("<p>Delivery Order " + id + " is now deleted.</p>");
out.println("<a href=\"" + contextPath +
"/admin-deliveryOrder\">Back to delivery " +
"request list</a>");
out.println("</body>");
out.println("</html>");
out.close();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -