Cookie

----------------------------------------------------------------------

 范例1: 创建cookie

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>cookie</servlet-name>
<servlet-class>com.itcast.servlet.cookie.CookieServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>showServlet</servlet-name>
<servlet-class>com.itcast.servlet.cookie.ShowServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>cookie</servlet-name>
<url-pattern>/cookie</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>showServlet</servlet-name>
<url-pattern>/showServlet</url-pattern>
</servlet-mapping>
</web-app>

CookieServlet.java:

public class CookieServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");

// 创建Cookie
Cookie cookie = new Cookie("user1", "Tom");
cookie.setMaxAge(10);

// 将cookie写入客户端
resp.addCookie(cookie);
resp.getWriter().print("<h3>cookie已经创建!</h3>");
}
}

测试:

-----------------------------------------------------------

范例2: 获取cookies

ShowServlet.java:

public class ShowServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setCharacterEncoding("GBK");
resp.setContentType("text/html;charset=UTF-8");
PrintWriter out = resp.getWriter();

// 获取客户端cookies
Cookie []cookies = req.getCookies();

// 判断是否有cookie
Cookie cookie = null;
if (cookies != null) {
// 遍历cookies
for (int i=0; i<cookies.length; i++) {
cookie = cookies[i];
// 判断是否是指定的cookie名称
if ("user1".equals(cookie.getName())) {
// 拿到cookie的值
String cookieValue = cookie.getValue();
out.print("<h3>cookie的值: " + cookieValue + "</h3>");
break; // 退出循环
}
}
} else {
out.print("<h3>Cookie不存在或者已经过期!</h3>");
}
}
}

 测试: 在创建cookie后10秒之内访问http://localhost:8080/servlet_cookie/showServlet

 

10秒后再访问就会过期:

--------------------------------------------------

范例3: 删除cookie

setMaxAge(value);

value: -1, 默认值, 表示浏览器关闭之后cookie销毁

value: 0, 表示立即删除cookie

value: 正数, 表示从创建cookie的那一刻起开始计时, 到达这个设定的时间(单位: 秒), cookie就会销毁

-------------------------------------------

范例4: 保存密码

LoginServlet.java:

 

 

LoginClServlet.java:

 

 

posted @ 2017-03-12 22:55  半生戎马,共话桑麻、  阅读(69)  评论(0)    收藏  举报
levels of contents