: Class MyRequest

rup.robot.httpserver.request
Class MyRequest

java.lang.Object
  |
  +--rup.robot.httpserver.request.MyRequest
Direct Known Subclasses:
MyServletRequest

public class MyRequest
extends java.lang.Object

MyRequest représente une requête venant du serveur web et qui arrive par le biais du protocol http au Robot qui implémente le module rup

Un MyRequest fournit tous les outils qui permettront par la suite à aider de maniere considérable l'implémentation de toutes les interfaces des servlets distribuées par Sun.

On fournit donc entre autre des méthodes permettant de parser le flux http qui arrive au Robot. Au fur et à mesure du parsing on remplit des Hashtables qui contiendront toutes les informations nécéssaires aux objets héritant de cette classe. On essaye d'effectuer un maximum de travail dans cette classe pour alléger l'implémentation des interfaces des servlets. Le parsing est conforme au protocole http\1.1

Version:
2.0
Author:
Bromberg David
See Also:
Moi

Inner Class Summary
protected  class MyRequest.JServInputStream
          ServletInputStream implementation as inner class
 
Field Summary
protected  java.util.Hashtable env_vars
          Notre table des variables d'environements
protected  java.util.Hashtable headers_in
          La table de contenant les parametres de l'entetes
protected  MyRequest.JServInputStream in
          Flux entrant de la socket, objet provenant de Jserv
protected  java.util.Hashtable params
          Parametres passés en arguments (ne sert pas encore )
 
Constructor Summary
MyRequest(java.io.InputStream in)
          C'est le constructeur de la classe
 
Method Summary
 java.util.Hashtable getEnv()
          Méthode qui permet d'initialiser les classes filles On renvoie l'environement généré par la méthode readHeader()
 java.lang.String[] getTokens(java.lang.String s, java.lang.String c)
          On parse une chaine de charactere avec un delimeter Ceci est assez pratique lorsque par exemple on a un chaine comme suit : String Accept="image/gif,image/x-xbitmap,image/jpeg,image/pjpeg" Cette chaine est une liste des types de fichiers que ie5 est susceptible de recevoir.
 void readHeader()
          Lecture de l'entête de la requête http Et stockage de tous les champs dans une hastable.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

in

protected MyRequest.JServInputStream in
Flux entrant de la socket, objet provenant de Jserv

env_vars

protected java.util.Hashtable env_vars
Notre table des variables d'environements

params

protected java.util.Hashtable params
Parametres passés en arguments (ne sert pas encore )

headers_in

protected java.util.Hashtable headers_in
La table de contenant les parametres de l'entetes
Constructor Detail

MyRequest

public MyRequest(java.io.InputStream in)
          throws java.io.IOException
C'est le constructeur de la classe
Parameters:
WebSocket - une socket sur lequel le client est connecté
Method Detail

readHeader

public void readHeader()
                throws java.io.IOException
Lecture de l'entête de la requête http Et stockage de tous les champs dans une hastable. Les clefs de la hashtable sont les noms des champs Les valeurs associées aux clefs sont les valeurs des champs d'entête de la requête http. Par exemple quand on parse on cours du parsing on ajoutera dans la hashtable :

hashtable.put("REQUEST_METHOD", valeur); hashtable.put("SERVER_PROTOCOL", valeur); etc ....

Par la suite lorsque l'on aura besoin de connaître le protocol du server appellant on fera appelle à la méthode getProtocol()

Cette méthode effectuera alors l'opération ci dessous :

hashtable.get("SERVER_PROTOCOL"); etc ...


getTokens

public java.lang.String[] getTokens(java.lang.String s,
                                    java.lang.String c)

On parse une chaine de charactere avec un delimeter

Ceci est assez pratique lorsque par exemple on a un chaine comme suit :

String Accept="image/gif,image/x-xbitmap,image/jpeg,image/pjpeg" Cette chaine est une liste des types de fichiers que ie5 est susceptible de recevoir. En faisant un appel à getTokens(Accept,",") on obtient tous les tokens dans un tableau. Il ne reste plus qu'à parcourire le tableau.

Parameters:
s - la String à parser
c - le String délimiter
Returns:
un tableau de String qui contient tous les tokens parser

getEnv

public java.util.Hashtable getEnv()
Méthode qui permet d'initialiser les classes filles On renvoie l'environement généré par la méthode readHeader()
Returns:
la Hashtable contenant tous les attributs parser dans l'entête de la requette http ainsi que le body de la requette si celle ci en en dispose biensûr.