3 import javax.servlet.http.HttpServlet;
4 import javax.servlet.http.HttpServletRequest;
5 import javax.servlet.http.HttpSession;
6 import javax.servlet.UnavailableException;
8 import java.util.Locale;
9 import java.util.HashMap;
11 import mir.misc.HTMLTemplateProcessor;
12 import mir.misc.StringUtil;
13 import mir.misc.MirConfig;
14 import mir.misc.Logfile;
15 import mir.storage.StorageObjectException;
19 * Description: Abstract servlet-class
20 * Copyright: Copyright (c) 2001
26 public abstract class AbstractServlet extends HttpServlet {
27 protected static String lang;
28 protected static Logfile theLog;
33 protected boolean getConfig(HttpServletRequest req)
34 throws UnavailableException {
36 String RealPath = super.getServletContext().getRealPath("/");
37 String Uri = req.getRequestURI();
38 String Name = super.getServletName();
39 String RootUri = StringUtil.replace(Uri, "/servlet/" + Name, "");
42 MirConfig.initConfig(RealPath, RootUri, Name, getInitParameter("Config"));
44 theLog = Logfile.getInstance(MirConfig.getPropWithHome(Name+".Logfile"));
45 theLog.printInfo(Name + " started.");
46 theLog.printInfo("Path is: " + MirConfig.getProp("Home"));
47 theLog.printInfo("Root URI is: " + MirConfig.getProp("RootUri"));
48 theLog.printInfo("Lang is: " + MirConfig.getProp("StandardLanguage"));
50 MirConfig.initDbPool();
51 } catch ( StorageObjectException e) {
52 throw new UnavailableException(
53 "Could not initialize database pool. -- "
56 super.getServletContext().setAttribute("mir.confed", new Boolean(true));
61 * Bind the language to the session
63 protected void setLanguage(HttpSession session, String language){
64 session.setAttribute("Language",language);
68 * Get the session-bound language
70 protected String getLanguage(HttpServletRequest req, HttpSession session){
71 String lang = (String)session.getAttribute("Language");
72 if(lang==null || lang.equals("")){
73 return getAcceptLanguage(req);
80 * Checks the Accept-Language of the client browser.
81 * If this language is available it returns its country-code,
82 * else it returns the standard-language
84 protected String getAcceptLanguage(HttpServletRequest req){
85 Locale loc = req.getLocale();
86 lang = loc.getLanguage();
87 File f = new File(HTMLTemplateProcessor.templateDir+"/"+lang);
88 //is there an existing template-path?
90 //no there isn't. we use standard-language
91 lang = MirConfig.getProp("StandardLanguage");
92 theLog.printDebugInfo("language not existing");
94 theLog.printDebugInfo("Language: " + lang);