Bonjour à tous,
Voilà je fais appel à vous car je ne comprends pas comment résoudre un problème simple. Je débute en servlet/jsp, et je dois faire un projet pour mes études. Désolé de la stupidité de ma question mais je n'ai pas trouvé sur le net.
Par facilité, vu que c'est un tout petit projet avec une jsp et une servlet, je n'utilise pas de framework. Mais j'ai besoin d'appeler une servlet de ma JSP sans rafraîchir la page, et cette servlet devrait me renvoyer une valeur (et là je ne comprends pas comment on fait sans struts). Je pensais pour cela utiliser ajax, mais en fait, je n'arrive pas à appeler ma servlet. J'obtiens ce message :
ma jsp :Etat HTTP 404 - /Javadoc/WEB-INF/classes/gestion
La resource demandée n'est pas disponible
ma servlet (qui ne renvoie rien alors qu'il faudrait, j'ai mis le return en commentaire)
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 <SCRIPT language="JavaScript" type="text/javascript"> function valider(){ [...] docXML = appelServlet("../WEB-INF/classes/gestionio?url="+document.getElementById("url").value,""); listNode = docXML.getElementsByTagName("DONNEES"); listNode1=listNode[0].childNodes; if(listNode1[i].tagName == "CODE") { code = listNode1[i].text; } [...] } function appelServlet(strUrl,strParam) { var oXMLHTTP; var objXML; var strXML; var msg=""; var url; var listNode; var listNode1; try{ var hrefLocation, i; url = strUrl; if(strParam!='')url= strUrl+strParam; oXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP"); hrefLocation = document.location.href; i = hrefLocation.lastIndexOf("/", hrefLocation.length); hrefLocation = hrefLocation.substring(0, i+1); oXMLHTTP.open("POST",hrefLocation + url, false); oXMLHTTP.send(null); if (oXMLHTTP.readyState == 4) { if (oXMLHTTP.status == 200) { objXML = new ActiveXObject("Microsoft.XMLDOM"); objXML.load(oXMLHTTP.responseXML); return(objXML); } else { alert('ERREUR : statut différent de 200 : ' + oXMLHTTP.status); alert("FLUX -->" + oXMLHTTP.responseText); } } else{ alert('ERREUR : différent de 4 '); } }catch(e){ alert("ERREUR DE TRAITEMENT"); return false; } } </SCRIPT> Dans le body : <input type="button" id="valider" value="OK" onclick="valider();"/>
mon web.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
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 package action; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class for Servlet: initialisation * */ public class Gestion extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet { /** * */ private static final long serialVersionUID = 1L; /* (non-Java-doc) * @see javax.servlet.http.HttpServlet#HttpServlet() */ public Gestion() { super(); } /* (non-Java-doc) * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub this.doPost(request,response); } /* (non-Java-doc) * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub try { [...] // return toFluxString(code); } catch (Exception e){ e.printStackTrace(); } } public void init(ServletConfig servletConfigP) throws ServletException { //public void init() throws ServletException { // TODO Auto-generated method stub //super.init(); super.init(servletConfigP); } public String toFluxString(String code) throws Exception { String temp=new String("<?xml version=\"1.0\" encoding=\"ISO-8859-15\"?>"); temp+="<DONNEES>"; temp+="<CODE>"+code+"</CODE>"; temp+="</DONNEES>"; return temp; } }
EDIT : je précise mon titre vu qu'une partie de ma question est résolue. Il me reste juste comment récupérer une valeur d'une servlet appelée en ajax.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <servlet> <servlet-name>gestion</servlet-name> <servlet-class>action/Gestion</servlet-class> </servlet>
Partager