KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > servlets > SpeedyAssetServlet


1 package com.dotmarketing.servlets;
2
3 import java.io.BufferedInputStream JavaDoc;
4 import java.io.FileInputStream JavaDoc;
5 import java.io.IOException JavaDoc;
6 import java.util.StringTokenizer JavaDoc;
7
8 import javax.servlet.ServletException JavaDoc;
9 import javax.servlet.ServletOutputStream JavaDoc;
10 import javax.servlet.http.HttpServlet JavaDoc;
11 import javax.servlet.http.HttpServletRequest JavaDoc;
12 import javax.servlet.http.HttpServletResponse JavaDoc;
13
14 import com.dotmarketing.portlets.files.factories.FileFactory;
15 import com.dotmarketing.util.Config;
16 import com.dotmarketing.util.Logger;
17 import com.dotmarketing.util.UtilMethods;
18
19 public class SpeedyAssetServlet extends HttpServlet JavaDoc {
20
21     private static final long serialVersionUID = 1L;
22
23     
24     protected void service(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
25         throws ServletException JavaDoc, IOException JavaDoc {
26
27         if (Config.CONTEXT == null) {
28             Logger.debug(this, "Asset not Found");
29             response.sendError(404, "Asset not Found");
30             return;
31         }
32         
33         // Get the folder using the path
34
StringTokenizer JavaDoc _st = new StringTokenizer JavaDoc(request.getRequestURI(), "/");
35
36         String JavaDoc _fileName = null;
37         while(_st.hasMoreElements()){
38             _fileName = _st.nextToken();
39         }
40
41         String JavaDoc mimeType = this.getServletContext().getMimeType(_fileName);
42         if (mimeType == null)
43             mimeType = "application/octet-stream";
44         else
45             mimeType = mimeType.intern();
46         
47         String JavaDoc ext = UtilMethods.getFileExtension(_fileName);
48         String JavaDoc inode = UtilMethods.getFileName(_fileName);
49
50         Logger.debug(this, "filename:" + _fileName);
51         Logger.debug(this, "mime type:" + mimeType);
52
53         response.setContentType(mimeType);
54
55
56
57         ServletOutputStream JavaDoc out = response.getOutputStream();
58         try {
59             FileInputStream JavaDoc fis = new FileInputStream JavaDoc(FileFactory.getRealAssetPath(inode, ext));
60             BufferedInputStream JavaDoc bis = new BufferedInputStream JavaDoc(fis);
61             byte[] buf = new byte[1024];
62             int i = 0;
63
64             while ((i = bis.read(buf)) != -1) {
65                 out.write(buf, 0, i);
66             }
67             bis.close();
68             fis.close();
69             out.close();
70         } catch (Exception JavaDoc e) {
71             Logger.debug(this, "Asset not Found", e);
72             response.sendError(404, "Asset not Found");
73         }
74
75
76
77
78
79
80
81
82
83
84     }
85
86
87
88
89 }
90
Popular Tags