Java/Servlets/Do Get Do Post — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 09:11, 1 июня 2010
Содержание
- 1 Get Request Parameters in a Servlet
- 2 Print all header information available from the client
- 3 Print various CGI variables that have been requested by the servlet
- 4 Request binder
- 5 Request display
- 6 Request attribute values
- 7 Request header viewer
- 8 Request Headers
- 9 Servlet Request Listener
- 10 Simple servlet: Copyright
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("
Header | Value | ");||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
" + headers + "</td>"); out.println(" | " + request.getHeader(headers)
+ "</td></tr>"); } } out.println("</TABLE> }
</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(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() + " }
</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() + " }
</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) + " }
</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> |