2010-08-03 65 views
1

我想创建三个类型的用户应用程序: 管理员,专家和用户的 大家简单了一些特殊的网页,所以我必须用角色。 有人有一个很好的例子或教程如何做到这一点? 日Thnx很多角色在JSP和Servlet

回答

1

首先创建用户和角色以及它们之间的关系的数据存储。最直接的选择是使用user,roleuser_roles表的SQL数据库。

然后基本上有两种方法可以在JSP/Servlet中实现这一点。

  1. Homegrow it。最容易入门,但最终会长期维持不了。您必须创建一个HTML/JSP登录表单,一个登录servlet来验证,查找和登录该用户以及一个登录过滤器,以检查用户是否已登录和/或是否有权访问所请求的资源。

  2. 利用Java EE provided container managed security。您只需创建一个HTML/JSP登录表单,剩下的内容全部在web.xml和服务器的Realm配置中。

显示基于用户角色的特定网页内容/组件,您可以使用JSTL的流程控制标签:<c:if><c:choose>

+0

你好, 我可以做到这一点,即使我使用EXTJS我的形式? 要做的事情是,例如,如果它是管理员 并显示第2页,第4页,如果它是专业 ,您是否看到显示page1,page2和page3? – 2010-08-03 15:57:41

+0

ExtJS是一个Javascript库。 JS运行在web浏览器,最终用户可以完全控制JS代码(即他可以禁用/破解/欺骗JS代码)。你想完全在服务器端做这种敏感的东西。仅使用JS进行渐进式增强,而不是接管服务器的工作。 – BalusC 2010-08-03 16:02:02

+0

Thnx很多, 但我问是否有任何影响? 以及如何在服务器端执行我之前说过的(对于页面)? – 2010-08-03 16:12:51

1

我建议你在这个tutorial

去春Security.Have看看如果你不想使用它,你应该去筛选。

写一个过滤器,将从DB手动检查用户的角色,并根据允许或限制访问

+0

以及如何显示涉及正确用户验证的页面?例如: :管理员可以看到addDocument页面,但不是简单的用户? – 2010-08-03 15:45:01

+0

请详细说明。 – 2010-08-03 15:59:59

+0

根据请求检查用户的角色(或者甚至可以在登录时将其放入会话范围),现在如果请求的页面可以通过登录的ROLE访问,然后显示它或将其重定向到其他页面。 – 2010-08-03 16:01:27