1、(1)设计登录页面login.html,点击登录按钮时调用LoginServlet,自动将用户名和密码、登录时间保存到cookie中,设置cookie存活时间为14天; (2)然后在LoginServlet中重定向到ShowUserServlet,在ShowUserServlet中显示登录用户的用户名! (3)把浏览器关闭,直接访问ShowUserServlet,查看是否还能显示用户名!
时间: 2024-03-09 10:47:01 浏览: 34
好的,这是一个关于cookie的练习,我会帮您一步步解答。
首先,在登录页面login.html中,您需要添加一个表单,用于输入用户名和密码。表单的代码如下:
```
<form action="LoginServlet" method="post">
<label for="username">用户名:</label>
<input type="text" id="username" name="username"><br><br>
<label for="password">密码:</label>
<input type="password" id="password" name="password"><br><br>
<input type="submit" value="登录">
</form>
```
注意,表单的action属性指向LoginServlet,这样点击登录按钮时就会调用该Servlet。
接下来,您需要在LoginServlet中获取用户名和密码,并将它们保存到cookie中。代码如下:
```
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
Cookie usernameCookie = new Cookie("username", username);
Cookie passwordCookie = new Cookie("password", password);
usernameCookie.setMaxAge(60 * 60 * 24 * 14); // 设置cookie的存活时间为14天
passwordCookie.setMaxAge(60 * 60 * 24 * 14);
response.addCookie(usernameCookie);
response.addCookie(passwordCookie);
response.sendRedirect("ShowUserServlet"); // 重定向到ShowUserServlet
}
```
在这段代码中,我们通过request.getParameter方法获取了表单中的用户名和密码,并创建了两个Cookie对象。然后,我们设置了这两个Cookie的存活时间为14天,并通过response.addCookie方法将它们添加到响应中。最后,我们使用response.sendRedirect方法将请求重定向到ShowUserServlet。
接下来,在ShowUserServlet中,您需要获取之前保存在cookie中的用户名,并将其显示在页面上。代码如下:
```
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Cookie[] cookies = request.getCookies();
String username = "";
for (Cookie cookie : cookies) {
if (cookie.getName().equals("username")) {
username = cookie.getValue();
break;
}
}
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("欢迎您," + username + "!");
}
```
在这段代码中,我们通过request.getCookies方法获取了所有的Cookie对象,并遍历它们以获取保存在其中的用户名。最后,我们将用户名显示在页面上。
最后,您需要测试一下是否能够正确地保存和获取Cookie。您可以先登录并访问ShowUserServlet,然后关闭浏览器并直接访问ShowUserServlet,如果之前保存的Cookie仍然有效,您应该能够看到之前保存的用户名继续显示在页面上。
希望这个练习对您有所帮助!