使用cookie技术,实现发送cookie和获取cookie;创建一个servlet,使用response对象向客户端发送一个cookie,cookie名为myCookie,cookie值为hait; 创建另一个servlet,获取所有cookie信息,遍历cookie,把刚刚发送名为myCookie的cookie值输出到网页上
时间: 2023-07-25 15:45:46 浏览: 55
好的,以下是实现代码:
发送Cookie的Servlet:
```java
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/SetCookieServlet")
public class SetCookieServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 创建Cookie对象
Cookie cookie = new Cookie("myCookie", "hait");
// 设置Cookie的生命周期,单位为秒
cookie.setMaxAge(3600); // Cookie将在1小时后过期
// 将Cookie对象添加到响应头中
response.addCookie(cookie);
response.getWriter().println("Cookie已发送");
}
}
```
获取Cookie的Servlet:
```java
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/GetCookieServlet")
public class GetCookieServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取所有Cookie
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
if (cookie.getName().equals("myCookie")) {
// 输出Cookie值到网页上
response.getWriter().println("myCookie的值为:" + cookie.getValue());
}
}
}
}
}
```
注意:在Web应用中,Cookie必须在响应头中添加,才能发送到客户端。在下一次请求中,浏览器会在请求头中携带上一次响应中的Cookie信息,因此我们可以在服务器端通过HttpServletRequest的getCookies()方法获取到所有的Cookie信息。