Назад | Начало урока | Вперед
Содержание

Глава 1 (продолжение 1)


Source Code for Request Info Example

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);
    }
}

Так выглядит страница reqinfo.html в браузере. Эта страница демонстрирует код сервлета.

Запустить сервлет можно следующей командой:

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);
}
}



Назад | Начало урока | Вверх | Вперед
Содержание

Hosted by uCoz