Package anvil.server

Source Code of anvil.server.DefaultContentHandler

/*
* $Id: DefaultContentHandler.java,v 1.6 2002/09/16 08:05:06 jkl Exp $
*
* Copyright (c) 2002 Njet Communications Ltd. All Rights Reserved.
*
* Use is subject to license terms, as defined in
* Anvil Sofware License, Version 1.1. See LICENSE
* file, or http://njet.org/license-1.1.txt
*/
package anvil.server;

import java.io.Writer;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.ByteArrayOutputStream;
import java.io.ByteArrayInputStream;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletRequest;

import anvil.Product;
import anvil.parser.InputSource;
import anvil.parser.StreamInputSource;
import anvil.util.PrettyPrinter;
import anvil.util.HttpDate;

import anvil.server.listener.Response;

/**
* class DefaultContentHandler
*
* @author: Jani Lehtim�ki
*/
public class DefaultContentHandler implements ContentHandler
{

  public static final ContentHandler INSTANCE = new DefaultContentHandler();
 
  private static final int SIZE = 512;


  public DefaultContentHandler()
  {
  }

  public boolean isSessionRequired()
  {
    return false;
  }

  public void service(Context context, Resource resource) throws Exception
  {
    HttpServletRequest request = context.getRequest();
    HttpServletResponse response = context.getResponse();

    context.log().debug(request.getMethod()+' '+context.getAddress().getPathinfo());

    long last_modified = resource.getLastModified();
    if (last_modified > 0) {
      String if_modified_since = request.getHeader("if-modified-since");
      if (if_modified_since != null) {
        HttpDate ifmod = new HttpDate();
        if (ifmod.parse(if_modified_since)) {
          HttpDate mod = new HttpDate(last_modified);
          if (mod.after(ifmod)) {
            response.setStatus(304);
            response.setContentLength(0);
            return;
          }
        }
      }
    }
     
    int contentLength = (int)resource.getLength();
    OutputStream output = context.getOutputStream();
    response.setContentType(resource.getContentType());
    response.setContentLength(contentLength);
    response.setDateHeader("Last-Modified", last_modified);
    resource.writeTo(output);
    output.flush();
    resource.close();
  }


}
TOP

Related Classes of anvil.server.DefaultContentHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.