Java web怎么实现普通用户与管理员跳转不同页面

代码怎么改,这个是跳转都一样的,要用数据库
<body>
<%
String username=request.getParameter("username");
String pwd=request.getParameter("pwd");
String role=request.getParameter("role");

Class.forName("org.gjt.mm.mysql.Driver");
String url = "jdbc:mysql://localhost:3306/bookmanage?user=root&password=caijunsen&useUnicode=true&characterEncoding=utf-8";// ݿ
Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String sql = "select * from users where username='"+username+"' and pwd='"+pwd+"' and role='"+role+"'";
ResultSet result = stmt.executeQuery(sql);
if(result.next()){

session.setAttribute("username",username);
%>
<jsp:forward page="addBooks.jsp"></jsp:forward>
<%
} else{
%>
<jsp:forward page="login.jsp"></jsp:forward>

<%
}
%>

</body>

你都去查了user表了,你那个result里面取username,判断他不就可以了。在if(result.next())里面再判断一层,不就成了,取值差不多是result.get类型+(序号)的形式。追问

怎么判断

不应该是判断role吗

追答

那就这样写,你试试

if (result.next()) {
if(result.getString("role").equals("admin")){
%>
<jsp:forward page="adminAddBooks.jsp"></jsp:forward>
<%
}else{
%>
<jsp:forward page="addBooks.jsp"></jsp:forward>
<%
}
} else {
%>
<jsp:forward page="login.jsp"></jsp:forward>
<%
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-22
你代码里都没判断哪样的用户是管理员,也没说管理员会进哪个页面,总共才两个页面login.jsp和addBook.jsp,得完善需求追问

这个可以再加,就想知道要怎么判断

追答

简单一点,用户表中加个字段isAdmin,根据这个判断;另外可以引入角色的设计,这个就要多加几张表,建议先用第一种完成,后续再优化

第2个回答  2019-05-22
可以建一个用户表,角色表,权限表,用户角色关系表,角色权限关系表 实现这种RBAC权限访问控制。
第3个回答  2019-05-23
写代码主要是思路,
实现普通用户与管理员跳转不同页面
你根据角色来判断嘛,如果处理逻辑相同,只是页面不同,搞个标示 if else 判断就ok了追问

If else要怎么写

第4个回答  2019-05-23
你应该以用户名和密码从数据库当中取出数据,然后核实用户的role权限,如果权限是管理员,那么就可以跳转到网站的管理页面,如果是普通用户,那么就跳转到另外一个页面
相似回答