ourhttpservlet.java

来自「JAVA Servlet2.3外文书籍源码」· Java 代码 · 共 192 行

JAVA
192
字号
package httpExamples;import javax.servlet.*;import javax.servlet.http.*;import java.io.IOException;import java.io.PrintWriter;import java.util.Enumeration;import java.util.Date;import java.text.DateFormat;import java.util.GregorianCalendar;import java.util.Calendar;/** * Title:        OurHttpServlet * Description:  Example servlet implementing demonstrating use of request and *               response objects * Copyright:    Copyright (c) 2001 * Company: * @author Andrew Harbourne-Thomas * @version 1.0 */public class OurHttpServlet extends HttpServlet {  /**   * Method to handle a HTTP GET request   *   * @param request HttpServletRequest object for the clients request   * @param response HttpServletResponse object for the servers response   * @throws IOException   */  public void doGet(HttpServletRequest request, HttpServletResponse response)          throws IOException {    //------------------------------------    //Extract data from the request object    //------------------------------------    //Extract Parameters (if any)    String name = request.getParameter("name");    String[] children = request.getParameterValues("children");    Enumeration params = request.getParameterNames();    //Extract Attributes (if any)    Enumeration attributes = request.getAttributeNames();    //Extract Header Info    Enumeration headers = request.getHeaderNames();    //Information about the client    String protocolUsed = request.getProtocol();    String mimeTypeUsed = request.getContentType();    String client = request.getRemoteHost();    //----------------------------------------    //Send response back using response object    //----------------------------------------    //Convienience - redirect page if name parameter was Frank    if (name != null && "Frank".equals(name.trim())) {      response.sendRedirect("Frank.html");      return;    }    //buffering    int buffersize = response.getBufferSize();    //add a header - more useful with custom clients    response.addHeader("Servlet", "OurHttpServlet");    //set the refresh option requesting that the client refresh    //in specified number of seconds - not officially part of    //HTTP 1.0 or 1.1 by supported by most browsers    response.setIntHeader("Refresh", 10);    //get the PrintWriter object to write output to the client    PrintWriter out = response.getWriter();    //set the mime type content    response.setContentType("text/html");    //set the status code - not really necessary in this case    response.setStatus(HttpServletResponse.SC_OK);    //send back the data collected from the request    out.println("<html><head><title>OurHttpServlet</title></head>");    out.println("<body><h1>OurHttpServlet</h1>");    out.println("<h2>Current Time</h2>");    Calendar calendar = new GregorianCalendar();    calendar.setTime(new Date());    String currentTime = (calendar.get(Calendar.HOUR) + ":" +                         (calendar.get(Calendar.MINUTE) < 10 ?                          "0" + calendar.get(Calendar.MINUTE):                          "" + calendar.get(Calendar.MINUTE))  + ":" +                         (calendar.get(Calendar.SECOND) < 10 ?                          "0" +calendar.get(Calendar.SECOND):                          "" + calendar.get(Calendar.SECOND)) + " " +                         (calendar.get(Calendar.AM_PM) == Calendar.AM ?                          "AM" : "PM")                         );    out.println("<b>Time:</b> " + currentTime);    out.println("<h2>Parameters</h2>");    out.println("<b>Name:</b>" + name);    out.print("<br><b>Children:</b>");    if (children == null) {      out.println("none");    }    else {      for (int i = 0; i < children.length; i++)        out.println(children[i] + "; ");    }    out.print("<br><b>Parameters:</b>");    if (params.hasMoreElements()) {      while (params.hasMoreElements()) {        String param = (String)params.nextElement();        out.println("<br>" + param + ": <i>" + request.getParameter(param) + "</i>");      }    }    else {      out.println("none");    }    out.println("<h2>Attributes</h2>");    if (attributes.hasMoreElements()) {      while (attributes.hasMoreElements()) {        String attrib = (String)attributes.nextElement();        out.println("<br>" + attrib + ": <i>" + request.getAttribute(attrib) + "</i>");      }    }    else {      out.println("none");    }    out.println("<h2>Header Info</h2>");    out.print("<b>Headers:</b>");    if (headers.hasMoreElements()) {      while (headers.hasMoreElements()) {        String head = (String)headers.nextElement();        out.println("<br>" + head + ": <i>" + request.getHeader(head) + "</i>");      }    }    else {      out.println("none");    }    //on large pages it may help performance to periodically flush the    //output to the client rather than wait until the end of the page    //(depending on the servers buffering strategy)    out.flush();    out.println("<h2>Path Elements</h2>");    //Request Path Elements    String requestURI = request.getContextPath() +                        request.getServletPath() +                        ((request.getPathInfo() == null) ? "" : request.getPathInfo());    out.println("<b>Request URI:</b> " + requestURI);    out.println("<br><b>Request Context Path:</b> " + request.getContextPath());    out.println("<br><b>Request Servlet Path:</b> " + request.getServletPath());    out.println("<br><b>Request Path Info:</b> " + request.getPathInfo());    out.println("<br><b>Request Path Translated:</b> " + request.getPathTranslated());    out.println("<br><b>Request Request URI:</b> " + request.getRequestURI());    out.println("<br><b>Request Request URL:</b> " + request.getRequestURL());    out.println("<br><b>Query String:</b> " + request.getQueryString());    out.println("<h2>Client</h2>");    out.println("<b>Protocol used:</b>" + protocolUsed);    out.println("<br><b>Mime Type Used:</b>" + mimeTypeUsed);    out.println("<br><b>Client:</b>" + client);    out.println("</body></html>");    out.close();  }  /**   * Method to handle a HTTP POST request   *   * @param request HttpServletRequest object for the clients request   * @param response HttpServletResponse object for the servers response   * @throws IOException   */  public void doPost(HttpServletRequest request, HttpServletResponse response)          throws IOException {    //forward request to doGet method    doGet(request, response);  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?