Generating Other Content
Home ] Up ] HTTP ] A Simple Java Web Server ] CGI ] Java Servlets ] Apache Tomcat ] Tomcat Directory Structure ] Creating a Web Application ] Web Application Directory Structure ] What's a Servlet? ] [ Generating Other Content ] The Servlet Life Cycle ] Servlets & Form Data ] Request Headers ] CGI Variables ] Redirection ]

 

 

Servlets don't have to just create HTML pages.  Here's one that creates an Excel spreadsheet:

/*
 * ExcelServlet.java
 *
 * Created on November 24, 2006, 5:07 PM
 */

package excelExample;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet that produces an Excel spreadsheet.
 *
 * @author Bryan Higgs
 * @version
 */
public class ExcelServlet extends HttpServlet
{
  /** 
   * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
   * @param request servlet request
   * @param response servlet response
   */
  protected void processRequest(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException
  {
    response.setContentType("application/vnd.ms-excel; charset=UTF-8");
    PrintWriter out = response.getWriter();
    out.println("\tQ1\tQ2\tQ3\tQ4");
    out.println("Coffee\t97\t56\t73\t104");
    out.println("Tea\t89\t72\t59\t99");
    out.println("Soda\t230\t256\t320\t375");
    out.close();
  }
  
  /** 
   * Handles the HTTP <code>GET</code> method.
   * @param request servlet request
   * @param response servlet response
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException
  {
    processRequest(request, response);
  }
  
  /** 
   * Handles the HTTP <code>POST</code> method.
   * @param request servlet request
   * @param response servlet response
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException
  {
    processRequest(request, response);
  }
  
  /** Returns a short description of the servlet.
   */
  public String getServletInfo()
  {
    return "Short description";
  }
}

Here's what it produces:

The above is how it is shown in Internet Explorer;  Firefox fires up Excel as a separate application.

 
The page was last updated February 19, 2008