1 16 package com.google.gwt.dev.util; 17 18 import java.text.DateFormat ; 19 import java.text.ParseException ; 20 import java.text.SimpleDateFormat ; 21 import java.util.Calendar ; 22 import java.util.Date ; 23 import java.util.Locale ; 24 25 28 public final class HttpHeaders { 29 30 public static final long MS_SEC = 1000; 31 public static final long MS_MIN = MS_SEC * 60; 32 public static final long MS_HR = MS_MIN * 60; 33 public static final long MS_DAY = MS_HR * 24; 34 35 public static final long SEC_MIN = 60; 36 public static final long SEC_HR = SEC_MIN * 60; 37 public static final long SEC_DAY = SEC_HR * 24; 38 public static final long SEC_YR = SEC_DAY * 365; 39 40 public static final String CACHE_CONTROL = "Cache-Control"; 41 public static final String CACHE_CONTROL_MAXAGE = "max-age="; 42 public static final String CACHE_CONTROL_MUST_REVALIDATE = "must-revalidate"; 43 public static final String CACHE_CONTROL_NO_CACHE = "no-cache"; 44 public static final String CACHE_CONTROL_PRIVATE = "private"; 45 public static final String CACHE_CONTROL_PUBLIC = "public"; 46 47 public static final String CONTENT_ENCODING = "Content-Encoding"; 48 public static final String CONTENT_ENCODING_GZIP = "gzip"; 49 public static final String CONTENT_LENGTH = "Content-Length"; 50 public static final String CONTENT_TYPE = "Content-Type"; 51 public static final String CONTENT_TYPE_APPLICATION_XJAVASCRIPT_UTF8 = "application/x-javascript; charset=utf-8"; 52 public static final String CONTENT_TYPE_TEXT_CSS = "text/css"; 53 public static final String CONTENT_TYPE_TEXT_HTML = "text/html"; 54 public static final String CONTENT_TYPE_TEXT_HTML_UTF8 = "text/html; charset=utf-8"; 55 public static final String CONTENT_TYPE_TEXT_PLAIN = "text/plain"; 56 57 public static final String DATE = "Date"; 58 public static final String ETAG = "ETag"; 59 public static final String EXPIRES = "Expires"; 60 public static final String IF_MODIFIED_SINCE = "If-Modified-Since"; 61 public static final String IF_NONE_MATCH = "If-None-Match"; 62 public static final String LAST_MODIFIED = "Last-Modified"; 63 64 67 private static DateFormat sHttpDateFormat = new SimpleDateFormat ( 68 "EEE, d MMM yyyy HH:mm:ss", Locale.US); 69 70 73 public static long fromInternetDateFormat(String timeStr) { 74 Date dateGmt; 75 try { 76 synchronized (sHttpDateFormat) { 77 dateGmt = sHttpDateFormat.parse(timeStr); 78 } 79 } catch (ParseException e) { 80 return 0; 81 } 82 dateGmt = gmtToDate(dateGmt); 83 return dateGmt.getTime(); 84 } 85 86 90 public static String toInternetDateFormat(long time) { 91 Date date = dateToGMT(new Date (time)); 92 String dateGmt; 93 synchronized (sHttpDateFormat) { 94 dateGmt = sHttpDateFormat.format(date) + " GMT"; 95 } 96 return dateGmt; 97 } 98 99 105 private static Date dateToGMT(Date date) { 106 Calendar cal = Calendar.getInstance(); 107 long tzMillis = cal.get(Calendar.ZONE_OFFSET) 108 + cal.get(Calendar.DST_OFFSET); 109 return new Date (date.getTime() - tzMillis); 110 } 111 112 118 private static Date gmtToDate(Date date) { 119 Calendar cal = Calendar.getInstance(); 120 long tzMillis = cal.get(Calendar.ZONE_OFFSET) 121 + cal.get(Calendar.DST_OFFSET); 122 return new Date (date.getTime() + tzMillis); 123 } 124 } 125 | Popular Tags |