1、使用JSP设置并读取Cookie。创建一个页面,在其中创建一个登录表单,提交后,在提交页面中将表单数据存放在cookie中,在另外一个页面通过读取cookie输出表单数据。
时间: 2024-02-03 16:11:41 浏览: 93
首先,在登录表单页面中,我们需要使用JSP设置cookie,代码如下:
```
<%@ page contentType="text/html; charset=utf-8" language="java" %>
<!DOCTYPE html>
<html>
<head>
<title>Login Page</title>
</head>
<body>
<h1>Login Form</h1>
<form method="post" action="login.jsp">
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password"><br>
Remember me: <input type="checkbox" name="remember"><br>
<input type="submit" value="Login">
</form>
</body>
</html>
<%
// 获取表单数据
String username = request.getParameter("username");
String password = request.getParameter("password");
String remember = request.getParameter("remember");
// 如果记住我被勾选,则设置cookie
if ("on".equals(remember)) {
Cookie usernameCookie = new Cookie("username", username);
Cookie passwordCookie = new Cookie("password", password);
usernameCookie.setMaxAge(60 * 60 * 24 * 7); // 设置cookie有效期为一周
passwordCookie.setMaxAge(60 * 60 * 24 * 7);
response.addCookie(usernameCookie);
response.addCookie(passwordCookie);
}
%>
```
在上面的代码中,我们使用了JSP内置对象 `request` 和 `response` 来获取表单数据和设置cookie。如果“记住我”被勾选,我们就创建两个名为“username”和“password”的cookie,并将其添加到响应中。这里需要注意的是,我们需要使用 `setMaxAge()` 方法来设置cookie的有效期,以便浏览器能够正确地管理cookie。
接下来,在另一个页面中,我们可以使用JSP读取cookie并输出表单数据,代码如下:
```
<%@ page contentType="text/html; charset=utf-8" language="java" %>
<!DOCTYPE html>
<html>
<head>
<title>Profile Page</title>
</head>
<body>
<h1>Profile</h1>
<%-- 读取cookie --%>
<% Cookie[] cookies = request.getCookies();
String username = null;
String password = null;
if (cookies != null) {
for (Cookie cookie : cookies) {
if ("username".equals(cookie.getName())) {
username = cookie.getValue();
}
if ("password".equals(cookie.getName())) {
password = cookie.getValue();
}
}
}
%>
<%-- 输出表单数据 --%>
<% if (username != null && password != null) { %>
<p>Username: <%= username %></p>
<p>Password: <%= password %></p>
<% } else { %>
<p>Please log in to view your profile.</p>
<% } %>
</body>
</html>
```
在上面的代码中,我们首先使用 `request.getCookies()` 方法获取所有的cookie,然后遍历cookie数组,找到名为“username”和“password”的cookie,并将其值赋给相应的变量。最后,我们使用JSP脚本语法输出表单数据。
注意,我们需要在读取cookie之前先输出HTML代码,否则就会出现 “Internal Server Error” 的错误。这是因为JSP引擎会在输出HTML前先执行JSP脚本,如果读取cookie的代码出错,就会导致整个页面崩溃。
阅读全文