我用ssm写了一个网上商城,目前需求是用户输入账号密码点击登陆后,handler
将数据库内该用户的id取出来,然后反馈给其他所有jsp界面。但是handler只能将id
retuen给指定的一个界面,其余的jsp就没办法接收到id,这样该怎么办呢。
以下为handler代码,获取到了uid,但只能传给index.jsp这一个界面,别的jsp获取不到,在别的jsp中输入 <%session.getAttribute("uid");%>得到的为null,只有在index中才会得到真正的uid
//如果账号密码都是正确的,则会有数据
if(dao.selectUserByNameAndPassword(user)!=null){
//获取该用户的用户ID
int uid=dao.selectUserByNameAndPassword(user).getId();
session.setAttribute("uid",uid);
return "index";
}else{
map.put("msg", "账号或密码错误!");
return "login";
}
您可以在handler中使用以下代码将uid存储到全局的session中,然后在其他jsp文件中通过session.getAttribute("uid")获取到该值:
//如果账号密码都是正确的,则会有数据
if(dao.selectUserByNameAndPassword(user)!=null){
//获取该用户的用户ID
int uid=dao.selectUserByNameAndPassword(user).getId();
//将uid存储到session中
request.getSession().setAttribute("uid", uid);
return "index";
}else{
map.put("msg", "账号或密码错误!");
return "login";
}
您可以在其他jsp文件中通过session.getAttribute("uid")来获取到该值,如下所示:
<%
int uid = (int) session.getAttribute("uid");
%>
或者通过EL表达式来获取到该值,如下所示:
${sessionScope.uid}