Mercurial > hg > digilib-old
comparison servlet/src/digilib/servlet/Texter.java @ 161:ace2a4a0ba74
servlet version 1.16a4
- rather experimental
- new Texter servlet for sending text
- reads and caches text files in DocuDirCache
- DocuFile renamed to ImageFile (-Set)
- new TextFile
| author | robcast |
|---|---|
| date | Tue, 16 Sep 2003 18:32:28 +0200 |
| parents | |
| children | 6002ea661acd |
comparison
equal
deleted
inserted
replaced
| 160:aecb57fb8f96 | 161:ace2a4a0ba74 |
|---|---|
| 1 /* Texter.java -- Servlet for displaying text | |
| 2 | |
| 3 Digital Image Library servlet components | |
| 4 | |
| 5 Copyright (C) 2003 Robert Casties (robcast@mail.berlios.de) | |
| 6 | |
| 7 This program is free software; you can redistribute it and/or modify it | |
| 8 under the terms of the GNU General Public License as published by the | |
| 9 Free Software Foundation; either version 2 of the License, or (at your | |
| 10 option) any later version. | |
| 11 | |
| 12 Please read license.txt for the full details. A copy of the GPL | |
| 13 may be found at http://www.gnu.org/copyleft/lgpl.html | |
| 14 | |
| 15 You should have received a copy of the GNU General Public License | |
| 16 along with this program; if not, write to the Free Software | |
| 17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 18 | |
| 19 * Created on 15.09.2003 by casties | |
| 20 * | |
| 21 */ | |
| 22 package digilib.servlet; | |
| 23 | |
| 24 import java.io.IOException; | |
| 25 | |
| 26 import javax.servlet.ServletConfig; | |
| 27 import javax.servlet.ServletContext; | |
| 28 import javax.servlet.ServletException; | |
| 29 import javax.servlet.http.HttpServlet; | |
| 30 import javax.servlet.http.HttpServletRequest; | |
| 31 import javax.servlet.http.HttpServletResponse; | |
| 32 | |
| 33 import digilib.Utils; | |
| 34 import digilib.auth.AuthOps; | |
| 35 import digilib.io.DocuDirCache; | |
| 36 import digilib.io.FileOpException; | |
| 37 import digilib.io.FileOps; | |
| 38 import digilib.io.TextFile; | |
| 39 | |
| 40 /** Servlet for displaying text | |
| 41 * | |
| 42 * @author casties | |
| 43 * | |
| 44 */ | |
| 45 public class Texter extends HttpServlet { | |
| 46 | |
| 47 /** Servlet version */ | |
| 48 public static String tlVersion = "0.1a1"; | |
| 49 /** DigilibConfiguration instance */ | |
| 50 DigilibConfiguration dlConfig = null; | |
| 51 /** Utils instance with debuglevel */ | |
| 52 Utils util; | |
| 53 /** FileOps instance */ | |
| 54 FileOps fileOp; | |
| 55 /** AuthOps instance */ | |
| 56 AuthOps authOp; | |
| 57 /** ServletOps instance */ | |
| 58 ServletOps servletOp; | |
| 59 /** DocuDirCache instance */ | |
| 60 DocuDirCache dirCache; | |
| 61 | |
| 62 /** use authentication */ | |
| 63 boolean useAuthentication = false; | |
| 64 | |
| 65 /* (non-Javadoc) | |
| 66 * @see javax.servlet.Servlet#init(javax.servlet.ServletConfig) | |
| 67 */ | |
| 68 public void init(ServletConfig config) throws ServletException { | |
| 69 super.init(config); | |
| 70 | |
| 71 System.out.println( | |
| 72 "***** Digital Image Library Text Servlet (version " | |
| 73 + tlVersion | |
| 74 + ") *****"); | |
| 75 | |
| 76 // get our ServletContext | |
| 77 ServletContext context = config.getServletContext(); | |
| 78 // see if there is a Configuration instance | |
| 79 dlConfig = | |
| 80 (DigilibConfiguration) context.getAttribute( | |
| 81 "digilib.servlet.configuration"); | |
| 82 if (dlConfig == null) { | |
| 83 // create new Configuration | |
| 84 try { | |
| 85 dlConfig = new DigilibConfiguration(config); | |
| 86 context.setAttribute("digilib.servlet.configuration", dlConfig); | |
| 87 } catch (Exception e) { | |
| 88 throw new ServletException(e); | |
| 89 } | |
| 90 } | |
| 91 // first we need an Utils | |
| 92 util = dlConfig.getUtil(); | |
| 93 // set our AuthOps | |
| 94 useAuthentication = dlConfig.getAsBoolean("use-authorization"); | |
| 95 authOp = (AuthOps) dlConfig.getValue("servlet.auth.op"); | |
| 96 // FileOps instance | |
| 97 fileOp = new FileOps(util); | |
| 98 // AuthOps instance | |
| 99 servletOp = new ServletOps(util); | |
| 100 // DocuDirCache instance | |
| 101 dirCache = (DocuDirCache) dlConfig.getValue("servlet.dir.cache"); | |
| 102 } | |
| 103 | |
| 104 /* (non-Javadoc) | |
| 105 * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) | |
| 106 */ | |
| 107 protected void doGet( | |
| 108 HttpServletRequest request, | |
| 109 HttpServletResponse response) | |
| 110 throws ServletException, IOException { | |
| 111 // create new request with defaults | |
| 112 DigilibRequest dlReq = new DigilibRequest(); | |
| 113 // set with request parameters | |
| 114 dlReq.setWithRequest(request); | |
| 115 // add DigilibRequest to ServletRequest | |
| 116 request.setAttribute("digilib.servlet.request", dlReq); | |
| 117 // do the processing | |
| 118 processRequest(request, response); | |
| 119 } | |
| 120 | |
| 121 /* (non-Javadoc) | |
| 122 * @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) | |
| 123 */ | |
| 124 protected void doPost( | |
| 125 HttpServletRequest request, | |
| 126 HttpServletResponse response) | |
| 127 throws ServletException, IOException { | |
| 128 // create new request with defaults | |
| 129 DigilibRequest dlReq = new DigilibRequest(); | |
| 130 // set with request parameters | |
| 131 dlReq.setWithRequest(request); | |
| 132 // add DigilibRequest to ServletRequest | |
| 133 request.setAttribute("digilib.servlet.request", dlReq); | |
| 134 // do the processing | |
| 135 processRequest(request, response); | |
| 136 } | |
| 137 | |
| 138 protected void processRequest( | |
| 139 HttpServletRequest request, | |
| 140 HttpServletResponse response) | |
| 141 throws ServletException, IOException { | |
| 142 | |
| 143 /* | |
| 144 * request parameters | |
| 145 */ | |
| 146 | |
| 147 DigilibRequest dlRequest = | |
| 148 (DigilibRequest) request.getAttribute("digilib.servlet.request"); | |
| 149 | |
| 150 try { | |
| 151 | |
| 152 /* | |
| 153 * find the file to load/send | |
| 154 */ | |
| 155 | |
| 156 // get PathInfo | |
| 157 String loadPathName = dlRequest.getFilePath(); | |
| 158 // find the file(set) | |
| 159 TextFile fileToLoad = | |
| 160 (TextFile) dirCache.getFile( | |
| 161 loadPathName, | |
| 162 dlRequest.getPn(), | |
| 163 FileOps.CLASS_TEXT); | |
| 164 if (fileToLoad == null) { | |
| 165 throw new FileOpException( | |
| 166 "File " | |
| 167 + loadPathName | |
| 168 + "(" | |
| 169 + dlRequest.getPn() | |
| 170 + ") not found."); | |
| 171 } | |
| 172 | |
| 173 /* | |
| 174 * do something with the file | |
| 175 */ | |
| 176 | |
| 177 | |
| 178 | |
| 179 /* | |
| 180 * send the result | |
| 181 */ | |
| 182 | |
| 183 servletOp.sendFile(fileToLoad.getFile(), response); | |
| 184 | |
| 185 | |
| 186 } catch (FileOpException e) { | |
| 187 util.dprintln(1, "ERROR: File IO Error: " + e); | |
| 188 try { | |
| 189 ServletOps.htmlMessage("ERROR: File IO Error: " + e, response); | |
| 190 } catch (FileOpException ex) { | |
| 191 } // so we don't get a loop | |
| 192 } | |
| 193 | |
| 194 } | |
| 195 | |
| 196 } |
