source: ether_eccad/trunk/ECCAD_INTERFACE/WEB-INF/src/org/medias/eccad/servlet/ServletService.java @ 68

Last change on this file since 68 was 68, checked in by cbipsl, 14 years ago

commit v1 eccad

  • Property svn:executable set to *
File size: 5.9 KB
Line 
1package org.medias.eccad.servlet;
2
3import java.io.BufferedInputStream;
4import java.io.File;
5import java.io.FileInputStream;
6import java.io.FileNotFoundException;
7import java.io.IOException;
8import java.io.InputStream;
9import java.io.OutputStream;
10import java.io.PrintWriter;
11
12import javax.faces.context.FacesContext;
13import javax.servlet.ServletException;
14import javax.servlet.http.HttpServletRequest;
15import javax.servlet.http.HttpServletResponse;
16import javax.servlet.http.HttpSession;
17
18
19import org.medias.eccad.helpers.LoggerPerso;
20import org.medias.eccad.metier.ServiceMetadata;
21import org.medias.eccad.presentation.bean.CritereBean;
22import org.medias.eccad.presentation.bean.DeconnectionException;
23import org.medias.eccad.presentation.bean.MetadataBean;
24import org.medias.eccad.presentation.bean.SessionBean;
25import org.medias.jni.RasterDAO;
26
27/**
28 * Servlet implementation class for Servlet: TestServlet
29 *
30 */
31 public class ServletService extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
32    /**
33         *
34         */
35        private static final long serialVersionUID = -2829516001617913919L;
36        //CritereBean critereBean;
37       
38        public ServletService() {
39                //critereBean = (CritereBean)((HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(false)).getAttribute("critereBean");
40                //controleSession();
41                //critereBean.getBegDate();
42        }       
43       
44       
45        private void controleSession() throws DeconnectionException {
46                SessionBean sessionbean = (SessionBean)((HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(false)).getAttribute("sessionBean");
47                if (sessionbean == null || sessionbean.getEmail() == null || sessionbean.getEmail() == "")
48                        throw new DeconnectionException();
49        }
50       
51        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
52                String identifiant = request.getParameter("product_id");
53                String type        = request.getParameter("type");
54               
55                if (type != null && type.equals("png") && identifiant != null) {
56                        sendImage(request, response, identifiant);
57                        return;
58                }
59               
60                if (type != null && type.equals("html") && identifiant != null) {
61                        sendHTML(request, response, identifiant);
62                        return;
63                }
64       
65                if (type != null && type.equals("xml") && identifiant != null) {
66                        sendXML(request, response, identifiant);
67                        return;
68                }
69
70                if (type != null && type.equals("test")) {
71                        testLibrary(request, response);
72                        return;
73                }
74
75               
76                response.setContentType("text/html");
77                PrintWriter out = response.getWriter();
78                out.println("<html><head><title>TEST 1</title></head><body><h1>bonjour + " + identifiant + " de  : " + type + "</h1></body></html>");
79
80        }       
81       
82        /* (non-Java-doc)
83         * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
84         */
85        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
86                // TODO Auto-generated method stub
87        } 
88       
89        private void testLibrary(HttpServletRequest request, HttpServletResponse response) throws IOException {
90                RasterDAO rasterdao = new RasterDAO();
91                String result = rasterdao.getRaster("zeus", "ECCADSHORT", "wwwadm", 10, 32);
92                response.setContentType("text/html");
93                PrintWriter out = response.getWriter();
94                        out.println("<html><head><title>TEST 1</title></head><body><h1>image</h1>" + result + "<br/>date : none</body></html>");
95        }
96       
97        private void sendHTML(HttpServletRequest request, HttpServletResponse response, String id_product) throws IOException {
98               
99                ServiceMetadata service_meta = new ServiceMetadata();
100                String xmlContent;
101               
102                if (id_product != null) {
103                        LoggerPerso.log(MetadataBean.class, LoggerPerso.DEBUG, "en attente recuperation");
104                        xmlContent = service_meta.getXmlMetadata(Long.parseLong(id_product));
105                        LoggerPerso.log(MetadataBean.class, LoggerPerso.DEBUG, "en attente transforamtion");
106                        xmlContent = service_meta.getXMLTransformResult(xmlContent, "metadata.xslt");
107                        LoggerPerso.log(MetadataBean.class, LoggerPerso.DEBUG, "transformation ok");
108                }
109                else
110                        xmlContent = "no value, you have lost your session";
111               
112                response.setContentType("text/html");
113                response.setContentLength(xmlContent.length());
114                PrintWriter out = response.getWriter();
115                out.println(xmlContent);       
116               
117        }
118       
119        private void sendXML(HttpServletRequest request, HttpServletResponse response, String id_product) throws IOException {
120               
121                ServiceMetadata service_meta = new ServiceMetadata();
122                String xmlContent;
123               
124                if (id_product != null) {
125                        LoggerPerso.log(MetadataBean.class, LoggerPerso.DEBUG, "en attente recuperation");
126                        xmlContent = service_meta.getXmlMetadata(Long.parseLong(id_product));
127                }
128                else
129                        xmlContent = "no value, you have lost your session";
130               
131                response.setContentType("text/xml");
132                response.setContentLength(xmlContent.length());
133                PrintWriter out = response.getWriter();
134                out.println(xmlContent);       
135               
136        }
137       
138        private void sendImage(HttpServletRequest request, HttpServletResponse response, String sid) {
139                // création des stream de lecture/ecriture
140                long id = -1;
141                if (sid != null)
142                        id = Long.parseLong(sid);
143               
144                File fichier = new File("/home/pinaud/projet/eccad_service/WEB-INF/classes/cat.png");
145                BufferedInputStream bis = null;
146                try {
147                        bis = new BufferedInputStream(new FileInputStream(fichier));
148                } catch (FileNotFoundException e) {
149                        e.printStackTrace();
150                }
151                InputStream is = new BufferedInputStream(bis);
152               
153               
154                // definition de l'objet à downloader
155                response.setContentType("image/png");
156                response.setContentLength((int) fichier.length());
157               
158                OutputStream os = null;
159                try {
160                        os = response.getOutputStream();
161                       
162                        // envoie des données
163                        int count;
164                        byte buf[] = new byte[4096];
165                        while ((count = is.read (buf)) > -1) {
166                                os.write (buf, 0, count);
167                        }
168                       
169                        os.flush();
170                        is.close (); 
171                        os.close ();
172                }
173                catch (IOException e2) {
174                        LoggerPerso.log(ServletService.class, LoggerPerso.ERROR, "erreur IO lors de l'envoie de l'image d'id : " + id, e2);
175
176                }
177        }
178}
Note: See TracBrowser for help on using the repository browser.