首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在同一页面中选择“管理视图”或“用户视图”?

如何在同一页面中选择“管理视图”或“用户视图”?
EN

Stack Overflow用户
提问于 2014-10-29 10:24:24
回答 2查看 2K关注 0票数 0

当在admin和user level.This之间重定向页面是我的level.This文件时,我遇到了问题:

代码语言:javascript
运行
复制
<%
String name = request.getParameter("username");
String pass = request.getParameter("password");
try {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=demoLoginAdminUser", "sa", "sa");
    Statement st = con.createStatement();
    ResultSet rs = st.executeQuery("select * from reg");
    int x = 0;
    while (rs.next()) {
        if ((rs.getString("username").equals(name)) && rs.getString("password").equals(pass)) {
            String stp = rs.getString("uType");
            if (stp.equals("admin")) {
                x = 1;
                break;
            } else {
                x = 2;
                break;
            }
        }
    }
    if (x == 2) {
        response.sendRedirect("student.jsp");
    } else if (x == 1) {
        response.sendRedirect("admin.jsp");
    } else {
        out.println("Either you enter Invalid UserName or Password! Please Try Again");
%>
        <jsp:include page="index.html" />
    <%}
        } catch (Exception e) {
            out.println(e);
        }
        session.setAttribute("username", name);
    %> 

我已经将管理重定向到admin.jsp,用户重定向到student.jsp。现在我想登录到home.jsp页面。例如,登录管理然后home.jsp将显示编辑按钮,如果不是,这个按钮将是hidden.This是图片,我想要http://imgur.com/TJYtAu5

这就是将管理和用户重定向到、admin.jsp、和的逻辑。但我只想使用一个页面,如果你是管理员,一些按钮将被启用,如果不是,该按钮将被隐藏。

感谢您的阅读。希望有人能帮我这个忙。:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-29 10:54:15

正如圣克里什所说的那样,您的确实应该用一个servlet代替这个,该servlet可以实现相同的逻辑,或者在结束时重定向(就像您目前所做的那样),或者转发到JSP页面。

但是无论如何,您不应该依赖于简单的重定向来区别用户和管理员。通常的方法是使用一个或多个会话属性来存储登录名和/或用户的角色。然后,在JSP页面中测试名称或更好的角色,以决定是否显示按钮。与其简单地隐藏它们,不如不要显示它们,因为用户总是可以在浏览器中看到源HTML。

当您处理会话中的用户可以完成的表单提交时,您应该进行测试,而不是依赖于非管理员不应该看到按钮的事实:请求可以很容易地伪造。

票数 0
EN

Stack Overflow用户

发布于 2014-10-29 11:13:03

您可以简单地在会话中添加一个标志:

checklogin.jsp

代码语言:javascript
运行
复制
session.setAttribute("isAdmin", stp.equals("admin"));
session.setAttribute("username", name);

带有taglib的home.jsp

代码语言:javascript
运行
复制
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<c:if test="${isAdmin}">
  <button>Admin Action</button>
</c:if>

没有标签库的home.jsp

代码语言:javascript
运行
复制
<%if((Boolean)(session.getAttribute("isAdmin")) {%>
  <button>Admin Action</button>
<%}%>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26627878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档