001: /**
002: * <p>
003: * Title: EnteteRequete
004: * </p>
005: *
006: * <p>
007: * Description: Represente une entete de requete.
008: * Dans HTTP 1.0, 5 champs d'entetes sont possibles (Authoriation,From,Referer,
009: * If-modified-Since,User-Agent), mais toutes ne sont pas forcement possible!
010: * </p>
011: *
012: * <p>
013: * Copyright: Copyright (c) 2005
014: * </p>
015: *
016: * <p>
017: * Company:
018: * </p>
019: *
020: * @author Adlani Anouar - Detante Antoine - Klein Gregory - Pepin Pierre
021: * @version 1.0
022: */package httpserver;
023:
024: import java.util.StringTokenizer;
025:
026: /**
027: * @author antoine
028: *
029: */
030: public class EnteteRequete extends EnteteHTTP {
031: /**
032: * Construit une Entete de requete
033: *
034: */
035: public EnteteRequete() {
036: super ();
037: }
038:
039: /**
040: * definie la valeur du champs Authorization de l'entete
041: * @param valeur la valeur du champs Authorization
042: */
043: public void setAuthorizationValue(String valeur) {
044: super .ajouterChamps("Authorization", valeur);
045: }
046:
047: /**
048: * recupere la valeur Authorization de l'entete
049: * @return chaine contenant la valeur
050: */
051: public String getAuthorizationValue() {
052: return super .getChamps("Authorization");
053: }
054:
055: /**
056: * definie la valeur du champs From de l'entete
057: * @param valeur la valeur du champs From
058: */
059: public void setFromValue(String valeur) {
060: super .ajouterChamps("From", valeur);
061: }
062:
063: /**
064: * recupere la valeur From de l'entete
065: * @return chaine contenant la valeur
066: */
067: public String getFromValue() {
068: return super .getChamps("From");
069: }
070:
071: /**
072: * definie la valeur du champs If-Modified-Since de l'entete
073: * @param valeur la valeur du champs If-Modified-Since
074: */
075: public void setIfModifiedSinceValue(String valeur) {
076: super .ajouterChamps("If-modified-since", valeur);
077: }
078:
079: /**
080: * recupere la valeur If-modified-since de l'entete
081: * @return chaine contenant la valeur
082: */
083: public String getIfModifiedSinceValue() {
084: return super .getChamps("If-modified-since");
085: }
086:
087: /**
088: * definie la valeur du champs Referer de l'entete
089: * @param valeur la valeur du champs Referer
090: */
091: public void setRefererValue(String valeur) {
092: super .ajouterChamps("Referer", valeur);
093: }
094:
095: /**
096: * recupere la valeur Referer de l'entete
097: * @return chaine contenant la valeur
098: */
099: public String getRefererValue() {
100: return super .getChamps("Referer");
101: }
102:
103: /**
104: * definie la valeur du champs User-Agent de l'entete
105: * @param valeur la valeur du champs User-Agent
106: */
107: public void setUserAgentValue(String valeur) {
108: super .ajouterChamps("User-agent", valeur);
109: }
110:
111: /**
112: * recupere la valeur User-Agent de l'entete
113: * @return chaine contenant la valeur
114: */
115: public String getUserAgentValue() {
116: return super .getChamps("User-agent");
117: }
118:
119: /**
120: * Permet de tester si le champs Authorization a une valeur
121: * @return true si il y a une valeur
122: */
123: public boolean isSetAuthorizationValue() {
124: return super .contientChamps("Authorization");
125: }
126:
127: /**
128: * Permet de tester si le champs From a une valeur
129: * @return true si il y a une valeur
130: */
131: public boolean isSetFromValue() {
132: return super .contientChamps("From");
133: }
134:
135: /**
136: * Permet de tester si le champs If-Modified-Since a une valeur
137: * @return true si il y a une valeur
138: */
139: public boolean isSetIfModifiedSinceValue() {
140: return super .contientChamps("If-modified-since");
141: }
142:
143: /**
144: * Permet de tester si le champs Referer a une valeur
145: * @return true si il y a une valeur
146: */
147: public boolean isSetRefererValue() {
148: return super .contientChamps("Referer");
149: }
150:
151: /**
152: * Permet de tester si le champs User-Agent a une valeur
153: * @return true si il y a une valeur
154: */
155: public boolean isSetUserAgentValue() {
156: return super .contientChamps("User-agent");
157: }
158:
159: /**
160: * Construit une chaine contenant tous les champs d'entetes qui ont une valeur,
161: * comme specifiée dans la RFC
162: */
163: public String toString() {
164: StringBuffer sb = new StringBuffer();
165: if (this .isSetAuthorizationValue())
166: sb.append(super .champsToString("Authorization") + "\n");
167: if (this .isSetFromValue())
168: sb.append(super .champsToString("From") + "\n");
169: if (this .isSetIfModifiedSinceValue())
170: sb.append(super .champsToString("If-modified-since") + "\n");
171: if (this .isSetRefererValue())
172: sb.append(super .champsToString("Referer") + "\n");
173: if (this .isSetUserAgentValue())
174: sb.append(super .champsToString("User-agent") + "\n");
175: return sb.toString();
176: }
177:
178: /**
179: * Construit une EnteteRequete a partir d'une chaine contenant les champs,
180: * definie par la RFC
181: * @param entete la chaine contenant l'entete
182: * @return une instance de EnteteRequete
183: */
184: public static EnteteRequete getFromString(String entete) {
185: EnteteRequete retour = new EnteteRequete();
186: StringTokenizer st = new StringTokenizer(entete, "\n");
187: while (st.hasMoreTokens()) {
188: String ligne = st.nextToken();
189: if (ligne.indexOf(":") != -1) {
190: String nomParam, valeurParam;
191: nomParam = ligne.substring(0, ligne.indexOf(":"));
192: valeurParam = ligne.substring(ligne.indexOf(":") + 2);
193: if (nomParam.equalsIgnoreCase("Authorization"))
194: retour.setAuthorizationValue(valeurParam);
195: if (nomParam.equalsIgnoreCase("From"))
196: retour.setFromValue(valeurParam);
197: if (nomParam.equalsIgnoreCase("If-modified-since"))
198: retour.setIfModifiedSinceValue(valeurParam);
199: if (nomParam.equalsIgnoreCase("Referer"))
200: retour.setRefererValue(valeurParam);
201: if (nomParam.equalsIgnoreCase("User-agent"))
202: retour.setUserAgentValue(valeurParam);
203: }
204: }
205: return retour;
206: }
207:
208: }
|