📄 sessionprocessor.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 + -