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

📄 sessionprocessor.java

📁 这里是一个构建简单web服务器的部分java 代码3
💻 JAVA
字号:
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Hashtable;

public class SessionProcessor {
	
	/* 获取sessionid */
	public String getsessionid(String s) {
		String sid = s;
		int i = sid.indexOf("=");
		try {
			if (i != -1) {
				sid = sid.substring(i + 1);
				sid = sid.substring(0, sid.indexOf(' '));
			} else
				sid = null;
		} catch (Exception e) {
			System.out.println("e.toString()");
		}
		System.out.println("sessionid=" + sid);
		return sid;
	}
	
	// session处理
	public String session(String sessionid) {
		Date date = new Date();
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String timenow = df.format(date).toString();
		ghashtable HT = new ghashtable();
		String sid = sessionid;
		if (sid == null) {
			sid = createsession(timenow, HT.HT);
			System.out.println("create a a new session and the sessionid is "
					+ sid);
		} else {
			try {
				if (searchsession(sid, HT.HT)) {
					System.out.println("yes! this session cell exsit");
				} else {
					sid = createsession(timenow, HT.HT);
					System.out
							.println("cannot find the session information,now create a new!");
					System.out
							.println("create a a new session and the sessionid is "
									+ sid);
				}
			} catch (Exception e) {
				System.out.println(e.toString());
			}
		}
		return sid;
	}

	// 创建session(用hashtable实现)
	private String createsession(String timenow, Hashtable ht) {
		String s = timenow;
		// Hashtable cht= ht;
		ssvalue va = new ssvalue();
		sskey ke = new sskey();
		va.s1 = s;
		String temp = (String) ke.sskey();
		ht.put(temp, va.ssvalue());
		return temp;
	}

	// 搜索session信息 用get()实现
	private boolean searchsession(String sessionid, Hashtable ht) {
		String sid = sessionid;
		// Hashtable sht=ht;
		String temp = (String) ht.get(sid);
		if (temp == null) {
			return false;
		} else {
			return true;
		}
	}
}

// 定义加入hashtable(必须以类的形式)中的值
class ssvalue {
	String s1;

	String ssvalue() {
		return s1;
	}
}

//定义加入hashtable(必须以类的形式)中的检索码(这就是sessionid)
//产生8位随机字符串
class sskey {
	String sskey() {
		char[] cc = new char[10];
		for (int i = 0; i < cc.length; i++) {
			while (cc[i] < 'A' || cc[i] > 'Z')
				cc[i] = (char) (Math.random() * (int) 'Z');
		}// end for
		String str = new String("");
		for (int i = 0; i < cc.length; i++)
			str += cc[i];
		return str;
	}
}

//用类来解决多线程公用hashtable的问题
class ghashtable {
	static final Hashtable HT = new Hashtable();
}

⌨️ 快捷键说明

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