Comment créer une requete HttpServletRequest ?

Comment créer une requete HttpServletRequest ? - Java - Programmation

Marsh Posté le 27-09-2002 à 11:51:23    

Dans mon servlet je veux créer une nouvelle requete et la redirigé vers un url :
 
HttpServletRequest request = new ....
 //le pb c'est que c'est une interface et pas une classe ...
 
request.setAttribute("xml",xml);
RequestDispatcher rd = request.getRequestDispatcher("monurl" );
rd.forward(request,res);

Reply

Marsh Posté le 27-09-2002 à 11:51:23   

Reply

Marsh Posté le 27-09-2002 à 11:53:41    

bin t'as pas besoin d'en créer une nouvelle pour faire un forward.  :heink:  C'est quoi un forward à ton avis ?
 
Un forward c'est transférer à qqun d'autre (dans le cas du mail par exemple) LE MEME CONTENU + des trucs additionnels
 
Dans ton cas tu prends la requete que tu veux, tu lui ajoutes ce que tu as envie d'ajouter et puis tu fais ton forward ...


Message édité par darklord le 27-09-2002 à 11:54:10

---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 27-09-2002 à 11:55:57    

tu peux meme virer des attributs et en changer stu veux :)

Reply

Marsh Posté le 27-09-2002 à 11:56:20    

En l'occurence si j'ajoute qqchose a la requete cela ne fonctionne pas.
 
code :
 
request.setAttribute("xml",xml);
RequestDispatcher rd = request.getRequestDispatcher("ValidateXML" );
rd.forward(request,res);

Reply

Marsh Posté le 27-09-2002 à 11:57:05    

touflb a écrit a écrit :

En l'occurence si j'ajoute qqchose a la requete cela ne fonctionne pas.
 
code :
 
request.setAttribute("xml",xml);
RequestDispatcher rd = request.getRequestDispatcher("ValidateXML" );
rd.forward(request,res);




 
Génial. Attends je vais chercher ma boule de cristal et je reviens.  
 
Tu sais pas donner des détails des fois?


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 27-09-2002 à 11:57:45    

quand je récupere la requete dans mon servlet "ValidateXML" par :
 
        String xml=request.getParameter("xml" );
 
Et bien y aque tchi dedans inside

Reply

Marsh Posté le 27-09-2002 à 11:59:48    

détail ? ok comme tu veux :
 
public class ServletMasse extends HttpServlet
{
 
public void doPost(HttpServletRequest request,HttpServletResponse res)throws ServletException,IOException {    
 
    String client = request.getParameter("client" );
    String compte = request.getParameter("compte" );
    String pass = request.getParameter("pass" );
    String from = request.getParameter("tfrom" );
    String to = request.getParameter("tto" );
    String message = request.getParameter("tmessage" );
    String classe = request.getParameter("tclasse" );
    String xml = new String ("" );
     
     System.err.println("tclient : "+client);
     System.err.println("compte : "+compte);
     System.err.println("tpass : "+pass);
     System.err.println("tfrom : "+from);
     System.err.println("tto : "+to);
     System.err.println("tmessage : "+message);
     System.err.println("tclasse : "+classe);
         
    try {
            Connection conn = null;
            Class.forName("oracle.jdbc.driver.OracleDriver" ).newInstance();
            String url = "qqchose";
            String username = "untruc";
            String password = "fopasrever";
            conn = DriverManager.getConnection(url, username, password);
 
            CallableStatement stmt = conn.prepareCall("select nb from list_members where recipient_list_id = ?" );
            int k = Integer.parseInt(to);
            stmt.setInt(1,k);  
            ResultSet rs = stmt.executeQuery();
             
            String listeto = new String("" );
             
            while (rs.next()) {
                listeto += "<to>"+rs.getString("nb" )+"</to>\n";
            }
            System.err.println("Liste des to : "+listeto);
             
            xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"+
                        "<session xmlns=\"http://statsms.jetmultimedia.fr\" "+
                        "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" "+
                        "xsi:schemaLocation=\"http://statsms.jetmultimedia.fr http://statsms.jetmultimedia.fr/sms_session.xsd" "+
                        "client=\""+client+"\" "+
                        "account=\""+compte+"\" "+
                        "password=\""+pass+"\">\n"+
                        "<message type_id=\"1\" class_type=\""+classe+"\" from=\""+from+"\" validity=\"P200Y\">\n"+
                        "<gsm_content>"+message+"</gsm_content>\n"+
                        listeto+
                        "</message>\n"+
                        "</session>\n";
             
 
             
     
    } catch(Exception e){
        System.err.println("Error" );
    }
     
     System.err.println("Message XML : "+xml);
 
     request.setAttribute("xml",xml);
     
     RequestDispatcher rd = request.getRequestDispatcher("ValidateXML" );
     rd.forward(request,res);
}
     
public void doGet(HttpServletRequest req,HttpServletResponse res)throws ServletException,IOException {
    doPost(req,res);
}
 
}

Reply

Marsh Posté le 27-09-2002 à 12:08:08    

mais je m'en fous de ta servlet bordayl. Je veux voir la stacktrace. C'est quoi l'erreur et ca concerne quel partie du code.


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 27-09-2002 à 12:09:11    

