httpcontext.java

来自「一个用struts tiles的在线影院web系统」· Java 代码 · 共 76 行

JAVA
76
字号
package com.eline.vod;

import java.security.Principal;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.eline.vod.security.Users;
import com.eline.vod.security.model.User;

/**
 * Http上下文
 * @author Lucifer
 *
 */
public class HttpContext {

	/**
	 * 本地线程槽数据
	 */
	private static ThreadLocal threadSlotData = new ThreadLocal() {
		protected Object initialValue() {
			return null;
		}
	};
	public static synchronized HttpContext getCurrent() {
		return (HttpContext) threadSlotData.get();
	}
	public static synchronized void setCurrent(HttpContext ctx) {
		threadSlotData.set(ctx);
	}

	private HttpServletRequest request;
	private HttpServletResponse response;
	private User user;
	
	public HttpContext() {
		request = null;
		response = null;
		user = null;
	}
	public HttpContext(HttpServletRequest request, HttpServletResponse response) {
		this.init(request, response);
	}
	public void init(HttpServletRequest request, HttpServletResponse response) {
		this.request = request;
		this.response = response;
		user = null;
	}
	public HttpServletRequest getRequest() {
		return request;
	}
	public void setRequest(HttpServletRequest request) {
		this.request = request;
	}
	public HttpServletResponse getResponse() {
		return response;
	}
	public void setResponse(HttpServletResponse response) {
		this.response = response;
	}
	public User getUser() {
		Principal p = request.getUserPrincipal();
		if (user == null || !user.getUserName().equalsIgnoreCase(p.getName())) {
			if (p != null) {
				User newUser = Users.getUser(0, p.getName(), true, true);
				if (newUser != null && !newUser.isAnonymous())
					user = newUser;
			}
			if (user == null)
				return Users.getAnonymousUser(true);	// 匿名用户比较多的情况,从缓冲区获取信息
		}
		return user;
	}
}

⌨️ 快捷键说明

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