HTTPResponseHeader.java
上传用户:huihesys
上传日期:2007-01-04
资源大小:3877k
文件大小:3k
源码类别:

WEB邮件程序

开发平台:

C/C++

  1. /* CVS ID: $Id: HTTPResponseHeader.java,v 1.2 2000/04/06 08:02:02 wastl Exp $ */
  2. package net.wastl.webmail.standalone;
  3. import java.io.*;
  4. import java.util.*;
  5. import java.text.*;
  6. import net.wastl.webmail.server.WebMailServer;
  7. import net.wastl.webmail.debug.ErrorHandler;
  8. /**
  9.  * HTTPHeader.java
  10.  *
  11.  * Created: Tue Feb  2 15:25:48 1999
  12.  *
  13.  * Copyright (C) 1999-2000 Sebastian Schaffert
  14.  * 
  15.  * This program is free software; you can redistribute it and/or
  16.  * modify it under the terms of the GNU General Public License
  17.  * as published by the Free Software Foundation; either version 2
  18.  * of the License, or (at your option) any later version.
  19.  * 
  20.  * This program is distributed in the hope that it will be useful,
  21.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  22.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  23.  * GNU General Public License for more details.
  24.  * 
  25.  * You should have received a copy of the GNU General Public License
  26.  * along with this program; if not, write to the Free Software
  27.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  28.  */
  29. /**
  30.  *
  31.  *
  32.  *
  33.  * @author Sebastian Schaffert
  34.  * @version $Revision: 1.2 $
  35.  */
  36. public class HTTPResponseHeader  {
  37.     private String status;
  38.     private int response_code;
  39.     private String http_version="HTTP/1.1";
  40.     private String response_line;
  41.     private Hashtable headers;
  42.     public HTTPResponseHeader(int response_code,String status) {
  43. headers=new Hashtable();
  44. this.response_code=response_code;
  45. this.status=status;
  46. response_line=http_version+" "+response_code+" "+status;
  47. putHeader("Server","JWebMail/"+WebMailServer.VERSION);
  48. SimpleTimeZone tz=new SimpleTimeZone(0,"GMT");
  49. SimpleDateFormat df=new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", new Locale("en","UK"));
  50. df.setTimeZone(tz);
  51. String now=df.format(new Date());
  52. String now_plus_5=df.format(new Date(System.currentTimeMillis()+300000));
  53. putHeader("Date",now);
  54. putHeader("Expires",now_plus_5);
  55. putHeader("Pragma","no-cache");
  56. putHeader("Cache-Control","must-revalidate");
  57. putHeader("Allow","GET, POST");
  58.     }
  59.     public String getResponseLine() {
  60. return response_line;
  61.     }
  62.     public void putHeader(String key,String value) {
  63. headers.remove(key);
  64. headers.put(key,value);
  65.     }
  66.     public String getHeader(String t) {
  67. return (String)headers.get(t);
  68.     }
  69.     public void removeHeader(String key) {
  70. headers.remove(key);
  71.     }
  72.     public Enumeration getHeaderKeys() {
  73. return headers.keys();
  74.     }
  75.     public String toString() {
  76. String s=response_line+"rn";
  77. Enumeration e=headers.keys();
  78. while(e.hasMoreElements()) {
  79.     String h=(String)e.nextElement();
  80.     s+=h+": "+headers.get(h)+"rn";
  81. }
  82. s+="rn";
  83. return s;
  84.     }
  85.     
  86. } // HTTPHeader