comparison servlet/src/digilib/servlet/PDFCache.java @ 498:86b5589f38db

added a sendRedirect after the creation of a PDF so that the user that requested the document gets to download it upon completion
author cmielack
date Wed, 11 Feb 2009 17:02:48 +0100
parents 85772b4cd760
children 87d2ed21bdec
comparison
equal deleted inserted replaced
497:85772b4cd760 498:86b5589f38db
101 101
102 if (status == STATUS_DONE) { 102 if (status == STATUS_DONE) {
103 // ... and if the file already exists, send it ... 103 // ... and if the file already exists, send it ...
104 try { 104 try {
105 sendFile(request,response); 105 sendFile(request,response);
106
106 } catch (IOException e) { 107 } catch (IOException e) {
107 // TODO Auto-generated catch block 108 // TODO Auto-generated catch block
108 e.printStackTrace(); 109 e.printStackTrace();
109 } 110 }
110 } 111 }
120 } 121 }
121 } 122 }
122 else if (status == STATUS_NONEXISTENT){ 123 else if (status == STATUS_NONEXISTENT){
123 // ... or else, generate the file and inform the user about the estimated generation-time 124 // ... or else, generate the file and inform the user about the estimated generation-time
124 try { 125 try {
125 this.createFile(request, response); 126 createFile(request, response);
127 response.sendRedirect(request.getRequestURI()+'?'+request.getQueryString()); // refresh the browser after finishing the file
126 } catch (ServletException e) { 128 } catch (ServletException e) {
127 // TODO Auto-generated catch block 129 // TODO Auto-generated catch block
128 e.printStackTrace(); 130 e.printStackTrace();
129 } catch (IOException e) { 131 } catch (IOException e) {
132 // TODO Auto-generated catch block
133 e.printStackTrace();
134 } catch (InterruptedException e) {
130 // TODO Auto-generated catch block 135 // TODO Auto-generated catch block
131 e.printStackTrace(); 136 e.printStackTrace();
132 } 137 }
133 } 138 }
134 else { 139 else {
193 if (sos != null) 198 if (sos != null)
194 sos.close(); 199 sos.close();
195 } 200 }
196 } 201 }
197 202
198 public void createFile(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ 203 public void createFile(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, InterruptedException{
199 // use MakePDF to generate a new Document and put it into the cache-directory 204 // use MakePDF to generate a new Document and put it into the cache-directory
200 205
201 // get global instance of MakePDF 206 // get global instance of MakePDF
202 MakePDF mpdf = (MakePDF) this.getServletContext().getAttribute("digilib.servlet.MakePDF"); 207 MakePDF mpdf = (MakePDF) this.getServletContext().getAttribute("digilib.servlet.MakePDF");
203 208
211 216
212 logger.debug("createFile is going to create file "+filename); 217 logger.debug("createFile is going to create file "+filename);
213 218
214 mpdf.doCreate(request,response,filename); // set the parameters and ... 219 mpdf.doCreate(request,response,filename); // set the parameters and ...
215 mpdf.run(); // ... start generating the pdf 220 mpdf.run(); // ... start generating the pdf
221
216 //new Thread(mpdf,"MakePDF").start(); 222 //new Thread(mpdf,"MakePDF").start();
217 } 223 }
218 } 224 }