salut,
j'ai un problème je veux savoir comment récupérer les données de servlet vers une page jsp
mais le problème est que la servlet dois récupérer les donnés d'un fichier .xml
grâce a l'url de l'emplacement de fichier .xml
après je dois afficher ses donnes dans la page jsp
selon mon besoin
si je vous donne un exemple de fichier .xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?xml version="1.0" encoding="UTF-8"?> <applications> <application> <nom>firefox</nom> <nombre>45</nombre> </application> <application> <nom>chrome</nom> <nombre>15</nombre> </application> </applications>
et un la class java qui recupere les donnés de fichier .xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 import java.io.*; import org.jdom.*; import org.jdom.input.*; import java.util.List; import java.util.Iterator; public class Exemple_XML{ static org.jdom.Document document; static Element racine; public static void main(String[] args){ SAXBuilder sxb = new SAXBuilder(); try{ document = sxb.build(new File("Application.xml")); } catch(Exception e){} racine = document.getRootElement(); afficheALL(); } static void afficheALL(){ List listApplications = racine.getChildren("application"); Iterator i = listApplications.iterator(); while(i.hasNext()){ Element courant = (Element)i.next(); // System.out.println(courant.getValue()); //Afficher les noms + nombre System.out.println("\n"+courant.getChild("nom").getValue()+" \n"+courant.getChild("nombre").getValue()); // System.out.println(courant.getChild("nom").getValue()); } } }
et j'ai un exemple de class java qui est nécessaire pour mon exemple qui sert à récupérer les donnes grâce à un URL donnés
et pour la servlet
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90 import java.io.*; import java.net.*; public class HttpClient { private static HttpClient instance; protected URL url; protected HttpURLConnection server; public HttpClient() {} /** * @param method: String object for client method (POST, GET,...) */ public void connect(String method,String szUrl) throws Exception { try { url = new URL(szUrl); server = (HttpURLConnection)url.openConnection(); server.setDoInput(true); server.setDoOutput(true); server.setRequestMethod(method); server.setRequestProperty("Content-type", "application/x-www-form-urlencoded"); server.connect(); } catch (Exception e) { throw new Exception("Connection failed"); } } public void disconnect() { server.disconnect(); } public String displayResponse() throws Exception { String line; String result = null; try { BufferedReader s = new BufferedReader( new InputStreamReader( server.getInputStream())); line = s.readLine(); while (line != null) { result+=line; line = s.readLine(); } s.close(); } catch(Exception e) { throw new Exception("Unable to read input stream"); } return result; } public void post(String s) throws Exception { try { BufferedWriter bw = new BufferedWriter( new OutputStreamWriter( server.getOutputStream())); bw.write(s, 0, s.length()); bw.flush(); bw.close(); } catch(Exception e) { throw new Exception("Unable to write to output stream"); } } public static HttpClient getInstance() { if (instance==null) instance=new HttpClient(); return instance; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class TestServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpClient c = HttpClient.getInstance(); String v=""; try { String message=""; c.connect("GET","http://www.google.fr"); //"?data="+message.toString() v=(c.displayResponse()); c.disconnect(); } catch (Exception e) { e.printStackTrace(); } PrintWriter out=response.getWriter(); String s= "# ----------------------------------------\n"; s+=v; out.write(s); } protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub super.doGet(req, resp); } protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub super.doPost(req, resp); } }
le changement qui je dois fiare pour traiter le fichier .xml
est au niveau de l'URL par exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part c.connect("GET","http://localhost/www/test.xml");
pour résumer je veux par exemple grâce au fichier test.xml
je veux récupérer les donnes grâce a servlet qui contient l'URL de l'emplacement de fichier de fichier test.xml et qui fait appel a la class HttpClient et la class qui parcour le fichier pour recuperer les donnés sous forme d'Objet
je vous donne un exemple de class java qui fait parser le fichier .xml
par exemple voila un sénario de test : par exemple dans un page index.jsp
contenant un bouton et si clique sur ce bouton il me dirige vers un autre page acceul.jsp cette page contient par exemple
un menu ; firefox et chrome
donc la modification dois se faite dans ce bout de code de la page acceuil.jsp
on dois normalement mettre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <h:selectOneMenu > <f:selectItem itemLabel="firefox" itemValue="firefox" /> <f:selectItem itemLabel="chrome" itemValue="chrome" /> </h:selectOneMenu>selon le nom de l'objet ércit dans la servlet
Code : Sélectionner tout - Visualiser dans une fenêtre à part itemValue="#TestServlet.nomObjet.nomAttribut"
j'espère qui j'arrive à rendre le problème claire
merci d'avance
Partager