⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bespincontroller.java

📁 在线编辑器
💻 JAVA
字号:
package com.mozilla.bespin.controllers;import com.mozilla.bespin.Controller;import com.mozilla.bespin.FileSystem;import com.mozilla.bespin.UserSession;import com.mozilla.bespin.SessionTracker;import java.io.IOException;import java.util.HashMap;import java.util.Map;import org.apache.commons.io.FileUtils;public class BespinController extends Controller {    private static final String KEY_SESSION_TRACKER = "bespin.controller.session_tracker";    private static final String KEY_FILESYSTEM = "bespin.controller.filesystem";    private static final String KEY_USER_SETTINGS = "bespin.controller.usersettings";    @Override    protected boolean isAuthenticated() {        return getCtx().getReq().getSession(true).getAttribute("userSession") != null;    }    protected synchronized FileSystem getFilesystem() throws IOException {        FileSystem filesys = (FileSystem) getCtx().getServletContext().getAttribute(KEY_FILESYSTEM);        if (filesys == null) {            createFileSystemAndSessionTracker();            filesys = (FileSystem) getCtx().getServletContext().getAttribute(KEY_FILESYSTEM);        }        return filesys;    }    protected void createFileSystemAndSessionTracker() throws IOException {        String base = getCtx().getServletConfig().getInitParameter("base");        if (base == null) throw new IOException("File system not seeded with base directory and could not be mounted (this is for you, Netbeans)");        String template = getCtx().getServletConfig().getInitParameter("template");        if (template == null) throw new IOException("Template directory not provided");        java.io.File baseDir = new java.io.File(base);        java.io.File templateDir = new java.io.File(template);        FileSystem filesys = new FileSystem(baseDir, templateDir);        getCtx().getServletContext().setAttribute(KEY_FILESYSTEM, filesys);        SessionTracker sessions = new SessionTracker();        getCtx().getServletContext().setAttribute(KEY_SESSION_TRACKER, sessions);    }    protected synchronized SessionTracker getSessionTracker() throws IOException {        SessionTracker sessions = (SessionTracker) getCtx().getServletContext().getAttribute(KEY_SESSION_TRACKER);        if (sessions == null) {            createFileSystemAndSessionTracker();            sessions = (SessionTracker) getCtx().getServletContext().getAttribute(KEY_SESSION_TRACKER);        }        return sessions;    }    /**     * Return the settings for the current user; returns null if there is no current user     * @return     */    protected synchronized Map<String, String> getUserSettings() {        UserSession session = (UserSession) getCtx().getReq().getSession(true).getAttribute("userSession");        if (session == null) return null;        Map<UserSession, Map<String, String>> settingsMap = (Map<UserSession, Map<String, String>>) getCtx().getServletContext().getAttribute(KEY_USER_SETTINGS);        if (settingsMap == null) {            settingsMap = new HashMap<UserSession, Map<String, String>>();            getCtx().getServletContext().setAttribute(KEY_USER_SETTINGS, settingsMap);        }        Map<String, String> settings = settingsMap.get(session);        if (settings == null) {            settings = new HashMap<String, String>();            settingsMap.put(session, settings);        }        return settings;    }    protected String getPath() {        StringBuilder builder = new StringBuilder();        for (String pathItem : getCtx().getParameterList()) {            if (builder.length() != 0) builder.append("/"); // using "/" instead of File.separator because these paths are used as keys in hashes that may cross OS boundaries            builder.append(pathItem);        }        return builder.toString();    }    protected UserSession getUser() {        return (UserSession) getCtx().getReq().getSession(true).getAttribute("userSession");    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -