--- /dev/null
+package mir.servlet;
+
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import java.io.File;
+import java.util.Locale;
+
+import mir.misc.HTMLTemplateProcessor;
+import mir.misc.Configuration;
+import mir.misc.Logfile;
+
+/**
+ * Title: Mir
+ * Description: Abstract servlet-class
+ * Copyright: Copyright (c) 2001
+ * Company: Indymedia
+ * @author idfx
+ * @version 1.0
+ */
+
+public abstract class AbstractServlet extends HttpServlet {
+ protected static String lang;
+ protected static Logfile theLog;
+
+ /**
+ * get the configration
+ */
+ protected boolean getConfig(HttpServletRequest req) {
+ Configuration.initConfig(getInitParameter("Config"));
+ theLog = Logfile.getInstance(Configuration.getProperty("Home") + Configuration.getProperty("Mir.Logfile"));
+ theLog.printInfo(super.getServletName() + " started.");
+ return true;
+ }
+
+ /**
+ * Bind the language to the session
+ */
+ protected void setLanguage(HttpServletRequest req, String language){
+ HttpSession session = req.getSession();
+ session.setAttribute("Language",language);
+ }
+
+ /**
+ * Get the session-binded language
+ */
+ protected String getLanguage(HttpServletRequest req){
+ HttpSession session = req.getSession();
+ String lang = (String)session.getAttribute("Language");
+ if(lang==null || lang==""){
+ return getAcceptLanguage(req);
+ } else {
+ return lang;
+ }
+ }
+
+ /**
+ * Checks the Accept-Language of the clients browser.
+ * if this language is available it returns its contry-code,
+ * else it return the standard-language
+ */
+ protected String getAcceptLanguage(HttpServletRequest req){
+ Locale loc = req.getLocale();
+ lang = loc.getLanguage();
+ File f = new File(HTMLTemplateProcessor.templateDir+"/"+lang);
+ //is there an existing template-path?
+ if(!f.isDirectory()){
+ //no there isn't. we use standard-language
+ lang = Configuration.getProperty("StandardLanguage");
+ theLog.printDebugInfo("language not existing");
+ }
+ theLog.printDebugInfo("Language: " + lang);
+ return lang;
+ }
+}
\ No newline at end of file