touflb a écrit a écrit :

 

Code :
  1. request.setAttribute("xml",xml);
  2. RequestDispatcher rd = request.getRequestDispatcher("ValidateXML" );
  3. rd.forward(request,res);


-----------------------------
quand je récupere la requete dans mon servlet "ValidateXML" par :

Code :
  1. String xml=request.getParameter("xml" );


 
Et bien y aque tchi dedans inside




 
y'a pas un truc qui te choque là?


Message édité par --greg-- le 27-09-2002 à 12:09:31
Reply

Marsh Posté le 27-09-2002 à 12:11:19    

Calm down fellas.
 
Y a pas d'erreur. Juste que dans mon Servlet "ValidateXML" l'attribut "xml" est null.

Reply

Marsh Posté le 27-09-2002 à 12:11:19   

Reply

Marsh Posté le 27-09-2002 à 12:13:03    

mais si y'a une erreur
 
setAttribute  
getParameter
 
....

Reply

Marsh Posté le 27-09-2002 à 12:15:55    

--greg-- a écrit a écrit :

mais si y'a une erreur
 
setAttribute  
getParameter
 
....




 
bien vu!


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 27-09-2002 à 12:16:48    

for sure...
 
Mais le pb c'est que je dois laisser un getparameter() car mon appli n'est pas la seule a faire des requete sur "validateXML", alors comment faire ?

Reply

Marsh Posté le 27-09-2002 à 12:17:40    

:heink:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 27-09-2002 à 12:17:50    

Et puis c'est koi la différence entre un attribut et un parametre ? (facultatif ;o) )

Reply

Marsh Posté le 27-09-2002 à 12:19:56    

et bien tu fais
 

Code :
  1. String truc = req.getParameter(machin);
  2. if (truc==null) truc = (String) req.getAttribute(machin);
  3. if (truc==null) throw new ServletException("Houston, we have a problem" );


 
La difference entre attribut et paramètre:
 
un param fait partie de la requete envoyée par le browser, et sera tjs une String
un attribut est setté par toi et ta servlet, et est un Object.
 
Y'a surement plus à en dire mais l'essentiel est là je pense.
 
 
edit: pq mon 2e if est indenté? :heink:


Message édité par --greg-- le 27-09-2002 à 12:20:35
Reply

Marsh Posté le 27-09-2002 à 12:20:25    

Reprenons le pb à la base.
 
De maniere plus générale.
 
Je suis dans une servlet java, je veux créer une nouvelle requete HTTP. lui ajouter des trucs et la renvoyer.
 
Comment fais t'on puisque HttpServletrequest est une interface et HttpServlet aussi.
 
 
 
Do not panic.

Reply

Marsh Posté le 27-09-2002 à 12:20:53    

Cool raoul

Reply

Marsh Posté le 27-09-2002 à 12:22:06    

evidement un test à la con marche aussi.
 
 
Je vous remerçie bien pour votre attention et vos conseils.
 
Bonne journée.
 
Tlb.

Reply

Marsh Posté le 27-09-2002 à 12:22:18    

tu ne peux pas instancier un objet implementant HttpServletRequest, à moins de l'implementer toi meme (bonne chance)
Les instances de HttpServletRequest que tu utilises dans tes servlets sont des "versions" implementées par ton serveur, qui lui sont propres. (l'objet implementant HttpServletRequest dans Tomct n'est pas "compatible" avec celui de Resin par exemple)

Reply

Marsh Posté le 27-09-2002 à 12:23:51    

j't'en foutrai moi des "test à la con" :D

Reply

Marsh Posté le 27-09-2002 à 12:29:22    

touflb a écrit a écrit :

Reprenons le pb à la base.
 
De maniere plus générale.
 
Je suis dans une servlet java, je veux créer une nouvelle requete HTTP. lui ajouter des trucs et la renvoyer.
 
Comment fais t'on puisque HttpServletrequest est une interface et HttpServlet aussi.
 
 
 
Do not panic.




 
 [:w3c compliant]


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 27-09-2002 à 12:34:27    

DarkLord a écrit a écrit :

 
 
 [:w3c compliant]  



moi je dirais: tain le mec on lui apprend son métier, il va se faire des briques sur notre dos maintenant [:w3c compliant], en faisant croire à son boss que ouais, j2ee, il assure.

Reply

Marsh Posté le 27-09-2002 à 12:34:49    

[:seyar]


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 27-09-2002 à 12:36:32    

[:--greg--]


Message édité par --greg-- le 27-09-2002 à 12:36:50
Reply

Marsh Posté le 27-09-2002 à 12:37:14    

[:super chinois]


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 27-09-2002 à 12:46:11    

il s'est vraiment cassé en plus hein... :(
 
enfin bon, il a dit merci c'est deja ça :D

Reply

Marsh Posté le 27-09-2002 à 12:47:19    

n'empeche je ne suis pas sur qu'il ait compris la stupidité de vouloir créer une nouvelle requete dans le cas d'un forward ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 27-09-2002 à 13:45:36    

bah je suis passé par la aussi moi :o
 
c'est pas completement stupide mais ça n'a guère d'interet, et puis une requete étant ce qu'elle est, il ne serait pas logique d'en créer :)


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed