使用isUserInRole()编写代码实现admin⻆色的用户能访问index.html和admin.html这两个页面,而user用户只能访 问index.html这个页面
时间: 2023-12-14 10:37:32 浏览: 144
ASP技术常遇问题解答-如何对用户进行授权?.zip
下面是一个使用`isUserInRole()`方法实现访问控制的示例代码:
```java
@WebServlet("/index.html")
public class IndexServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if (request.isUserInRole("admin")) {
// admin用户可以访问index.html和admin.html
request.getRequestDispatcher("admin.html").forward(request, response);
} else if (request.isUserInRole("user")) {
// user用户只能访问index.html
request.getRequestDispatcher("index.html").forward(request, response);
} else {
// 未登录的用户重定向到登录页面
response.sendRedirect("login.html");
}
}
}
@WebServlet("/admin.html")
public class AdminServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if (request.isUserInRole("admin")) {
// admin用户可以访问index.html和admin.html
request.getRequestDispatcher("admin.html").forward(request, response);
} else {
// 非admin用户重定向到index.html
response.sendRedirect("index.html");
}
}
}
```
在上面的代码中,`doGet()`方法首先使用`isUserInRole()`方法检查用户的角色,然后根据用户角色的不同,来决定是否允许访问对应的页面。如果用户没有登录,那么就会重定向到登录页面。
阅读全文