请帮我看下这两个代码,帮我讲解一下:为什么注册与登陆需要“session.removeAttribute()”这个,用意何在?
用户注册
      public ActionForward register(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws ServiceException {
HttpSession session = request.getSession();
session.removeAttribute("loginUser");
session.removeAttribute("username");
session.removeAttribute("name");
session.removeAttribute("userid");
session.removeAttribute("userRole");
      saveToken(request);
int errorid= 400;
String id =request.getParameter("errorid");
if(id != null){
errorid = Integer.parseInt(id);
}
String city=this.validateCity(request);
request.setAttribute("errormsg", getMsgByErrorid(errorid));
String cityCode = this.areaService.getCitycodeBySpellname(city);
CCity CCity = this.areaService.getCityByCode(cityCode);
String cityName = CCity.getCityName();
String provinceName = CCity.getCProvince().getProvinceName();
String provinceCode = CCity.getCProvince().getProvinceCode();
List CAreaList =  this.areaService.getAreaByCityCode(CCity);
request.setAttribute("cityCode", cityCode);
request.setAttribute("cityName", cityName);
request.setAttribute("provinceName", provinceName);
request.setAttribute("provinceCode", provinceCode);
request.setAttribute("CAreaList", CAreaList);
return mapping.findForward("register");
}
/**
 * @author hjjiang
 * @throws IOException 
 * @desc 用户登录
 */

public ActionForward userLogin(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws ServiceException, IOException {
HttpSession session = request.getSession();

String nextUrl = (String)session.getAttribute("nextUrl");
session.setAttribute("nextUrl",nextUrl);
session.removeAttribute("loginUser");
session.removeAttribute("username");
session.removeAttribute("name");
session.removeAttribute("userid");
session.removeAttribute("userRole");
this.validateCity(request);
return mapping.findForward("login");
}

解决方案 »

  1.   

    清除session清除以前用户登录信息
      

  2.   

    是当我们登陆注册页面时,系统自动删除先前的用户信息,以便于我们可以在空白区域填写资料,然后再通过request返回新用户信息?
      

  3.   

    就是清除session!
    session.removeAttribute("wangxin") 会把session中"wangxin"这个属性(及其值)删除,一般用做实现用户退出(logout),使用户信息失效。 
      

  4.   

    恩,logout里面有个,那为什么注册和登录也需要有这一块呢?
      

  5.   

    在登陆之前
    session.removeAttribute("loginUser"); 
    session.removeAttribute("username"); 
    session.removeAttribute("name"); 
    session.removeAttribute("userid"); 
    session.removeAttribute("userRole"); 有可能这个用户先拿一个帐号登陆过了,再没有退出的情况下,又再用另外一个帐号登陆,所以要清除上一个帐号的登陆session信息,放入新的session.
    注册后是不是会自动登陆,如果是的话,与上同理,因为登陆后会进入登陆状态,那么和上边一样,清除上一个帐号的登陆session信息,放入新的session