Bonjour,

J'ai un problème que probablement beaucoup de personnes ont rencontré, mais je ne parviens pas à trouver de réponse pour la réception de données venant d'un formulaire POST dans une servlet :

ma 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
 
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
 
public class UploadAttachmentHandler extends HttpServlet {
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		BufferedReader in = request.getReader();
		while(in.ready()){
			out.println(in.readLine());
		}
		out.println(request.getAttribute("sid"));
		out.println(request.getParameter("sid"));
		out.println(request.getContentType()+" "+request.getContentLength());
	}
 
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out.println("GET");
	}
}
Le formulaire HTML :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
<html>
 <head>
 </head>
 <body>
  <form method="post" enctype="multipart/form-data" action="http://localhost:8080/WebUI/UploadAttachmentHandler">
   <input type="hidden" value="e0ac657a9d4883f73dac97da22434fd338060f1e" name="sid"/>
   <input type="submit" value="go" />
  </form>
 </body>
</html>
le descripteur de déploiement :

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
 
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
 
	<servlet>
		<servlet-name>shell</servlet-name>
		<servlet-class>com.google.gwt.dev.shell.GWTShellServlet</servlet-class>
	</servlet>
 
	<servlet-mapping>
		<servlet-name>shell</servlet-name>
		<url-pattern>/*</url-pattern>
	</servlet-mapping>
 
	<servlet> 
	 	 <display-name>UploadAttachmentHandler</display-name> 
         <servlet-name>UploadAttachmentHandler</servlet-name> 
		 <servlet-class>com.***.***.server.UploadAttachmentHandler</servlet-class> 
   	</servlet> 
   	<servlet-mapping> 
		<servlet-name>UploadAttachmentHandler</servlet-name> 
		<url-pattern>/UploadAttachmentHandler</url-pattern> 
   	</servlet-mapping>
</web-app>
Comme vous pouvez le constater, j'ai besoin d'une servlet pour l'upload de fichiers dans une appli GWT, mais dans le cas présent, j'en suis réduit à la plus simple expression : récupérer un attribut "sid" via un formulaire POST tout simple.

Voici le résultat que j'obtient quand j'envoi le formulaire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
null
null
multipart/form-data; boundary=---------------------------18691991225667 180
J'ai très certainement loupé un truc, mais je n'arrive pas à trouver quoi ...

Merci