www.pudn.com > j2mewireless_examples.zip > NetServer.java


/*
 * Copyright (c) 2000-2001 Sun Microsystems, Inc. All Rights Reserved.
 */

package servlets;

import java.lang.*;
import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

/**
 * Simple servlet that processes a POST request by
 * reversing a string passed in as data.
 */
public class NetServer extends HttpServlet {
	
	private String processData(char[] inData) {
		String s = new String(inData);
		StringBuffer sb = (new StringBuffer(s)).reverse();
		return  sb.toString();
	}

	// used to test this servlet.
	public void doGet(HttpServletRequest request,
					  HttpServletResponse response) throws IOException, ServletException {
		PrintWriter out = response.getWriter();
		response.setContentType("text/plain");
 		Enumeration e = request.getHeaderNames();
        while (e.hasMoreElements()) {
            String key = (String)e.nextElement();
            String value = request.getHeader(key);
            out.write(key + ": " + value + "\n");
        }
		out.flush();
	}

    /**
     * Respond to a POST request for the content produced by
     * this servlet.
     *
     * @param request The servlet request we are processing
     * @param response The servlet response we are producing
     *
     * @exception IOException if an input/output error occurs
     * @exception ServletException if a servlet error occurs
     */
    public void doPost(HttpServletRequest request,
					   HttpServletResponse response) throws IOException, ServletException {

		Date date = new Date();
		BufferedReader reader = request.getReader();
		char inData[] = new char[request.getIntHeader("Content-Length")];
		reader.read(inData, 0, inData.length);

		StringBuffer sb = new StringBuffer();
		sb.append("NetServer Servlet\n");
		sb.append(date.toString() + "\n");
		sb.append(new String(inData) + "\n");
		sb.append(processData(inData) + "\n");
 		Enumeration e = request.getHeaderNames();
        while (e.hasMoreElements()) {
            String key = (String)e.nextElement();
            String value = request.getHeader(key);
            sb.append(key + ": " + value + "\n");
        }


		response.setContentType("text/plain");
		response.setContentLength(sb.length());

		PrintWriter out = response.getWriter();
		out.write(sb.toString());
		out.flush();
	}
}