Глава 1 (продолжение 1)
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class RequestInfo extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<body>"); out.println("<head>"); out.println("<title>Request Information Example</title>"); out.println("</head>"); out.println("<body>"); out.println("<h3>Request Information Example</h3>"); out.println("Method: " + request.getMethod()); out.println("Request URI: " + request.getRequestURI()); out.println("Protocol: " + request.getProtocol()); out.println("PathInfo: " + request.getPathInfo()); out.println("Remote Address: " + request.getRemoteAddr()); out.println("</body>"); out.println("</html>"); } /** * We are going to perform the same operations for POST requests * as for GET methods, so this method just sends the request to * the doGet method. */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { doGet(request, response); } }
Запустить сервлет можно следующей командой:
http://localhost:8080/servlets-examples/servlet/RequestInfoExample
Естественно этот же сервлет можно запустить с индексной страницы нажав на соответствующую ссылку. Как правило именно так и надо делать. Ниже на рисунке показана страница, которая образуется в результате работы этого сервлета.
Вот html-код этой страницы (то, что фактически сервер после обработки сервлета послал браузеру):
<html>
<body>
<head>
<title>Request Information Example</title>
</head>
<body bgcolor="white">
<a href="../reqinfo.html">
<img src="../images/code.gif" height=24 width=24 align=right border=0 alt="view code"></a>
<a href="../index.html">
<img src="../images/return.gif" height=24 width=24 align=right border=0 alt="return"></a>
<h3>Request Information Example</h3>
<table border=0><tr><td>
Method:
</td><td>
GET
</td></tr><tr><td>
Request URI:
</td><td>
/servlets-examples/servlet/RequestInfoExample
</td></tr><tr><td>
Protocol:
</td><td>
HTTP/1.1
</td></tr><tr><td>
Path Info:
</td><td>
null
</td></tr><tr><td>
Remote Address:
</td><td>
127.0.0.1
</table>
Более точно код сервлета выглядит так:
import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import util.HTMLFilter;
/**
* Example servlet showing request information.
*
* @author James Duncan Davidson <duncan@eng.sun.com>
*/
public class RequestInfoExample extends HttpServlet {
ResourceBundle rb = ResourceBundle.getBundle("LocalStrings");
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body>");
out.println("<head>");
String title = rb.getString("requestinfo.title");
out.println("<title>" + title + "</title>");
out.println("</head>");
out.println("<body bgcolor=\"white\">");
// img stuff not req'd for source code html showing
// all links relative!
// XXX
// making these absolute till we work out the
// addition of a PathInfo issue
out.println("<a href=\"../reqinfo.html\">");
out.println("<img src=\"../images/code.gif\" height=24 " +
"width=24 align=right border=0 alt=\"view code\"></a>");
out.println("<a href=\"../index.html\">");
out.println("<img src=\"../images/return.gif\" height=24 " +
"width=24 align=right border=0 alt=\"return\"></a>");
out.println("<h3>" + title + "</h3>");
out.println("<table border=0><tr><td>");
out.println(rb.getString("requestinfo.label.method"));
out.println("</td><td>");
out.println(request.getMethod());
out.println("</td></tr><tr><td>");
out.println(rb.getString("requestinfo.label.requesturi"));
out.println("</td><td>");
out.println(HTMLFilter.filter(request.getRequestURI()));
out.println("</td></tr><tr><td>");
out.println(rb.getString("requestinfo.label.protocol"));
out.println("</td><td>");
out.println(request.getProtocol());
out.println("</td></tr><tr><td>");
out.println(rb.getString("requestinfo.label.pathinfo"));
out.println("</td><td>");
out.println(HTMLFilter.filter(request.getPathInfo()));
out.println("</td></tr><tr><td>");
out.println(rb.getString("requestinfo.label.remoteaddr"));
String cipherSuite=
(String)request.getAttribute("javax.servlet.request.cipher_suite");
out.println("</td><td>");
out.println(request.getRemoteAddr());
out.println("</table>");
if(cipherSuite!=null){
out.println("</td></tr><tr><td>");
out.println("SSLCipherSuite:");
out.println("</td>");
out.println("<td>");
out.println(request.getAttribute("javax.servlet.request.cipher_suite"));
out.println("</td>");
}
}
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
doGet(request, response);
}
}
Назад |
Начало урока |
Вверх |
Вперед
Содержание