<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FServlets%2FRequest</id>
		<title>Java/Servlets/Request - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FServlets%2FRequest"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Servlets/Request&amp;action=history"/>
		<updated>2026-04-21T22:10:33Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Servlets/Request&amp;diff=6333&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Servlets/Request&amp;diff=6333&amp;oldid=prev"/>
				<updated>2010-06-01T06:11:45Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:11, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Servlets/Request&amp;diff=6332&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Servlets/Request&amp;diff=6332&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:43Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Browser detection ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
/*&lt;br /&gt;
 * Copyright 2005 Joe Walker&lt;br /&gt;
 *&lt;br /&gt;
 * Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);&lt;br /&gt;
 * you may not use this file except in compliance with the License.&lt;br /&gt;
 * You may obtain a copy of the License at&lt;br /&gt;
 *&lt;br /&gt;
 *     http://www.apache.org/licenses/LICENSE-2.0&lt;br /&gt;
 *&lt;br /&gt;
 * Unless required by applicable law or agreed to in writing, software&lt;br /&gt;
 * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,&lt;br /&gt;
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&lt;br /&gt;
 * See the License for the specific language governing permissions and&lt;br /&gt;
 * limitations under the License.&lt;br /&gt;
 */&lt;br /&gt;
import javax.servlet.http.HttpServletRequest;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Various functions to do with working out what is at the other end of the&lt;br /&gt;
 * wire, and what it can do.&lt;br /&gt;
 * &lt;br /&gt;
 * &amp;lt;h2&amp;gt;Version number documentation&amp;lt;/h2&amp;gt;&lt;br /&gt;
 * &lt;br /&gt;
 * &amp;lt;h3&amp;gt;Safari&amp;lt;/h3&amp;gt;&lt;br /&gt;
 * &amp;lt;p&amp;gt;Quick summary:&lt;br /&gt;
 * &amp;lt;ul&amp;gt;&lt;br /&gt;
 * &amp;lt;li&amp;gt;Jaguar  = 10.2.x  = Safari 1.0.x = WebKit/85&lt;br /&gt;
 * &amp;lt;li&amp;gt;Panther = 10.3.0+ = Safari 1.1.x = WebKit/100&lt;br /&gt;
 * &amp;lt;li&amp;gt;Panther = 10.3.4+ = Safari 1.2.x = WebKit/125&lt;br /&gt;
 * &amp;lt;li&amp;gt;Panther = 10.3.9+ = Safari 1.3.x = WebKit/312&lt;br /&gt;
 * &amp;lt;li&amp;gt;Tiger   = 10.4.x  = Safari 2.0.x = WebKit/412-419&lt;br /&gt;
 * &amp;lt;li&amp;gt;Tiger   = 10.4.11 = Safari 3.0.x = WebKit/523&lt;br /&gt;
 * &amp;lt;li&amp;gt;Leopard = 10.5.x  = Safari 3.0.x = WebKit/523&lt;br /&gt;
 * &amp;lt;li&amp;gt;Windows           = Safari 3.0.x = WebKit/523&lt;br /&gt;
 * &amp;lt;li&amp;gt;Leopard = 10.5.x  = Safari 3.1.x = WebKit/525-526&lt;br /&gt;
 * &amp;lt;/ul&amp;gt;&lt;br /&gt;
 * &lt;br /&gt;
 * &amp;lt;p&amp;gt;For full information see the Safari and WebKit Version Information:&lt;br /&gt;
 * .&amp;lt;/p&amp;gt;&lt;br /&gt;
 * @author Joe Walker [joe at getahead dot ltd dot uk]&lt;br /&gt;
 */&lt;br /&gt;
public class BrowserDetect&lt;br /&gt;
{&lt;br /&gt;
    /**&lt;br /&gt;
     * How many connections can this browser open simultaneously?&lt;br /&gt;
     * @param request The request so we can get at the user-agent header&lt;br /&gt;
     * @return The number of connections that we think this browser can take&lt;br /&gt;
     */&lt;br /&gt;
    public static int getConnectionLimit(HttpServletRequest request)&lt;br /&gt;
    {&lt;br /&gt;
        if (atLeast(request, UserAgent.IE, 8))&lt;br /&gt;
        {&lt;br /&gt;
            return 6;&lt;br /&gt;
        }&lt;br /&gt;
        else if (atLeast(request, UserAgent.AppleWebKit, 8))&lt;br /&gt;
        {&lt;br /&gt;
            return 4;&lt;br /&gt;
        }&lt;br /&gt;
        else if (atLeast(request, UserAgent.Opera, 9))&lt;br /&gt;
        {&lt;br /&gt;
            return 4;&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            return 2;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Does this web browser support comet?&lt;br /&gt;
     * @param request The request so we can get at the user-agent header&lt;br /&gt;
     * @return True if long lived HTTP connections are supported&lt;br /&gt;
     */&lt;br /&gt;
    public static boolean supportsComet(HttpServletRequest request)&lt;br /&gt;
    {&lt;br /&gt;
        String userAgent = request.getHeader(&amp;quot;user-agent&amp;quot;);&lt;br /&gt;
        // None of the non-iPhone mobile browsers that I&amp;quot;ve tested support comet&lt;br /&gt;
        if (userAgent.contains(&amp;quot;Symbian&amp;quot;))&lt;br /&gt;
        {&lt;br /&gt;
            return false;&lt;br /&gt;
        }&lt;br /&gt;
        // We need to test for other failing browsers here&lt;br /&gt;
        return true;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Check that the user-agent string indicates some minimum browser level&lt;br /&gt;
     * @param request The browsers request&lt;br /&gt;
     * @param requiredUserAgent The UA required&lt;br /&gt;
     * @return true iff the browser matches the spec.&lt;br /&gt;
     */&lt;br /&gt;
    public static boolean atLeast(HttpServletRequest request, UserAgent requiredUserAgent)&lt;br /&gt;
    {&lt;br /&gt;
        return atLeast(request, requiredUserAgent, -1);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Check that the user-agent string indicates some minimum browser level&lt;br /&gt;
     * @param request The browsers request&lt;br /&gt;
     * @param requiredUserAgent The UA required. Currently this is major version only&lt;br /&gt;
     * @param requiredVersion The version required, or -1 if versions are not important&lt;br /&gt;
     * @return true iff the browser matches the spec.&lt;br /&gt;
     */&lt;br /&gt;
    public static boolean atLeast(HttpServletRequest request, UserAgent requiredUserAgent, int requiredVersion)&lt;br /&gt;
    {&lt;br /&gt;
        String userAgent = request.getHeader(&amp;quot;user-agent&amp;quot;);&lt;br /&gt;
        int realVersion;&lt;br /&gt;
        switch (requiredUserAgent)&lt;br /&gt;
        {&lt;br /&gt;
        case IE:&lt;br /&gt;
            realVersion = getMajorVersionAssumingIE(userAgent);&lt;br /&gt;
            break;&lt;br /&gt;
        case Gecko:&lt;br /&gt;
            realVersion = getMajorVersionAssumingGecko(userAgent);&lt;br /&gt;
            break;&lt;br /&gt;
        case Opera:&lt;br /&gt;
            realVersion = getMajorVersionAssumingOpera(userAgent);&lt;br /&gt;
            break;&lt;br /&gt;
        case AppleWebKit:&lt;br /&gt;
            realVersion = getMajorVersionAssumingAppleWebKit(userAgent);&lt;br /&gt;
            break;&lt;br /&gt;
        default:&lt;br /&gt;
            throw new UnsupportedOperationException(&amp;quot;Detection of &amp;quot; + requiredUserAgent + &amp;quot; is not supported yet.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        return realVersion &amp;gt;= requiredVersion;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Check {@link #atLeast(HttpServletRequest, UserAgent)} for&lt;br /&gt;
     * {@link UserAgent#AppleWebKit}&lt;br /&gt;
     */&lt;br /&gt;
    private static int getMajorVersionAssumingAppleWebKit(String userAgent)&lt;br /&gt;
    {&lt;br /&gt;
        int webKitPos = userAgent.indexOf(&amp;quot;AppleWebKit&amp;quot;);&lt;br /&gt;
        if (webKitPos == -1)&lt;br /&gt;
        {&lt;br /&gt;
            return -1;&lt;br /&gt;
        }&lt;br /&gt;
        return parseNumberAtStart(userAgent.substring(webKitPos + 12));&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Check {@link #atLeast(HttpServletRequest, UserAgent)} for&lt;br /&gt;
     * {@link UserAgent#Opera}&lt;br /&gt;
     */&lt;br /&gt;
    private static int getMajorVersionAssumingOpera(String userAgent)&lt;br /&gt;
    {&lt;br /&gt;
        int operaPos = userAgent.indexOf(&amp;quot;Opera&amp;quot;);&lt;br /&gt;
        if (operaPos == -1)&lt;br /&gt;
        {&lt;br /&gt;
            return -1;&lt;br /&gt;
        }&lt;br /&gt;
        return parseNumberAtStart(userAgent.substring(operaPos + 6));&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Check {@link #atLeast(HttpServletRequest, UserAgent)} for&lt;br /&gt;
     * {@link UserAgent#Gecko}&lt;br /&gt;
     */&lt;br /&gt;
    private static int getMajorVersionAssumingGecko(String userAgent)&lt;br /&gt;
    {&lt;br /&gt;
        int geckoPos = userAgent.indexOf(&amp;quot; Gecko/20&amp;quot;);&lt;br /&gt;
        if (geckoPos == -1 || userAgent.contains(&amp;quot;WebKit/&amp;quot;))&lt;br /&gt;
        {&lt;br /&gt;
            return -1;&lt;br /&gt;
        }&lt;br /&gt;
        return parseNumberAtStart(userAgent.substring(geckoPos + 7));&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Check {@link #atLeast(HttpServletRequest, UserAgent)} for&lt;br /&gt;
     * {@link UserAgent#IE}&lt;br /&gt;
     */&lt;br /&gt;
    private static int getMajorVersionAssumingIE(String userAgent)&lt;br /&gt;
    {&lt;br /&gt;
        int msiePos = userAgent.indexOf(&amp;quot;MSIE &amp;quot;);&lt;br /&gt;
        if (msiePos == -1 || userAgent.contains(&amp;quot;Opera&amp;quot;))&lt;br /&gt;
        {&lt;br /&gt;
            return -1;&lt;br /&gt;
        }&lt;br /&gt;
        return parseNumberAtStart(userAgent.substring(msiePos + 5));&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * We&amp;quot;ve found the start of a sequence of numbers, what is it as an int?&lt;br /&gt;
     */&lt;br /&gt;
    private static int parseNumberAtStart(String numberString)&lt;br /&gt;
    {&lt;br /&gt;
        if (numberString == null || numberString.length() == 0)&lt;br /&gt;
        {&lt;br /&gt;
            return -1;&lt;br /&gt;
        }&lt;br /&gt;
        int endOfNumbers = 0;&lt;br /&gt;
        while (Character.isDigit(numberString.charAt(endOfNumbers)))&lt;br /&gt;
        {&lt;br /&gt;
            endOfNumbers++;&lt;br /&gt;
        }&lt;br /&gt;
        try&lt;br /&gt;
        {&lt;br /&gt;
            return Integer.parseInt(numberString.substring(0, endOfNumbers));&lt;br /&gt;
        }&lt;br /&gt;
        catch (NumberFormatException ex)&lt;br /&gt;
        {&lt;br /&gt;
            return -1;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * This method is for debugging only&lt;br /&gt;
     */&lt;br /&gt;
    public static String getUserAgentDebugString(HttpServletRequest request)&lt;br /&gt;
    {&lt;br /&gt;
        String userAgent = request.getHeader(&amp;quot;user-agent&amp;quot;);&lt;br /&gt;
        int version = getMajorVersionAssumingIE(userAgent);&lt;br /&gt;
        if (version != -1)&lt;br /&gt;
        {&lt;br /&gt;
            return &amp;quot;IE/&amp;quot; + version;&lt;br /&gt;
        }&lt;br /&gt;
        version = getMajorVersionAssumingGecko(userAgent);&lt;br /&gt;
        if (version != -1)&lt;br /&gt;
        {&lt;br /&gt;
            return &amp;quot;Gecko/&amp;quot; + version;&lt;br /&gt;
        }&lt;br /&gt;
        version = getMajorVersionAssumingAppleWebKit(userAgent);&lt;br /&gt;
        if (version != -1)&lt;br /&gt;
        {&lt;br /&gt;
            return &amp;quot;WebKit/&amp;quot; + version;&lt;br /&gt;
        }&lt;br /&gt;
        version = getMajorVersionAssumingOpera(userAgent);&lt;br /&gt;
        if (version != -1)&lt;br /&gt;
        {&lt;br /&gt;
            return &amp;quot;Opera/&amp;quot; + version;&lt;br /&gt;
        }&lt;br /&gt;
        return &amp;quot;Unknown: (&amp;quot; + userAgent + &amp;quot;)&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright 2005 Joe Walker&lt;br /&gt;
 *&lt;br /&gt;
 * Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);&lt;br /&gt;
 * you may not use this file except in compliance with the License.&lt;br /&gt;
 * You may obtain a copy of the License at&lt;br /&gt;
 *&lt;br /&gt;
 *     http://www.apache.org/licenses/LICENSE-2.0&lt;br /&gt;
 *&lt;br /&gt;
 * Unless required by applicable law or agreed to in writing, software&lt;br /&gt;
 * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,&lt;br /&gt;
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&lt;br /&gt;
 * See the License for the specific language governing permissions and&lt;br /&gt;
 * limitations under the License.&lt;br /&gt;
 */&lt;br /&gt;
/**&lt;br /&gt;
 * @author Joe Walker [joe at getahead dot ltd dot uk]&lt;br /&gt;
 */&lt;br /&gt;
enum UserAgent&lt;br /&gt;
{&lt;br /&gt;
    IE,&lt;br /&gt;
    Opera,&lt;br /&gt;
    Gecko,&lt;br /&gt;
    AppleWebKit,&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example servlet showing request headers ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/*&lt;br /&gt;
* Copyright 2004 The Apache Software Foundation&lt;br /&gt;
*&lt;br /&gt;
* Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);&lt;br /&gt;
* you may not use this file except in compliance with the License.&lt;br /&gt;
* You may obtain a copy of the License at&lt;br /&gt;
*&lt;br /&gt;
*     http://www.apache.org/licenses/LICENSE-2.0&lt;br /&gt;
*&lt;br /&gt;
* Unless required by applicable law or agreed to in writing, software&lt;br /&gt;
* distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,&lt;br /&gt;
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&lt;br /&gt;
* See the License for the specific language governing permissions and&lt;br /&gt;
* limitations under the License.&lt;br /&gt;
*/&lt;br /&gt;
/* $Id: CookieExample.java,v 1.3 2004/03/18 16:40:33 jfarcand Exp $&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
import java.io.*;&lt;br /&gt;
import java.text.*;&lt;br /&gt;
import java.util.*;&lt;br /&gt;
import javax.servlet.*;&lt;br /&gt;
import javax.servlet.http.*;&lt;br /&gt;
/**&lt;br /&gt;
 * Example servlet showing request headers&lt;br /&gt;
 *&lt;br /&gt;
 * @author James Duncan Davidson &amp;lt;duncan@eng.sun.ru&amp;gt;&lt;br /&gt;
 */&lt;br /&gt;
public class CookieExample extends HttpServlet {&lt;br /&gt;
    ResourceBundle rb = ResourceBundle.getBundle(&amp;quot;LocalStrings&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    public void doGet(HttpServletRequest request,&lt;br /&gt;
                      HttpServletResponse response)&lt;br /&gt;
        throws IOException, ServletException&lt;br /&gt;
    {&lt;br /&gt;
        response.setContentType(&amp;quot;text/html&amp;quot;);&lt;br /&gt;
        PrintWriter out = response.getWriter();&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;html&amp;gt;&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;body bgcolor=\&amp;quot;white\&amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;head&amp;gt;&amp;quot;);&lt;br /&gt;
        String title = rb.getString(&amp;quot;cookies.title&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;title&amp;gt;&amp;quot; + title + &amp;quot;&amp;lt;/title&amp;gt;&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;/head&amp;gt;&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;body&amp;gt;&amp;quot;);&lt;br /&gt;
  // relative links&lt;br /&gt;
        // XXX&lt;br /&gt;
        // making these absolute till we work out the&lt;br /&gt;
        // addition of a PathInfo issue &lt;br /&gt;
  &lt;br /&gt;
        out.println(&amp;quot;&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;h3&amp;gt;&amp;quot; + title + &amp;quot;&amp;lt;/h3&amp;gt;&amp;quot;);&lt;br /&gt;
        Cookie[] cookies = request.getCookies();&lt;br /&gt;
        if ((cookies != null) &amp;amp;&amp;amp; (cookies.length &amp;gt; 0)) {&lt;br /&gt;
            out.println(rb.getString(&amp;quot;cookies.cookies&amp;quot;) + &amp;quot;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
            for (int i = 0; i &amp;lt; cookies.length; i++) {&lt;br /&gt;
                Cookie cookie = cookies[i];&lt;br /&gt;
                out.print(&amp;quot;Cookie Name: &amp;quot; + HTMLFilter.filter(cookie.getName())&lt;br /&gt;
                          + &amp;quot;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
                out.println(&amp;quot;  Cookie Value: &amp;quot; &lt;br /&gt;
                            + HTMLFilter.filter(cookie.getValue())&lt;br /&gt;
                            + &amp;quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
        } else {&lt;br /&gt;
            out.println(rb.getString(&amp;quot;cookies.no-cookies&amp;quot;));&lt;br /&gt;
        }&lt;br /&gt;
        String cookieName = request.getParameter(&amp;quot;cookiename&amp;quot;);&lt;br /&gt;
        String cookieValue = request.getParameter(&amp;quot;cookievalue&amp;quot;);&lt;br /&gt;
        if (cookieName != null &amp;amp;&amp;amp; cookieValue != null) {&lt;br /&gt;
            Cookie cookie = new Cookie(cookieName, cookieValue);&lt;br /&gt;
            response.addCookie(cookie);&lt;br /&gt;
            out.println(&amp;quot;&amp;lt;P&amp;gt;&amp;quot;);&lt;br /&gt;
            out.println(rb.getString(&amp;quot;cookies.set&amp;quot;) + &amp;quot;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
            out.print(rb.getString(&amp;quot;cookies.name&amp;quot;) + &amp;quot;  &amp;quot; &lt;br /&gt;
                      + HTMLFilter.filter(cookieName) + &amp;quot;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
            out.print(rb.getString(&amp;quot;cookies.value&amp;quot;) + &amp;quot;  &amp;quot; &lt;br /&gt;
                      + HTMLFilter.filter(cookieValue));&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        out.println(&amp;quot;&amp;lt;P&amp;gt;&amp;quot;);&lt;br /&gt;
        out.println(rb.getString(&amp;quot;cookies.make-cookie&amp;quot;) + &amp;quot;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
        out.print(&amp;quot;&amp;lt;form action=\&amp;quot;&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;CookieExample\&amp;quot; method=POST&amp;gt;&amp;quot;);&lt;br /&gt;
        out.print(rb.getString(&amp;quot;cookies.name&amp;quot;) + &amp;quot;  &amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;input type=text length=20 name=cookiename&amp;gt;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
        out.print(rb.getString(&amp;quot;cookies.value&amp;quot;) + &amp;quot;  &amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;input type=text length=20 name=cookievalue&amp;gt;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;input type=submit&amp;gt;&amp;lt;/form&amp;gt;&amp;quot;);&lt;br /&gt;
            &lt;br /&gt;
            &lt;br /&gt;
        out.println(&amp;quot;&amp;lt;/body&amp;gt;&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;/html&amp;gt;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    public void doPost(HttpServletRequest request,&lt;br /&gt;
                      HttpServletResponse response)&lt;br /&gt;
        throws IOException, ServletException&lt;br /&gt;
    {&lt;br /&gt;
        doGet(request, response);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Get Cookie from Request ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.PrintWriter;&lt;br /&gt;
import javax.servlet.ServletException;&lt;br /&gt;
import javax.servlet.http.Cookie;&lt;br /&gt;
import javax.servlet.http.HttpServlet;&lt;br /&gt;
import javax.servlet.http.HttpServletRequest;&lt;br /&gt;
import javax.servlet.http.HttpServletResponse;&lt;br /&gt;
public class Cookies extends HttpServlet {&lt;br /&gt;
  public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,&lt;br /&gt;
      IOException {&lt;br /&gt;
    resp.setContentType(&amp;quot;text/html&amp;quot;);&lt;br /&gt;
    req.getSession();&lt;br /&gt;
    PrintWriter out = resp.getWriter();&lt;br /&gt;
    Cookie cookies[] = req.getCookies();&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;html&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;head&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;title&amp;gt;Servlet Cookie Information&amp;lt;/title&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/head&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;body&amp;gt;&amp;quot;);&lt;br /&gt;
    if ((cookies == null) || (cookies.length == 0)) {&lt;br /&gt;
      out.println(&amp;quot;&amp;lt;center&amp;gt;&amp;lt;h1&amp;gt;No Cookies found&amp;lt;/h1&amp;gt;&amp;quot;);&lt;br /&gt;
    } else {&lt;br /&gt;
      out.println(&amp;quot;&amp;lt;center&amp;gt;&amp;lt;h1&amp;gt;Cookies found&amp;lt;/h1&amp;gt;&amp;quot;);&lt;br /&gt;
      out.println(&amp;quot;&amp;lt;table border&amp;gt;&amp;quot;);&lt;br /&gt;
      out.println(&amp;quot;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Name&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Value&amp;lt;/th&amp;gt;&amp;quot; + &amp;quot;&amp;lt;th&amp;gt;Comment&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Max Age&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;);&lt;br /&gt;
      for (int i = 0; i &amp;lt; cookies.length; i++) {&lt;br /&gt;
        Cookie c = cookies[i];&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;quot; + c.getName() + &amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;quot; + c.getValue() + &amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;quot;&lt;br /&gt;
            + c.getComment() + &amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;quot; + c.getMaxAge() + &amp;quot;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      out.println(&amp;quot;&amp;lt;/table&amp;gt;&amp;lt;/center&amp;gt;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/body&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/html&amp;gt;&amp;quot;);&lt;br /&gt;
    out.flush();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Get Locale Information from Request ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.PrintWriter;&lt;br /&gt;
import java.util.Enumeration;&lt;br /&gt;
import java.util.Locale;&lt;br /&gt;
import javax.servlet.ServletException;&lt;br /&gt;
import javax.servlet.http.HttpServlet;&lt;br /&gt;
import javax.servlet.http.HttpServletRequest;&lt;br /&gt;
import javax.servlet.http.HttpServletResponse;&lt;br /&gt;
public class LocaleInformationServlet extends HttpServlet {&lt;br /&gt;
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException,&lt;br /&gt;
      ServletException {&lt;br /&gt;
    response.setContentType(&amp;quot;text/html&amp;quot;);&lt;br /&gt;
    PrintWriter out = response.getWriter();&lt;br /&gt;
    Locale userPreferredLocale = request.getLocale();&lt;br /&gt;
    Enumeration userPreferredLocales = request.getLocales();&lt;br /&gt;
    out.println(&amp;quot;Preferred Locale: &amp;quot; + userPreferredLocale.toString());&lt;br /&gt;
    out.println(&amp;quot;&amp;quot;);&lt;br /&gt;
    out.print(&amp;quot;Preferred Locales: &amp;quot;);&lt;br /&gt;
    while (userPreferredLocales.hasMoreElements()) {&lt;br /&gt;
      userPreferredLocale = (Locale) userPreferredLocales.nextElement();&lt;br /&gt;
      out.print(userPreferredLocale.toString() + &amp;quot;, &amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    out.println();&lt;br /&gt;
    out.println(&amp;quot;&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Get session from request ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.PrintWriter;&lt;br /&gt;
import javax.servlet.ServletException;&lt;br /&gt;
import javax.servlet.http.HttpServlet;&lt;br /&gt;
import javax.servlet.http.HttpServletRequest;&lt;br /&gt;
import javax.servlet.http.HttpServletResponse;&lt;br /&gt;
import javax.servlet.http.HttpSession;&lt;br /&gt;
public class Counter extends HttpServlet {&lt;br /&gt;
  static final String COUNTER_KEY = &amp;quot;Counter.count&amp;quot;;&lt;br /&gt;
  public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,&lt;br /&gt;
      IOException {&lt;br /&gt;
    HttpSession session = req.getSession(true);&lt;br /&gt;
    resp.setContentType(&amp;quot;text/html&amp;quot;);&lt;br /&gt;
    PrintWriter out = resp.getWriter();&lt;br /&gt;
    int count = 1;&lt;br /&gt;
    Integer i = (Integer) session.getAttribute(COUNTER_KEY);&lt;br /&gt;
    if (i != null) {&lt;br /&gt;
      count = i.intValue() + 1;&lt;br /&gt;
    }&lt;br /&gt;
    session.setAttribute(COUNTER_KEY, new Integer(count));&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;html&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;head&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;title&amp;gt;Session Counter&amp;lt;/title&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/head&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;body&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;Your session ID is &amp;lt;b&amp;gt;&amp;quot; + session.getId());&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/b&amp;gt; and you have hit this page &amp;lt;b&amp;gt;&amp;quot; + count&lt;br /&gt;
        + &amp;quot;&amp;lt;/b&amp;gt; time(s) during this browser session&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;form method=GET action=\&amp;quot;&amp;quot; + req.getRequestURI() + &amp;quot;\&amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;input type=submit &amp;quot; + &amp;quot;value=\&amp;quot;Hit page again\&amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/form&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/body&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/html&amp;gt;&amp;quot;);&lt;br /&gt;
    out.flush();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== javax.servlet.request.X509Certificate ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.PrintWriter;&lt;br /&gt;
import java.security.cert.X509Certificate;&lt;br /&gt;
import javax.servlet.ServletException;&lt;br /&gt;
import javax.servlet.http.HttpServlet;&lt;br /&gt;
import javax.servlet.http.HttpServletRequest;&lt;br /&gt;
import javax.servlet.http.HttpServletResponse;&lt;br /&gt;
public class X509Snoop extends HttpServlet {&lt;br /&gt;
  public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,&lt;br /&gt;
      IOException {&lt;br /&gt;
    res.setContentType(&amp;quot;text/plain&amp;quot;);&lt;br /&gt;
    PrintWriter out = res.getWriter();&lt;br /&gt;
    X509Certificate[] certs = (X509Certificate[]) req&lt;br /&gt;
        .getAttribute(&amp;quot;javax.servlet.request.X509Certificate&amp;quot;);&lt;br /&gt;
    if (certs != null) {&lt;br /&gt;
      for (int i = 0; i &amp;lt; certs.length; i++) {&lt;br /&gt;
        out.println(&amp;quot;Client Certificate [&amp;quot; + i + &amp;quot;] = &amp;quot; + certs[i].toString());&lt;br /&gt;
      }&lt;br /&gt;
    } else {&lt;br /&gt;
      if (&amp;quot;https&amp;quot;.equals(req.getScheme())) {&lt;br /&gt;
        out.println(&amp;quot;This was an HTTPS request, &amp;quot; + &amp;quot;but no client certificate is available&amp;quot;);&lt;br /&gt;
      } else {&lt;br /&gt;
        out.println(&amp;quot;This was not an HTTPS request, &amp;quot; + &amp;quot;so no client certificate is available&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Request handling utility class ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/*&lt;br /&gt;
 * $Id: RequestUtils.java 651946 2008-04-27 13:41:38Z apetrelli $&lt;br /&gt;
 *&lt;br /&gt;
 * Licensed to the Apache Software Foundation (ASF) under one&lt;br /&gt;
 * or more contributor license agreements.  See the NOTICE file&lt;br /&gt;
 * distributed with this work for additional information&lt;br /&gt;
 * regarding copyright ownership.  The ASF licenses this file&lt;br /&gt;
 * to you under the Apache License, Version 2.0 (the&lt;br /&gt;
 * &amp;quot;License&amp;quot;); you may not use this file except in compliance&lt;br /&gt;
 * with the License.  You may obtain a copy of the License at&lt;br /&gt;
 *&lt;br /&gt;
 *  http://www.apache.org/licenses/LICENSE-2.0&lt;br /&gt;
 *&lt;br /&gt;
 * Unless required by applicable law or agreed to in writing,&lt;br /&gt;
 * software distributed under the License is distributed on an&lt;br /&gt;
 * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY&lt;br /&gt;
 * KIND, either express or implied.  See the License for the&lt;br /&gt;
 * specific language governing permissions and limitations&lt;br /&gt;
 * under the License.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import javax.servlet.http.HttpServletRequest;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Request handling utility class.&lt;br /&gt;
 */&lt;br /&gt;
public class RequestUtils {&lt;br /&gt;
    /**&lt;br /&gt;
     * Retrieves the current request servlet path.&lt;br /&gt;
     * Deals with differences between servlet specs (2.2 vs 2.3+)&lt;br /&gt;
     *&lt;br /&gt;
     * @param request the request&lt;br /&gt;
     * @return the servlet path&lt;br /&gt;
     */&lt;br /&gt;
    public static String getServletPath(HttpServletRequest request) {&lt;br /&gt;
        String servletPath = request.getServletPath();&lt;br /&gt;
        &lt;br /&gt;
        String requestUri = request.getRequestURI();&lt;br /&gt;
        // Detecting other characters that the servlet container cut off (like anything after &amp;quot;;&amp;quot;)&lt;br /&gt;
        if (requestUri != null &amp;amp;&amp;amp; servletPath != null &amp;amp;&amp;amp; !requestUri.endsWith(servletPath)) {&lt;br /&gt;
            int pos = requestUri.indexOf(servletPath);&lt;br /&gt;
            if (pos &amp;gt; -1) {&lt;br /&gt;
                servletPath = requestUri.substring(requestUri.indexOf(servletPath));&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if (null != servletPath &amp;amp;&amp;amp; !&amp;quot;&amp;quot;.equals(servletPath)) {&lt;br /&gt;
            return servletPath;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        int startIndex = request.getContextPath().equals(&amp;quot;&amp;quot;) ? 0 : request.getContextPath().length();&lt;br /&gt;
        int endIndex = request.getPathInfo() == null ? requestUri.length() : requestUri.lastIndexOf(request.getPathInfo());&lt;br /&gt;
        if (startIndex &amp;gt; endIndex) { // this should not happen&lt;br /&gt;
            endIndex = startIndex;&lt;br /&gt;
        }&lt;br /&gt;
        return requestUri.substring(startIndex, endIndex);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Returns any parameters and lists server properties. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.PrintWriter;&lt;br /&gt;
import javax.servlet.ServletConfig;&lt;br /&gt;
import javax.servlet.ServletException;&lt;br /&gt;
import javax.servlet.http.HttpServlet;&lt;br /&gt;
import javax.servlet.http.HttpServletRequest;&lt;br /&gt;
import javax.servlet.http.HttpServletResponse;&lt;br /&gt;
public class Properties extends HttpServlet {&lt;br /&gt;
  public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,&lt;br /&gt;
      IOException {&lt;br /&gt;
    PrintWriter out = resp.getWriter();&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;html&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;center&amp;gt;&amp;lt;table&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;tr&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;td&amp;gt;Method&amp;lt;/td&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;td&amp;gt;&amp;quot; + req.getMethod() + &amp;quot;&amp;lt;/td&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/tr&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;tr&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;td&amp;gt;User&amp;lt;/td&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;td&amp;gt;&amp;quot; + req.getRemoteUser() + &amp;quot;&amp;lt;/td&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/tr&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;tr&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;td&amp;gt;Client&amp;lt;/td&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;td&amp;gt;&amp;quot; + req.getRemoteHost() + &amp;quot;&amp;lt;/td&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/tr&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;tr&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;td&amp;gt;Protocol&amp;lt;/td&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;td&amp;gt;&amp;quot; + req.getProtocol() + &amp;quot;&amp;lt;/td&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/tr&amp;gt;&amp;quot;);&lt;br /&gt;
    java.util.Enumeration e = req.getParameterNames();&lt;br /&gt;
    while (e.hasMoreElements()) {&lt;br /&gt;
      String name = (String) e.nextElement();&lt;br /&gt;
      out.println(&amp;quot;&amp;lt;tr&amp;gt;&amp;quot;);&lt;br /&gt;
      out.println(&amp;quot;&amp;lt;td&amp;gt;Parameter &amp;quot;&amp;quot; + name + &amp;quot;&amp;quot;&amp;lt;/td&amp;gt;&amp;quot;);&lt;br /&gt;
      out.println(&amp;quot;&amp;lt;td&amp;gt;&amp;quot; + req.getParameter(name) + &amp;quot;&amp;lt;/td&amp;gt;&amp;quot;);&lt;br /&gt;
      out.println(&amp;quot;&amp;lt;/tr&amp;gt;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/table&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&amp;lt;hr&amp;gt;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;h2&amp;gt;&amp;lt;center&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;Server Properties&amp;lt;/center&amp;gt;&amp;lt;/h2&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;center&amp;gt;&amp;lt;table&amp;gt;&amp;quot;);&lt;br /&gt;
    java.util.Properties props = System.getProperties();&lt;br /&gt;
    e = props.propertyNames();&lt;br /&gt;
    while (e.hasMoreElements()) {&lt;br /&gt;
      String name = (String) e.nextElement();&lt;br /&gt;
      out.println(&amp;quot;&amp;lt;tr&amp;gt;&amp;quot;);&lt;br /&gt;
      out.println(&amp;quot;&amp;lt;td&amp;gt;&amp;quot; + name + &amp;quot;&amp;lt;/td&amp;gt;&amp;quot;);&lt;br /&gt;
      out.println(&amp;quot;&amp;lt;td&amp;gt;&amp;quot; + props.getProperty(name) + &amp;quot;&amp;lt;/td&amp;gt;&amp;quot;);&lt;br /&gt;
      out.println(&amp;quot;&amp;lt;/tr&amp;gt;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/table&amp;gt;&amp;lt;/center&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/html&amp;gt;&amp;quot;);&lt;br /&gt;
    out.flush();&lt;br /&gt;
  }&lt;br /&gt;
  public void init() throws ServletException {&lt;br /&gt;
    ServletConfig config = getServletConfig();&lt;br /&gt;
  }&lt;br /&gt;
  public void destroy() {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using Request Object Servlet ==&lt;/div&gt;</summary>
			</entry>

	</feed>