env.java
来自「RESIN 3.2 最新源码」· Java 代码 · 共 3,016 行 · 第 1/5 页
JAVA
3,016 行
_removePaths.add(path); } /** * Returns the request. */ public HttpServletRequest getRequest() { return _request; } /** * Returns the most recently modified time of all of the {@link Path}'s that * have been used for this Env, or 0 if that cannot be determined. */ /* public long getLastModified() { long lastModified = 0; if (_page != null) { Path pagePath = _page.getSelfPath(this); if (pagePath != null) lastModified = pagePath.getLastModified(); } for (Path includePath : _includeSet) { long includeLastModified = includePath.getLastModified(); if (lastModified < includeLastModified) lastModified = includeLastModified; } return lastModified; } */ /** * Returns the response. */ public HttpServletResponse getResponse() { return _response; } /** * Sets the session callback. */ public void setSessionCallback(SessionCallback callback) { _sessionCallback = callback; } /** * Gets the session callback. */ public SessionCallback getSessionCallback() { return _sessionCallback; } /** * Returns the session. */ public SessionArrayValue getSession() { return _session; } /** * Returns the Java Http session. */ public HttpSession getJavaSession() { return _javaSession; } /** * Sets the session. */ public void setSession(SessionArrayValue session) { _session = session; if (session != null) { Value var = getGlobalVar("_SESSION"); if (! (var instanceof SessionVar)) { var = new SessionVar(); setGlobalValue("_SESSION", var); } var.set(session); setGlobalValue("HTTP_SESSION_VARS", session); session.addUse(); } else { // php/1k0v Value v = getGlobalVar("_SESSION"); if (v != null) v.set(UnsetValue.UNSET); v = getGlobalVar("HTTP_SESSION_VARS"); if (v != null) v.set(UnsetValue.UNSET); } } /** * Returns a new session id. */ public String generateSessionId() { String sessionId = _quercus.getQuercusSessionManager().createSessionId(this); if (_javaSession != null) sessionId = _javaSession.getId().substring(0, 3) + sessionId.substring(3); return sessionId; } /** * Create the session. */ public SessionArrayValue createSession(String sessionId, boolean create) { long now = Alarm.getCurrentTime(); SessionCallback callback = getSessionCallback(); _javaSession = _request.getSession(true); if (create && _javaSession.getId().length() >= 3 && sessionId.length() >= 3) sessionId = _javaSession.getId().substring(0, 3) + sessionId.substring(3); SessionArrayValue session = _quercus.loadSession(this, sessionId); if (callback != null) { StringValue value = callback.read(this, sessionId); if (value != null && value.length() != 0) { Value unserialize = VariableModule.unserialize(this, value); if (unserialize instanceof ArrayValue) { ArrayValue arrayValue = (ArrayValue) unserialize; session.reset(now); session.putAll(arrayValue); } } } setSession(session); return session; } /** * Destroy the session. */ public void destroySession(String sessionId) { SessionCallback callback = getSessionCallback(); if (callback != null) { callback.destroy(this, sessionId); } else { _quercus.destroySession(sessionId); } setSession(null); } /** * Returns the logger used for syslog. */ public Logger getLogger() { if (_logger == null) _logger = Logger.getLogger("quercus.quercus"); return _logger; } /** * Returns the configuration value of an init var. */ public Value getConfigVar(String name) { return getIniDefinition(name).getValue(_quercus); } /** * Returns a map of the ini values that have been explicitly set. */ public IdentityHashMap<String, Value> getIniMap(boolean create) { if (_iniMap == null && create) _iniMap = new IdentityHashMap<String,Value>(); return _iniMap; } /** * Sets an ini value. */ public StringValue setIni(String name, Value value) { _iniCount++; StringValue oldValue = getIni(name); getIniDefinition(name).set(this, value); return oldValue; } /** * Sets an ini value. */ public StringValue setIni(String name, String value) { _iniCount++; StringValue oldValue = getIni(name); getIniDefinition(name).set(this, value); return oldValue; } /** * Returns an ini value. */ public StringValue getIni(String name) { return getIniDefinition(name).getAsStringValue(this); } private IniDefinition getIniDefinition(String name) { return _quercus.getIniDefinitions().get(name); } /** * Returns an ini value. */ public boolean getIniBoolean(String name) { return getIniDefinition(name).getAsBoolean(this); } /** * Returns an ini value as a long. */ public long getIniLong(String name) { return getIniDefinition(name).getAsLong(this); } /** * Returns an ini value as a string, null for missing or empty string */ public String getIniString(String name) { return getIniDefinition(name).getAsString(this); } /** * Returns an ini value. */ public long getIniBytes(String name, long deflt) { return getIniDefinition(name).getAsLongBytes(this, deflt); } /** * Returns the ByteToChar converter. */ public ByteToChar getByteToChar() { return ByteToChar.create(); } /** * Returns the 'this' value. */ public Value getThis() { return _this; } /** * Sets the 'this' value, returning the old value. */ public Value setThis(Value value) { Value oldThis = _this; _this = value.toValue(); return oldThis; } /** * Gets a value. */ public Value getValue(String name) { Var var = getRef(name); if (var != null) return var.toValue(); else return NullValue.NULL; } /** * Gets a special value, a special value is used to store and retrieve module * specific values in the env using a unique name. */ public Object getSpecialValue(String name) { return _specialMap.get(name); } /** * Gets a global */ public Value getGlobalValue(String name) { Var var = getGlobalRef(name); if (var != null) return var.toValue(); else return NullValue.NULL; } /** * Gets a variable * * @param name the variable name * @param var the current value of the variable */ public final Var getVar(String name, Value value) { if (value != null) return (Var) value; Var var = _map.get(name); if (var != null) return var; var = getRef(name); if (var == null) { var = new Var(); if (_map == _globalMap) var.setGlobal(); _map.put(name, var); } return var; } /** * Gets a variable * * @param name the variable name * @param value the current value of the variable */ public final Var getGlobalVar(String name, Value value) { if (value != null) return (Var) value; Var var = _globalMap.get(name); if (var != null) return var; var = getSpecialRef(name); if (var == null) { var = new Var(); var.setGlobal(); } _globalMap.put(name, var); return var; } /** * Gets a static variable name. */ public final String createStaticName() { return _quercus.createStaticName(); } /** * Gets a static variable * * @param name the variable name */ public final Var getStaticVar(String name) { Var var = _staticMap.get(name); if (var == null) { var = new Var(); var.setGlobal(); _staticMap.put(name, var); } return var; } /** * Unsets variable * * @param name the variable name */ public final Var unsetVar(String name) { _map.remove(name); return null; } /** * Gets a variable * * @param name the variable name * @param value the current value of the variable */ public final Var setVar(String name, Value value) { Var var; if (value instanceof Var) { var = (Var) value; if (_map == _globalMap) var.setGlobal(); } else var = new Var(value.toValue()); _map.put(name, var); return var; } /** * Unsets variable * * @param name the variable name */ public final Var unsetLocalVar(String name) { _map.remove(name); return null; } /** * Unsets variable * * @param name the variable name */ public final Var unsetGlobalVar(String name) { Var oldVar = _globalMap.remove(name); if (oldVar != null) oldVar.set(UnsetValue.UNSET); return null; } /** * Gets a local * * @param var the current value of the variable */ public static final Value getLocalVar(Value var) { if (var == null) var = new Var(); return var; } /** * Gets a local value * * @param var the current value of the variable */ public static final Value getLocalValue(Value var) { if (var != null) return var; else return NullValue.NULL; } /** * Gets a local * * @param var the current value of the variable */ public static final Value setLocalVar(Value var, Value value) { value = value.toValue(); if (var instanceof Var) var.set(value); return value; } /** * Gets a value. */ public Var getRef(String name) { Var var = _map.get(name); if (var == null) { var = getSpecialRef(name); if (var != null) { var.setGlobal(); _globalMap.put(name, var); var = _map.get(name); } } return var; } /** * Returns the raw global lookup. */ public Var getGlobalRaw(String name) { return _globalMap.get(name); } /** * Gets a global value. */ public Var getGlobalRef(String name) { Var var = _globalMap.get(name); if (var == null) { var = getSpecialRef(name); if (var == null) var = new Var(); _globalMap.put(name, var); } return var; } /** * Gets a value. */ public Var getSpecialRef(String name) { Var var = null; switch (SPECIAL_VARS.get(name)) { case _ENV: { var = new Var(); _globalMap.put(name, var); var.set(new ArrayValueImpl()); return var; } case HTTP_POST_VARS: if (! Quercus.INI_REGISTER_LONG_ARRAYS.getAsBoolean(this)) return null; case _POST: {
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?