我们在网站登录的时候有的是以网站管理员登录的,有的是以一般用户登录的,因为管理员和一般的用户登录后的权限不同,那么我们该如何实现不同类型的用户登录跳转到不停的界面显示不同的结果呢?
这里用户表的外键是用户组表的id
其中若是用户组表的id为1的时候代表的是系统管理员,若是id为2的时候代表的是一般的用户
下面我来看一下用户登录的action代码
- public String login() {
- String id = "";
- String username = "";
- //获得页面传来的用户名和密码给login,然后遍历数据库
- login = userService.login(userName,Password.createPassword(passWord));
- Iterator<UserInfo> rs = login.iterator();
- HttpSession session = ServletActionContext.getRequest().getSession();
- if (login.size() != 0) {
- while (rs.hasNext()) {
- //将所有的userInfo信息写进session中
- UserInfo userInfo = rs.next();
- session.setAttribute("userName", userInfo.getUserName()
- .toString().trim());
- session.setAttribute("userInfo", userInfo.getId().toString().trim());
- session.setAttribute("userGroup", userInfo.getUserGroup().getId());
- id = userInfo.getId().toString().trim();
- username = userInfo.getUserName().toString().trim();
- }
- return SUCCESS;
- } else {
- return INPUT;
- }
- }
public String login() {
String id = "";
String username = "";
//获得页面传来的用户名和密码给login,然后遍历数据库
login = userService.login(userName,Password.createPassword(passWord));
Iterator<UserInfo> rs = login.iterator();
HttpSession session = ServletActionContext.getRequest().getSession();
if (login.size() != 0) {
while (rs.hasNext()) {
//将所有的userInfo信息写进session中
UserInfo userInfo = rs.next();
session.setAttribute("userName", userInfo.getUserName()
.toString().trim());
session.setAttribute("userInfo", userInfo.getId().toString().trim());
session.setAttribute("userGroup", userInfo.getUserGroup().getId());
id = userInfo.getId().toString().trim();
username = userInfo.getUserName().toString().trim();
}
return SUCCESS;
} else {
return INPUT;
}
}
调用login方法来实现用户的登录,当成功登陆后我们先判断用户组的id,也就是代码中的userGroup,当userGroup为1的时候证明就是管理员用户,为2的时候是一般用户,这里我用的是
<c:if test="${session.userGroup==1 }"> <form action="1.action" method="post"> </c:if>
<c:if test="${session.userGroup==2 }"> <form action="2.acion" method="post"> </c:if>
这里jsp页面要进入标签 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 这里相当于是判断语句。下面可以根据相应的action执行不同的动作。