servlet使用Session实现访问控制要求必须是登录用户才能访问home.html,如果在未登录状态访问home.html时,将显示 请登录后再访问,3秒钟后将跳到登录页面
时间: 2023-05-27 12:05:13 浏览: 45
可以使用以下代码实现:
```java
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession(false);
if (session == null || session.getAttribute("username") == null) {
response.setContentType("text/html;charset=utf-8");
response.getWriter().write("<h1>请登录后再访问</h1>");
response.setHeader("Refresh", "3;URL=/login.html");
} else {
RequestDispatcher dispatcher = request.getRequestDispatcher("/home.html");
dispatcher.forward(request, response);
}
}
```
首先获取当前会话的Session对象,如果Session为空或Session中不存在"username"属性(即未登录状态),则返回提示信息并设置3秒后跳转到登录页面;否则使用RequestDispatcher对象将请求转发到home.html页面。