IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Comment on crée une servlet image


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 60
    Par défaut Comment on crée une servlet image
    Bonjour,
    je veux afficher une image de type blob qui é enregistré dans Mysql dans une page jsp.A force de chercher j'ai trouvé une solution qui est de creer une servlet pour image
    Commen on peut creer une servlet pour image??? j'utilise eclipse
    merci bcp

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2003
    Messages : 10
    Par défaut
    Voici un exemple d'un Servlet Images.

    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
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
     
    package servlet;
     
    import java.io.IOException;
    import java.io.InputStream;
    import java.sql.Blob;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.GregorianCalendar;
     
    import javax.servlet.ServletException;
    import javax.servlet.ServletOutputStream;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    public class Images extends HttpServlet {
     
    	private PreparedStatement statement;
     
    	public void init() throws ServletException {
     
    		Connection connection = // recuperatiopn de la connexion.
     
    		String sql = "SELECT * FROM images WHERE id = ? ";
    		try {
    			statement = connection.prepareStatement(sql);
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
     
    	}
     
    	public void doGet(HttpServletRequest req, HttpServletResponse res) {
     
    		String idString = req.getParameter("id");			
    		int id = -1;
    		try {
    			id = Integer.parseInt(idString);
    		} catch (NumberFormatException e1) {			
    			e1.printStackTrace();			
    			return;
    		}
    		ResultSet resultSet = null;
    		try {
    			statement.setInt(1, id);
    			resultSet = statement.executeQuery();
     
     
    			if (resultSet.next()) {
    				Blob blob = resultSet.getBlob("data");
    				sendImage(res, blob.getBinaryStream(), (int) blob.length());
    				blob.free();
    			} else {
    				// IMAGE introuvable ...
    				try {
    					res.getWriter().print("Cette image est introuvable.");
    				} catch (IOException e) {
    				}
    			}
     
    		} catch (SQLException e) {
    			e.printStackTrace();
    		} finally {
    			try {
    				resultSet.close();
    			} catch (SQLException e) {
    			}
    		}
     
    	}
     
    	private void sendImage(HttpServletResponse res, InputStream in, int length) {
    		try {
     
    			GregorianCalendar calendar = new GregorianCalendar();
    			calendar.add(GregorianCalendar.DATE, 7);
    			// cache de 7 jours.
    			res.setDateHeader("Expires", calendar.getTime().getTime());
    			res.setContentType("image/jpeg");
    			res.setContentLength(length);
     
    			ServletOutputStream out = res.getOutputStream();
     
    			byte[] buffer = new byte[4 * 1024];
    			while (in.read(buffer) >= 0) {
    				out.write(buffer);
    			}
     
    			out.flush();
    			out.close();
    		} catch (IOException ex) {
    			// si une erreur se produit au milieu de la réponse
    			// on envoie le code d'erreur HTTP adéquat
    			try {
    				res.sendError(HttpServletResponse.SC_PARTIAL_CONTENT);
    			} catch (IOException e) {
    			}
     
    		}
    	}
     
    }
    il faut aussi ajouter ceci dans le web.xml.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     <servlet>
        <servlet-name>images</servlet-name>
        <servlet-class>servlet.Images</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>images</servlet-name>
        <url-pattern>/images</url-pattern>
      </servlet-mapping>

    ensuite, une URL de type : /images?id=5 retournera une image.

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/06/2009, 17h04
  2. [Servlet] [Image] Dessiner sur une image
    Par gaia_dev dans le forum 2D
    Réponses: 5
    Dernier message: 01/09/2004, 17h11
  3. [Info]Comment mettre une servlet sur le web?
    Par fred9510 dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 15/08/2004, 16h40
  4. [MAIL] comment en envoyer depuis une servlet ?
    Par outreal dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 09/07/2004, 11h17
  5. [Servlet] Comment utilisé une servlet plusieurs fois ?
    Par gandalf_le_blanc dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 03/06/2004, 14h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo