01: package net.matuschek.http;
02:
03: /*********************************************
04: Copyright (c) 2001 by Daniel Matuschek
05: *********************************************/
06:
07: /**
08: * This object represents a HTTP header. A header simply consist
09: * of a name and a value separated by ":"
10: *
11: * @author Daniel Matuschek
12: * @version $Id: HttpHeader.java,v 1.4 2003/02/27 11:36:53 oliver_schmidt Exp $
13: */
14: public class HttpHeader {
15:
16: /** standard headers */
17: public final static String CACHE_CONTROL = "Cache-Control";
18: public final static String CONTENT_LENGTH = "Content-Length";
19: public final static String CONTENT_TYPE = "Content-Type";
20: public final static String DATE = "Date";
21: public final static String LAST_MODIFIED = "Last-Modified";
22: public final static String LOCATION = "location";
23: public final static String SERVER = "Server";
24: public final static String SET_COOKIE = "Set-Cookie";
25: public final static String TRANSFER_ENCODING = "Transfer-Encoding";
26:
27: /** application header used to store MD5 key of content */
28: public final static String CONTENT_MD5 = "Content-MD5";
29:
30: /** the name (e.g. Content-Length, Set-Cookie, ...) */
31: private String name = "";
32:
33: /** the value (everything behind the first colon */
34: private String value = "";
35:
36: /**
37: * initializes the HttpHeader from a given name/value pair
38: */
39: public HttpHeader(String name, String value) {
40: this .name = name;
41: this .value = value;
42: }
43:
44: /**
45: * initializes the HttpHeader from a line (request or response)
46: * @param line a HTTP header line in the format name: value
47: */
48: public HttpHeader(String httpLine) {
49: int pos = 0;
50: pos = httpLine.indexOf(":");
51: if (pos == -1) {
52: return;
53: }
54:
55: name = httpLine.substring(0, pos);
56: value = httpLine.substring(pos + 1).trim();
57: }
58:
59: public String getName() {
60: return name;
61: }
62:
63: public void setName(String name) {
64: this .name = name;
65: }
66:
67: public String getValue() {
68: return value;
69: }
70:
71: public void setValue(String value) {
72: this .value = value;
73: }
74:
75: public String toString() {
76: return toLine();
77: }
78:
79: /**
80: * Converts the object to a String
81: * @return a name: value String
82: */
83: public String toLine() {
84: return name + ": " + value;
85: }
86:
87: /**
88: * Is this a Set-Cookie header ?
89: * @return true if this header sets a cookie.
90: */
91: public boolean isSetCookie() {
92: return name.equalsIgnoreCase(SET_COOKIE);
93: }
94:
95: }
|