📄 actioncontext.java
字号:
package com.easyjf.web;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
*
* <p>
* Title:Servlet上下文件处理类
* </p>
* <p>
* Description: 通过使用ThreadLocal变量,实现用户当前访问的Servlet上下文环境访问!<br>
* 通过使用ActionContext,在用户的Action类可以访问servlet相关资源.如要访问session对象,直接使用ActionContext.getContext().getSession()即可!
* </p>
* <p>
* Copyright: Copyright (c) 2006
* </p>
* <p>
* Company: www.easyjf.com
* </p>
*
* @author 蔡世友
* @version 1.0
*/
public class ActionContext {
public static final String HTTP_REQUEST = "request";
public static final String HTTP_RESPONSE = "response";
public static final String HTTP_SESSION = "session";
public static final String HTTP_PARAMETERS = "parameters";
static ThreadLocal actionContext = new ActionContextThreadLocal();
Map context;
public ActionContext(Map context) {
this.context = context;
}
/**
* Sets the action context for the current thread.
*
* @param context
* the action context.
*/
public static void setContext(ActionContext context) {
actionContext.set(context);
}
/**
* Returns the ActionContext specific to the current thread.
*
* @return the ActionContext for the current thread.
*/
public static ActionContext getContext() {
ActionContext context = (ActionContext) actionContext.get();
if (context == null) {
context = new ActionContext(new HashMap());
setContext(context);
}
return context;
}
public void setContextMap(Map contextMap) {
getContext().context = contextMap;
}
public Map getContextMap() {
return context;
}
public HttpServletRequest getRequest() {
HttpServletRequest ret = null;
if (context.containsKey(HTTP_REQUEST))
ret = (HttpServletRequest) context.get(HTTP_REQUEST);
return ret;
}
public HttpServletResponse getResponse() {
HttpServletResponse ret = null;
if (context.containsKey(HTTP_RESPONSE))
ret = (HttpServletResponse) context.get(HTTP_RESPONSE);
return ret;
}
public HttpSession getSession() {
HttpSession ret = null;
if (context.containsKey(HTTP_SESSION))
ret = (HttpSession) context.get(HTTP_SESSION);
else {
HttpServletRequest request = getRequest();
if (request != null)
ret = request.getSession();
}
return ret;
}
public Map getParameters() {
Map ret = null;
if (context.containsKey(HTTP_PARAMETERS))
ret = (Map) context.get(HTTP_PARAMETERS);
else {
HttpServletRequest request = getRequest();
if (request != null)
ret = request.getParameterMap();
}
return ret;
}
public Object get(Object key) {
return context.get(key);
}
public void put(Object key, Object value) {
context.put(key, value);
}
private static class ActionContextThreadLocal extends ThreadLocal {
protected synchronized Object initialValue() {
return new ActionContext(new HashMap());
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -