浏览器session的变态问题 !急
servlet 代码:public class FileUploadServlet extends HttpServlet {
private static final long serialVersionUID = -7825355637448948879L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try{
if(request.getSession().getAttribute("sessionmember") == null){
System.out.println("sssss");
}
Member sessionMember = (Member) request.getSession().getAttribute("sessionmember");
} catch(Exception e){
}finally{
try {
HibernateUtil.endSession();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
在IE 火狐、谷歌浏览器中都可以取到session中的值 唯一在变态的360极速浏览器中死活取不到session值
--------------------编程问答-------------------- 别理360 --------------------编程问答-------------------- 我也不想用啊 但是客户非得要求!哎万恶的浏览器折磨死人啊!该死的360 --------------------编程问答-------------------- 代码有问题吧,哪有这样的逻辑,如果session中取不到,那么输出,然后还继续取? --------------------编程问答-------------------- 我这只是说明性的代码 使用其他浏览器都能得到 就是360极速不行 --------------------编程问答-------------------- 换种写法呗,还能怎样?
客户是上帝,360用的人确实不少,这个要求很正常! --------------------编程问答-------------------- 话说,session依赖cookies的
再说了,实在不行,通过url回传是杀手锏,就算禁用cookies都不怕 --------------------编程问答-------------------- 对了,别误会,我说的是回传sessionid,具体session值用数据库或者全局map<string,map<>>保存 --------------------编程问答-------------------- 360才是最大的病毒 --------------------编程问答-------------------- 360有那么变态吗?我都没有用,都是用的火狐 --------------------编程问答-------------------- 查看浏览器是否禁用cookie。 --------------------编程问答--------------------
为什么用map<string,map<>>? --------------------编程问答--------------------
额~~
首先,每个访客的session都是Map<K,V>结构的吧,然后,每个访客都有一个sessionid作为索引,那么要存储所有访客的session不就得是map<string,map<>>结构么?
String sessionid
String key
String value=globalSession.get(sessionid).get(key) --------------------编程问答-------------------- 好象是这么回事 --------------------编程问答-------------------- 360浏览器 取真实IP地址都比较麻烦
补充:Java , Web 开发