Java/Servlets/Do Get Do Post

Материал из Java эксперт
Перейти к: навигация, поиск

Get Request Parameters in a Servlet

   <source lang="java">

import java.io.IOException; import java.io.PrintWriter; import java.util.Enumeration; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class Main extends HttpServlet {

 protected void service(HttpServletRequest request, HttpServletResponse response)
     throws ServletException, IOException {
   response.setContentType("text/html;charset=UTF-8");
   PrintWriter out = response.getWriter();
   Enumeration en = request.getParameterNames();
   while (en.hasMoreElements()) {
     String paramName = (String) en.nextElement();
     out.println(paramName + " = " + request.getParameter(paramName) + "
"); } }

}

 </source>
   
  
 
  



Print all header information available from the client

   <source lang="java">

/*

* <servlet> <servlet-name>PrintHeader </servlet-name>
* <servlet-class>PrintHeader </servlet-class> </servlet>
* 
* <servlet-mapping> <servlet-name>PrintHeader </servlet-name>
* <url-pattern>/PrintHeader </url-pattern> </servlet-mapping>
* 
*  
*/

import java.io.IOException; import java.io.PrintWriter; import java.util.Enumeration; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class PrintHeader extends HttpServlet {

 /**
  * doGet implementation, calls printHeader function
  * 
  * @param request
  * @param response
  * @throws IOException
  * @throws ServletException
  *  
  */
 public void doGet(HttpServletRequest request, HttpServletResponse response)
     throws IOException, ServletException {
   printHeader(request, response);
 }
 /**
  * doPost implementation, calls printHeader function
  * 
  * @param request
  * @param response
  * @throws IOException
  * @throws ServletException
  *  
  */
 public void doPost(HttpServletRequest request, HttpServletResponse response)
     throws IOException, ServletException {
   printHeader(request, response);
 }
 /**
  * Prints client header information that is available
  * 
  * @param request
  * @param response
  * @throws IOException
  * @throws ServletException
  *  
  */
 public void printHeader(HttpServletRequest request,
     HttpServletResponse response) throws IOException, ServletException {
   String headers = null;
   String htmlHeader = "<HTML><HEAD><TITLE> Request Headers</TITLE></HEAD><BODY>";
   String htmlFooter = "</BODY></HTML>";
   response.setContentType("text/html");
   PrintWriter out = response.getWriter();
   Enumeration e = request.getHeaderNames();
   out.println(htmlHeader);
out.println(""); out.println("");
   while (e.hasMoreElements()) {
     headers = (String) e.nextElement();
     if (headers != null) {
out.println("
Header Value
" + headers + "</td>"); out.println("" + request.getHeader(headers)
           + "</td></tr>");
     }
   }
   out.println("</TABLE>
"); out.println(htmlFooter); }

}


 </source>
   
  
 
  



Print various CGI variables that have been requested by the servlet

   <source lang="java">

//*

* <servlet> 
* <servlet-name>PrintCGI </servlet-name> 
* <servlet-class>PrintCGI
* </servlet-class> 
* </servlet>
* 
* <servlet-mapping> 
* <servlet-name>PrintCGI </servlet-name>
* <url-pattern>/PrintCGI </url-pattern> 
* </servlet-mapping>
*/

import java.io.IOException; import java.io.PrintWriter; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class PrintCGI extends HttpServlet {

 /**
  * doGet implementation, calls printCGIValues
  * 
  * @param request
  * @param response
  * @throws IOException
  */
 public void doGet(HttpServletRequest request, HttpServletResponse response)
     throws IOException {
   printCGIValues(request, response);
 }
 /**
  * doPost implementation, calls printCGIValues
  * 
  * @param request
  * @param response
  * @throws IOException
  */
 public void doPost(HttpServletRequest request, HttpServletResponse response)
     throws IOException {
   printCGIValues(request, response);
 }
 /**
  * Prints CGI Environment Variables in a table
  * 
  * @param request
  * @param response
  * @throws IOException
  */
 public void printCGIValues(HttpServletRequest request,
     HttpServletResponse response) throws IOException {
   String headers = null;
   String htmlHeader = "<HTML><HEAD><TITLE> CGI Environment Variables </TITLE></HEAD><BODY>";
   String htmlFooter = "</BODY></HTML>";
   response.setContentType("text/html");
   PrintWriter out = response.getWriter();
   out.println(htmlHeader);
out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println("
CGI Variable Value
Authentication Type" + request.getAuthType() + "
Content Type" + request.getContentType() + "
Content Type Length" + request.getContentLength() + "
Query String" + request.getMethod() + "
IP Address" + request.getRemoteAddr() + "
Host Name" + request.getRemoteHost() + "
Request URL" + request.getRequestURI() + "
Servlet Path" + request.getServletPath() + "
Server"s Name" + request.getServerName() + "
Server"s Port" + request.getServerPort() + "

");
   out.println(htmlFooter);
 }

}


 </source>
   
  
 
  



Request binder

   <source lang="java">

import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class RequestBinder extends HttpServlet {

 public void doGet(HttpServletRequest request, HttpServletResponse response)
     throws ServletException, java.io.IOException {
   //bind an object to the servlet context
   ContextObject contextObj = new ContextObject();
   contextObj.put(request.getRemoteAddr(), "" + new java.util.Date());
   request.setAttribute("com.jexp.RequestObject", contextObj);
   //better display something
   RequestDispatcher dispatcher = request
       .getRequestDispatcher("/displayAttr");
   dispatcher.forward(request, response);
 } //end doGet

} //ContextObject.java class ContextObject {

 private Map map;
 public ContextObject() {
   map = Collections.synchronizedMap(new HashMap());
 }
 public void put(Object key, Object value) {
   if (key == null || value == null)
     throw new IllegalArgumentException(
         "Invalid parameters passed to ContextObject.put");
   map.put(key, value);
 }
 public Map getMap() {
   return map;
 }
 public String getValues() {
   StringBuffer buf = new StringBuffer("");
   Set set = map.keySet();
   synchronized (map) {
     Iterator i = set.iterator();
     while (i.hasNext())
       buf.append((String) i.next() + "
"); } return buf.toString(); } public String toString() { return getClass().getName() + "[ " + map + " ]"; }

}


 </source>
   
  
 
  



Request display

   <source lang="java">

import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class RequestDisplay extends HttpServlet {

 public void doGet(HttpServletRequest request, HttpServletResponse response)
     throws ServletException, java.io.IOException {
   ContextObject obj = (ContextObject) request
       .getAttribute("com.jexp.RequestObject");
   //display the attribute"s Map keys
   response.setContentType("text/html");
   java.io.PrintWriter out = response.getWriter();
   out
       .println("<html><head><title>Request Attribute</title></head><body>");
out.println("

Request attribute values

");
   if (obj != null)
     out.println(obj.getValues());
   out.println("</body></html>");
 } //end doGet

} //ContextObject.java class ContextObject {

 private Map map;
 public ContextObject() {
   map = Collections.synchronizedMap(new HashMap());
 }
 public void put(Object key, Object value) {
   if (key == null || value == null)
     throw new IllegalArgumentException(
         "Invalid parameters passed to ContextObject.put");
   map.put(key, value);
 }
 public Map getMap() {
   return map;
 }
 public String getValues() {
   StringBuffer buf = new StringBuffer("");
   Set set = map.keySet();
   synchronized (map) {
     Iterator i = set.iterator();
     while (i.hasNext())
       buf.append((String) i.next() + "
"); } return buf.toString(); } public String toString() { return getClass().getName() + "[ " + map + " ]"; }

}


 </source>
   
  
 
  



Request header viewer

   <source lang="java">

import java.util.Enumeration; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class RequestHeaderView extends HttpServlet {

 public void doGet(HttpServletRequest request, HttpServletResponse response)
     throws ServletException, java.io.IOException {
   //get an Enumeration of all the request header names
   Enumeration e = request.getHeaderNames();
   //display
   response.setContentType("text/html");
   java.io.PrintWriter out = response.getWriter();
   out.println("<html><head><title>Request Header View</title></head><body>");
out.println("

Request Headers

");
   String header = null;
   while (e.hasMoreElements()) {
     header = (String) e.nextElement();
     //getHeader returns null if a request header of that name does not
     // exist in the request
     out.println("" + header + "" + ": "
         + request.getHeader(header) + "
"); } out.println("</body></html>"); } //end doGet public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { doGet(request, response); }

}


 </source>
   
  
 
  



Servlet Request Listener

   <source lang="java">

import javax.servlet.ServletContext; import javax.servlet.ServletRequest; import javax.servlet.ServletRequestEvent; import javax.servlet.ServletRequestListener; import javax.servlet.http.HttpServletRequest; public class ReqListener implements ServletRequestListener {

 private static long reqCount;
 public void requestInitialized(ServletRequestEvent sre) {
   ServletContext context = sre.getServletContext();
   ServletRequest request = sre.getServletRequest();
   synchronized (context) {
     context
         .log("Request for "
             + (request instanceof HttpServletRequest ? ((HttpServletRequest) request)
                 .getRequestURI()
                 : "Unknown") + "; Count=" + ++reqCount);
   }
 }
 public void requestDestroyed(ServletRequestEvent sre) {
 }

}


 </source>
   
  
 
  



Simple servlet: Copyright

   <source lang="java">

/*

 <servlet>
       <servlet-name>Copyright</servlet-name>
       <servlet-class>Copyright</servlet-class>
   </servlet>
   <servlet-mapping>
       <servlet-name>Copyright</servlet-name>
       <url-pattern>/Copyright</url-pattern>
   </servlet-mapping>
  • /

import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class Copyright extends HttpServlet {

 protected void doGet(HttpServletRequest request,
     HttpServletResponse response) throws ServletException,
     java.io.IOException {
   java.io.PrintWriter out = response.getWriter();
   out.println("Copyright© 2003-2004 Java Source and Support.");
   out.close();
 }

}


 </source>