Bonjour à tous,

J'ai quelques bases de développement en Java et je voudrais réaliser un petit site web bidon, histoire de me faire la main.
Sur ce site web, j'ai besoin d'uploader des images, puis de les afficher, et c'est là que ça coince!

Pour l'upload, pas de problème, j'utilise un bout de code trouvé sur le net adapté à mes besoins:
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
@WebServlet(name = "index", urlPatterns = {"/"})
@MultipartConfig(fileSizeThreshold = 1024 * 1024 * 1,
location = "c:/temp",
maxFileSize = 1024 * 1024 * 500,
maxRequestSize = 1024 * 1024 * 500)
public class Index extends HttpServlet {
 
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.getRequestDispatcher("/form.jsp").forward(req, resp);
    }
 
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        for (Part part : req.getParts()) {
            String fileName = extractFileName(part);
            part.write(fileName);
        }
        resp.sendRedirect(getServletContext().getContextPath() + "/");
    }
 
    private String extractFileName(Part part) {
        String contentDisp = part.getHeader("content-disposition");
        String[] items = contentDisp.split(";");
        for (String s : items) {
            if (s.trim().startsWith("filename")) {
                return s.substring(s.indexOf("=") + 2, s.length() - 1);
            }
        }
        return "";
    }
Aucune gestion d'erreur, il s'agit là juste de faire un petit essai.

Tout ça fonctionne à la perfection. J'ai d'ailleurs été rudement heureux de découvrir cette fonction dans les JSP 3, par rapport à la gestion des flux avec les librairies apache fileupload.

Je voudrais ensuite afficher l'image que je viens d'uploader, mais j'ignore comment faire.
Dans quel dossier dois-je la placer pour qu'elle soit accessible par mon serveur web (Glassfish pour le moment)?