`

Java Web servlet中的cookie

阅读更多
点击submit后:
点击查看Cookies:
在C:\Documents and Settings\Administrator\Cookies目录下面会有一个   hongten@webproject_cookie[2].txt  的文件;
这就是cookie的文件;
 
再来看看代码是怎样实现的:
cookiesInput.html
代码:
<html>
<head>
<title>cookie input page</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
请输入用户名(英文或者数字)<br>
<form name="form1" action="SetCookiesServlet"  method="post" >
<table border="0">
<tr><td>用户名:</td>
<td><input type="text" name="username">
</td></tr>
<tr><td colspan="2" align="center">
<input name="submit" value="submit" type="submit">
</td></tr>
</table>
</form>
</body>
</html>
 
SetCookiesServlet.java
代码:
/**
 * 
 */
package webbook.chapter6;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import webbook.util.StringUtil;
/**
 * 
 * @author XHW
 * @date 2011-7-22
 * 
 */
public class SetCookiesServlet extends HttpServlet {
 private static final long serialVersionUID = 6849802930688070121L;
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doPost(request, response);
 }
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  String output = null;
  String username = request.getParameter("username");
  if (!StringUtil.validateNull(username)) {
   Cookie cookie1 = new Cookie("username", StringUtil
     .filterHtml(username));
   // cookie的有效期为1个月
   cookie1.setMaxAge(24 * 60 * 60 * 30);
   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
   Cookie cookie2 = new Cookie("lastTime", sdf.format(new Date()));
   cookie2.setMaxAge(24 * 60 * 60 * 30);
   response.addCookie(cookie1);
   response.addCookie(cookie2);
   output = "本次登录时间与用户名已经写到Cookie中。<br><a href=\"/webproject_cookie/GetCookiesServlet\">查看Cookies</a>";
  } else {
   output = "用户名为空,请重新输入。<br><a herf=\"/webproject_cookie/cookieInput.htm\">输入用户名</a>";
  }
  response.setContentType("text/html;charset=UTF-8");
  PrintWriter out = response.getWriter();
  out.println("<html>");
  out.println("<head><title>set cookies </title></head>");
  out.println("<body>");
  out.println("<h2>" + output + "</h2>");
  out.println("</body>");
  out.println("</html>");
  out.flush();
  out.close();
 }
}
 
GetCookiesServlet.java
代码:
/**
 * 
 */
package webbook.chapter6;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * 
 * @author XHW
 * @date 2011-7-22
 * 
 */
public class GetCookiesServlet extends HttpServlet {
 private static final long serialVersionUID = -156960358689563625L;
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doPost(request, response);
 }
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  response.setContentType("text/html;charset=UTF-8");
  PrintWriter out = response.getWriter();
  out.println("<html>");
  out.println("<head><title>display login infomation</title></head>");
  out.println("<body>");
  out.println("<h2>从Cookie中获得上次登录时间与用户名</h2>");
//获取所有的cookie值
  Cookie[] cookies = request.getCookies();
  Cookie cookie = null;
  for (int i = 0; i < cookies.length; i++) {
   cookie = cookies[i];
   if (cookie.getName().equals("username")) {
    out.println("用户名:" + cookie.getValue());
    out.println("<br>");
   }
   if (cookie.getName().equals("lastTime")) {
    out.println("上次登录时间:" + cookie.getValue());
    out.println("<br>");
   }
  }
  out.println("</body>");
  out.println("</html>");
  out.flush();
  out.close();
 }
}
 
cookie是web服务器通过浏览器保存在www用户端硬盘上的一个文本文件,这个文件中包含了文本信息
文本信息的内容是以“名/值”对(key/value)的形式进行储存的
可以让web开发者通过程序读写这个文本文件
在Windows XP中保存Cookie的目录是:C:\Documents and Settings\用户名\Cookies
  
Cookie的作用:
  解决浏览器用户与web服务器之间无状态通信
 
使用cookie的时候注意的事项:
  cookie的大小和数量是有限制的
  cookie在个人硬盘上所保存的文本信息是以明文格式进行保存的,没有任何的加密措施
  浏览器可以设定不使用cookie 
 
分享到:
评论

相关推荐

    Java Servlet及Cookie的使用

    Java Servlet和Cookie是Web开发中的两个重要概念,它们在构建动态、交互式的Web应用程序中扮演着关键角色。本文将深入探讨这两个技术,并提供详细的实践应用示例。 **Java Servlet** Java Servlet是一种Java语言...

    servlet中的Cookie的使用

    因此,应避免在Cookie中存储敏感信息,使用HTTPS协议确保通信安全,并定期更新Cookie的值以防止会话固定攻击。 总结,本示例通过Servlet和Cookie展示了如何在Java Web应用中实现用户登录信息的持久化,以实现自动...

    Java Servlet及Cookie的使用.rar

    - 使用Java 5及以上版本的注解进行Servlet配置,如`@WebServlet`。 3. **Servlet通信** - `doGet()`和`doPost()`方法处理HTTP GET和POST请求,可以根据HTTP方法重写这些方法。 **Cookie** Cookie是Web服务器...

    java web servlet服务后端框架

    总结来说,Java Web Servlet服务后端框架涉及了Web应用开发的多个方面:使用框架构建后端服务,通过JSON进行数据交换,利用数据库API处理MySQL中的数据,以及理解和实现HTTP请求。掌握这些知识点将使你能够高效地...

    java+servlet项目.zip

    在本项目中,"java+servlet"的组合用于构建一个基础的Web应用程序,实现了常见的CRUD(创建、读取、更新、删除)操作,并具备登录、模糊查询和分页功能。这个项目对于初学者来说是一个很好的实践平台,因为它涵盖了...

    如何在servlet 中 删除 cookie

    在Servlet中删除Cookie是Web开发中的一个常见任务,特别是在处理用户会话或管理用户偏好时。Cookie是一种在客户端存储小量信息的方式,而Servlet作为Java Web应用程序的一部分,可以通过服务器端控制这些信息。以下...

    servlet读取cookie代码

    在Servlet中,可以通过`HttpServletRequest`对象的`getCookies()`方法来获取客户端发送过来的所有Cookie。如果客户端没有发送Cookie,则该方法返回`null`。 ```java Cookie[] cookies = req.getCookies(); ``` ###...

    servlet-ppt java web相关servlet课件

    - 会话ID由服务器分配并存储在客户端的Cookie中,用于识别多次请求来自同一用户。 - 可以使用`session.setAttribute()`和`session.removeAttribute()`来存储和移除会话属性。 6. **转发与重定向**: - `...

    基于jsp+servlet+javabean的java web开发

    在Java Web开发中,"基于jsp+servlet+javabean"的模式是一种常见的架构,用于构建动态、数据驱动的Web应用程序。这个小练习可能是一个汽车店系统的车辆预约管理应用,让我们详细了解一下这些技术及其在Web开发中的...

    servlet+cookie和Session

    Servlet是Java EE技术中用于处理Web应用客户端请求的核心组件,它是实现了特定接口的Java类,主要职责是接收和响应客户端的HTTP请求。Servlet容器(如Tomcat)负责加载和运行Servlet,当特定请求到达时,容器会实例...

    Java Servlet详细讲解

    Java Servlet是一种基于Java技术的服务器端组件,用于创建动态web应用程序。SUN公司(现在是Oracle)开源的Servlet规范使得开发者能够用Java语言编写能够处理HTTP请求的服务端程序。Servlet在Web开发中扮演着核心...

    Java Web应用开发 50 课堂案例-应用Servlet读取Cookie数据.docx

    在Java Web应用开发中,Servlet是一种Java类,它用于扩展服务器的功能,处理来自客户端(通常是Web浏览器)的请求,并向客户端发送响应。本案例主要讲解如何在Servlet中读取和处理Cookie数据。Cookie是一种在客户端...

    servlet和cookie技术源码

    Servlet 和 Cookie 技术在 Web 开发中扮演着至关重要的角色,它们是构建动态、交互式网站的关键组件。Servlet 是 Java 服务器端编程的一种标准,它扩展了 Web 服务器的功能,使得开发者能够处理 HTTP 请求并生成响应...

    达内 tts java_servlet课件 pdf 高清晰

    - 使用注解(@WebServlet)进行Servlet配置,是现代Java Web应用更为推荐的方式。 4. **Servlet API** - `HttpServletRequest`和`HttpServletResponse`接口:分别代表HTTP请求和响应,提供了获取请求参数、设置...

    Servlet对Cookie和Session的管理源码实例

    在Java Web开发中,Servlet是服务器端用于处理HTTP请求的核心组件。Servlet不仅能够生成动态内容,还能进行会话管理,其中最常用的就是Cookie和Session。本文将深入探讨Servlet如何管理和利用这两种技术进行会话跟踪...

    使用Java servlet实现自动登录退出功能

    使用Cookie实现自动登录是指系统在用户登录成功后,系统将用户的登录信息存储在Cookie中,以便下次用户访问时可以自动登录。Cookie是Web服务器用来存储用户信息的小文本文件。 知识点5:使用Filter实现自动登录 ...

    cookie servlet 登录 记录登陆次数

    在IT行业中,尤其是在Web开发领域,Cookie、Servlet和JSP是三个非常重要的概念。这篇讨论主要聚焦于如何使用这些技术来实现用户登录并记录登录次数的功能。以下是对这些知识点的详细解释: **Cookie**: Cookie是一...

    通讯录java,servlet

    在本项目中,"通讯录java,servlet" 是一个基于Java和Servlet技术的简单MVC(Model-View-Controller)架构实现的通讯录系统。它利用了Servlet作为控制器,处理客户端请求并调用业务逻辑,然后将结果返回给用户界面。...

Global site tag (gtag.js) - Google Analytics