关于登录、退出信息得不到保存的问题:
登录程序:
public ActionForward searchLogin(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception
{
//三种不同会员
request.getSession().removeAttribute("individual");
request.getSession().removeAttribute("clinique");
request.getSession().removeAttribute("manufacturer");
String ro = request.getParameter("ro");
String username = request.getParameter("uname");
String password = request.getParameter("pw");
if ("1".equals(ro))
{
Manufacturer manufacturer = loginBiz.validateManufacturer(username,password);
if (null != manufacturer)
{
request.getSession().setAttribute("manufacturer", manufacturer);
try
{
manufacturer.setLastLoginTime(manufacturer.getNowLoginTime());
manufacturer.setNowLoginTime(org.tol.util.DateFormat.getDate());
//用户登录时更新其登录状态
manufacturer.setIsOnline("1");
userInfoBiz.upM_user(manufacturer);
}
catch (Exception e){}
request.setAttribute("ro", ro);
request.setAttribute("uname", username);
request.setAttribute("pw", password);
}
else
{
request.setAttribute("ro", 123);
request.setAttribute("uname", "1");
request.setAttribute("pw", "2");
}
}
if ("2".equals(ro))
{
Clinique clinique = loginBiz.validateClinique(username, password);
if (null != clinique)
{
request.getSession().setAttribute("clinique", clinique);
clinique.setLastLoginTime(clinique.getNowLoginTime());
clinique.setNowLoginTime(org.tol.util.DateFormat.getDate());
//用户登录时更新其登录状态
clinique.setIsOnline("1");
userInfoBiz.upC_user(clinique);
request.setAttribute("ro", ro);
request.setAttribute("uname", username);
request.setAttribute("pw", password);
} else
{
request.setAttribute("ro", 123);
request.setAttribute("uname", "1");
request.setAttribute("pw", "2");
}
}
if ("3".equals(ro))
{
Individual individual = loginBiz.validateIndividual(username,
password);
if (null != individual)
{
request.getSession().setAttribute("individual", individual);
individual.setLastLoginTime(individual.getNowLoginTime());
individual.setNowLoginTime(org.tol.util.DateFormat.getDate());
//用户登录时更新其登录状态
individual.setIsOnline("1");
userInfoBiz.upI_user(individual);
request.setAttribute("ro", ro);
request.setAttribute("uname", username);
request.setAttribute("pw", password);
} else
{
request.setAttribute("ro", 123);
request.setAttribute("uname", "1");
request.setAttribute("pw", "2");
}
}
return new ActionForward("/jsp/AjaxSearch.jsp");
}
退出:
public ActionForward clearSessionIndex(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response)
{
Individual individual = (Individual)request.getSession().getAttribute("individual");
Clinique clinique = (Clinique)request.getSession().getAttribute("clinique");
Manufacturer manufacturer = (Manufacturer)request.getSession().getAttribute("manufacturer");
if(individual != null)
{
//用户退出更新其登录状态
individual.setIsOnline("0");
this.userInfoBiz.upI_user(individual);
request.getSession().removeAttribute("individual");
}
if(clinique != null)
{
//用户退出更新其登录状态
clinique.setIsOnline("0");
this.userInfoBiz.upC_user(clinique);
request.getSession(true).removeAttribute("clinique");
}
if(manufacturer != null)
{
//用户退出更新其登录状态
manufacturer.setIsOnline("0");
this.userInfoBiz.upM_user(manufacturer);
request.getSession(true).removeAttribute("manufacturer");
}
return null;
}
退出时先执行(在执行上面的):
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="org.tol.model.*,org.tol.dao.*,java.util.*"%>
<%
Individual ind = (Individual) request.getSession().getAttribute("individual");
Clinique cli = (Clinique) request.getSession().getAttribute("clinique");
Manufacturer man = (Manufacturer) request.getSession().getAttribute("manufacturer");
if (null != ind)
{
List list = new ArrayList();
list = (List) application.getAttribute("findUser");
List aaa = new ArrayList();
if (null != list)
{
if (list.size() > 0)
{
for (int i = 0; i < list.size(); i++)
{
if ((ind.getI_username() + "3").equals((String) list.get(i)))
{
aaa.add((String) list.get(i));
}
}
list.removeAll(aaa);
application.setAttribute("findUser", list);
}
}
}
if (null != cli)
{
List list = new ArrayList();
list = (List) application.getAttribute("findUser");
List aaa = new ArrayList();
if (null != list)
{
if (list.size() > 0)
{
for (int i = 0; i < list.size(); i++)
{
if ((cli.getC_username() + "2")
.equals((String) list.get(i)))
{
aaa.add((String) list.get(i));
}
}
list.removeAll(aaa);
application.setAttribute("findUser", list);
}
}
}
if (null != man)
{
List list = new ArrayList();
list = (List) application.getAttribute("findUser");
List aaa = new ArrayList();
if (null != list)
{
if (list.size() > 0)
{
for (int i = 0; i < list.size(); i++)
{
if ((man.getM_username() + "1")
.equals((String) list.get(i)))
{
aaa.add((String) list.get(i));
}
}
list.removeAll(aaa);
System.out.println(list.size());
application.setAttribute("findUser", list);
}
}
}
%>
问题:比如:当修改用户信息后(如修改用户头像),马上退出的话,信息得不到保存,但修改时,数据库已经修改成功了,退出后:数据库记录又回到修改前的状态,我退出时,并没有写任何修改用户的方法。
但当session 失效后,数据是得到保存的。
疑惑2:
在IE浏览器登录修改信息后,再打开FF浏览器,登录,然后退出,没有任何问题,信息依旧存在。
急啊......
大虾们....请教了......
登录程序:
public ActionForward searchLogin(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception
{
//三种不同会员
request.getSession().removeAttribute("individual");
request.getSession().removeAttribute("clinique");
request.getSession().removeAttribute("manufacturer");
String ro = request.getParameter("ro");
String username = request.getParameter("uname");
String password = request.getParameter("pw");
if ("1".equals(ro))
{
Manufacturer manufacturer = loginBiz.validateManufacturer(username,password);
if (null != manufacturer)
{
request.getSession().setAttribute("manufacturer", manufacturer);
try
{
manufacturer.setLastLoginTime(manufacturer.getNowLoginTime());
manufacturer.setNowLoginTime(org.tol.util.DateFormat.getDate());
//用户登录时更新其登录状态
manufacturer.setIsOnline("1");
userInfoBiz.upM_user(manufacturer);
}
catch (Exception e){}
request.setAttribute("ro", ro);
request.setAttribute("uname", username);
request.setAttribute("pw", password);
}
else
{
request.setAttribute("ro", 123);
request.setAttribute("uname", "1");
request.setAttribute("pw", "2");
}
}
if ("2".equals(ro))
{
Clinique clinique = loginBiz.validateClinique(username, password);
if (null != clinique)
{
request.getSession().setAttribute("clinique", clinique);
clinique.setLastLoginTime(clinique.getNowLoginTime());
clinique.setNowLoginTime(org.tol.util.DateFormat.getDate());
//用户登录时更新其登录状态
clinique.setIsOnline("1");
userInfoBiz.upC_user(clinique);
request.setAttribute("ro", ro);
request.setAttribute("uname", username);
request.setAttribute("pw", password);
} else
{
request.setAttribute("ro", 123);
request.setAttribute("uname", "1");
request.setAttribute("pw", "2");
}
}
if ("3".equals(ro))
{
Individual individual = loginBiz.validateIndividual(username,
password);
if (null != individual)
{
request.getSession().setAttribute("individual", individual);
individual.setLastLoginTime(individual.getNowLoginTime());
individual.setNowLoginTime(org.tol.util.DateFormat.getDate());
//用户登录时更新其登录状态
individual.setIsOnline("1");
userInfoBiz.upI_user(individual);
request.setAttribute("ro", ro);
request.setAttribute("uname", username);
request.setAttribute("pw", password);
} else
{
request.setAttribute("ro", 123);
request.setAttribute("uname", "1");
request.setAttribute("pw", "2");
}
}
return new ActionForward("/jsp/AjaxSearch.jsp");
}
退出:
public ActionForward clearSessionIndex(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response)
{
Individual individual = (Individual)request.getSession().getAttribute("individual");
Clinique clinique = (Clinique)request.getSession().getAttribute("clinique");
Manufacturer manufacturer = (Manufacturer)request.getSession().getAttribute("manufacturer");
if(individual != null)
{
//用户退出更新其登录状态
individual.setIsOnline("0");
this.userInfoBiz.upI_user(individual);
request.getSession().removeAttribute("individual");
}
if(clinique != null)
{
//用户退出更新其登录状态
clinique.setIsOnline("0");
this.userInfoBiz.upC_user(clinique);
request.getSession(true).removeAttribute("clinique");
}
if(manufacturer != null)
{
//用户退出更新其登录状态
manufacturer.setIsOnline("0");
this.userInfoBiz.upM_user(manufacturer);
request.getSession(true).removeAttribute("manufacturer");
}
return null;
}
退出时先执行(在执行上面的):
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="org.tol.model.*,org.tol.dao.*,java.util.*"%>
<%
Individual ind = (Individual) request.getSession().getAttribute("individual");
Clinique cli = (Clinique) request.getSession().getAttribute("clinique");
Manufacturer man = (Manufacturer) request.getSession().getAttribute("manufacturer");
if (null != ind)
{
List list = new ArrayList();
list = (List) application.getAttribute("findUser");
List aaa = new ArrayList();
if (null != list)
{
if (list.size() > 0)
{
for (int i = 0; i < list.size(); i++)
{
if ((ind.getI_username() + "3").equals((String) list.get(i)))
{
aaa.add((String) list.get(i));
}
}
list.removeAll(aaa);
application.setAttribute("findUser", list);
}
}
}
if (null != cli)
{
List list = new ArrayList();
list = (List) application.getAttribute("findUser");
List aaa = new ArrayList();
if (null != list)
{
if (list.size() > 0)
{
for (int i = 0; i < list.size(); i++)
{
if ((cli.getC_username() + "2")
.equals((String) list.get(i)))
{
aaa.add((String) list.get(i));
}
}
list.removeAll(aaa);
application.setAttribute("findUser", list);
}
}
}
if (null != man)
{
List list = new ArrayList();
list = (List) application.getAttribute("findUser");
List aaa = new ArrayList();
if (null != list)
{
if (list.size() > 0)
{
for (int i = 0; i < list.size(); i++)
{
if ((man.getM_username() + "1")
.equals((String) list.get(i)))
{
aaa.add((String) list.get(i));
}
}
list.removeAll(aaa);
System.out.println(list.size());
application.setAttribute("findUser", list);
}
}
}
%>
问题:比如:当修改用户信息后(如修改用户头像),马上退出的话,信息得不到保存,但修改时,数据库已经修改成功了,退出后:数据库记录又回到修改前的状态,我退出时,并没有写任何修改用户的方法。
但当session 失效后,数据是得到保存的。
疑惑2:
在IE浏览器登录修改信息后,再打开FF浏览器,登录,然后退出,没有任何问题,信息依旧存在。
急啊......
大虾们....请教了......
解决方案 »
- 网易邮箱里面有个数据账单的柱形图不知是怎么弄的,大家讨论讨论
- Spring 运行时动态加载修改过的 配置文件。
- 我就不明白了!为什么有了dwr了还会产生出那么多的比如说extjs,jquery!这么些框架呢!
- webservice服务端能否返回流对象
- 我们学习了java基础正在学jsp,以后学javaee,请问各位过来人有没有推荐的书籍或是方法?谢谢
- ejb分布式的疑惑
- 通过超链接跳转到另外一个jsp页面,怎样保存原有的session
- 急需spring+hibernate+struts的项目?
- 刚学EJB,来这拜个师
- 文一个关于gif图片的问题!
- 将pdf文件转换成swf文件怎么分页啊?
- struts Action中如何处理JSON对象
修改信息的service事物是怎么处理的?
System.out.println("用户头像:"+manufacturer.getPhoto());//程序执行到这的时候可以打印出头像地址并且数据的photo自段也有值
request.getSession().removeAttribute("manufacturer");//程序执行这句后,数据库的值就变空了真是太奇怪了.....数据库也没有开启事务管理机制。求解?