http://www.hetaoblog.com/myblogs/post/web-cookie-notes.jhtml
最近越来越有种感觉,很多技术以前也写代码去用,当时看的时候也觉得已经有所了解了,但是时间长了再有需要,发现再要写,还是得花点时间去看细节,api等; 但是如果这事我在博客上写过一遍了,一般就记得比较清楚; 同时找出来再实现也非常快;
昨晚在实现hourlog的cookie功能就是这个情况,早上起来趁女儿没醒赶紧写一下cookie笔记;
1. Cookie基本概念
由服务端生成,发送给浏览器,浏览器会将cookie的内容保存在本地;同时,以后浏览器发送http请求的时候,如果符合一定的条件,就会将cookie的内容也包含在http请求中;
主要的条件是看域名,过期时间,路径;
cookie的目的是为了保存和客户相关的一些信息,使得服务端不用通过再次验证就可以确认当前请求具体属于哪个用户;
比如做记住登录功能,就可以写一个cookie然后不需要输入用户名和密码就可以登录;
当然,这里不是把密码写在客户端;
2. java中的cookie
J2EE里面的Cookie类主要的属性有domain,name, value,path,maxage; 其中domain就对应域名,path对应路径,maxage对应过期时间
3. 在程序中生成cookie
我给hourlog生成cookie的代码大意如下;
其中cookiestr使用当前用户名+当前时间+随机数的方式生成;
最后调用response.addCookie将这个cookie返回给浏览器,浏览器会将这个值保存;
同时,我将生成的这个cookiestr保存在用户表里面
Cookie c = new Cookie("__hetaoblog_uid", cookiestr);
c.setDomain("www.hetaoblog.com");
c.setMaxAge(60 * 60 * 24 * 365);
c.setPath(contextpath + "/tool/hourlog/index.jhtml");
response.addCookie(c);
4. 验证cookie
下次请求过来,如果是www.hetaoblog.com这个域名下,路径是/tool/hourlog/index.jhtml的时候,
浏览器就会发送名字叫__hetaoblog_uid的cookie,他的值是一个字符串;
服务端通过request.getCookies()得到所有的cookie,然后遍历一遍,取到名字是__hetaoblog_uid的cookie,
然后去数据库里面根据cookie值看看有没有这个用户,如果有的话就表示这个是记住密码的用户,不需要再次登录了,直接返回这个用户的界面;
if(null != request.getCookies())
{
for(Cookie c: request.getCookies())
{
if(Const.HETAOBLOG_COOKIE.equalsIgnoreCase(c.getName()))
{
String cookie = c.getValue();
UserDao userDao = new UserDao();
sinaUser = userDao.getSinaUserWithCookie(cookie);
}
}
}
分享到:
相关推荐
《MLDN——Java Web开发实战经典源码笔记(基础篇)》是一本专注于Java Web开发的实战教程,旨在帮助读者从零开始掌握Web应用的开发技术。这本书通过深入浅出的讲解和丰富的实例代码,全面介绍了Java Web开发的基础...
《JAVA WEB开发实战经典》是一本深入探讨Java Web开发技术的教材或课堂笔记,由知名讲师李兴华或MLDN团队编著。这本书涵盖了从基础到高级的Java Web开发知识,旨在帮助读者全面掌握这一领域的核心技能。通过阅读这份...
这篇经典笔记详细记录了Java Web开发中的重要概念和实践技巧,特别是JSP(JavaServer Pages)的使用。 JSP隐含对象是Java Web开发中的一种便利特性,它们是预定义的对象,可以直接在JSP页面中使用,无需显式声明。...
web开发课程笔记、源码和课程视频,适合自学web、有编程基础的同学。内含:html、css、javascript、jQuery、XML、Tomcat、Servlet、jsp、EL表达式、JSTL标签库、cookie、session、Filter过滤器、json、Ajax请求、...
《Flask Web开发:基于Python的Web应用开发实战》是一本深入浅出的教程,旨在帮助读者掌握使用Python的Flask框架构建Web应用程序的技术。Flask是一个轻量级的Web服务器网关接口(WSGI)Web应用框架,以其灵活性、...
web前端开发AJAX学习笔记
【方立勋Web视频笔记】是一系列针对Web开发学习者的宝贵资源,主要涵盖了Web开发的基础知识,特别是以JavaWeb为主导的技术栈。这些笔记和资料是方立勋老师教学经验的结晶,旨在帮助初学者系统地理解和掌握Web开发的...
### Javaweb-session和cookie笔记 #### 一、会话技术概述 在Web开发中,会话技术是一项非常重要的技术,它可以帮助我们追踪用户的活动并维持用户的状态信息。会话技术主要包括两种方式:Cookie技术和Session技术。...
### Web开发JSP笔记知识点概览 #### 一、HTTP请求方法:GET与POST - **GET** 方法:GET 方法通常用于从服务器检索资源。它将请求参数附加在URL后面,使得请求信息直接可见于地址栏。由于URL长度限制,GET 请求能...
Java Web开发笔记通常涉及Java技术栈中的Web应用开发,以及与之相关的各种组件和配置。在Java Web项目中,Maven的依赖管理是一个重要知识点,它帮助开发者管理项目中的依赖项。Maven的Dependency Scope定义了依赖项...
3. 安全开发流程:集成安全测试在SDLC(软件开发生命周期)中,定期进行代码审计和渗透测试。 五、Web安全趋势与挑战 1. 零日攻击:针对未知漏洞的攻击,强调及时更新补丁,提高应急响应能力。 2. API安全:API成为...
【ASP.NET Web 开发概述】 ...总之,ASP.NET Web开发是一门深奥且实用的技术,传智播客的课程和学习笔记为初学者提供了良好的学习路径。通过深入学习和不断实践,开发者可以掌握构建高效、可扩展的Web应用的技能。
8. **部署和配置**:了解IIS(Internet Information Services)配置、发布设置以及web.config文件的修改是实际开发中不可或缺的部分。 9. **性能优化**:包括缓存策略、页面压缩、异步编程、数据库查询优化等,都是...
【Cookie笔记1】 Cookie,源于英文"cookie",在计算机科学特别是网络编程中,它是一种用于维护客户端状态的技术。服务器通过向客户端发送Cookie,让浏览器在后续的HTTP请求中自动携带特定信息,从而实现服务器与...
对于初学者来说,掌握JavaWeb开发是步入Web开发领域的关键步骤。本项目实例旨在为新手提供一个全面的学习平台,通过实践操作和详细的步骤讲解,帮助他们快速理解和掌握JavaWeb的核心概念。 1. **环境搭建**:首先,...
【Java Web 全面解析】 ...本笔记深入浅出地介绍了Java Web开发的核心技术,通过学习这些知识点,开发者可以构建功能丰富的动态网站,并为进一步学习Spring、Hibernate、MyBatis等高级框架打下坚实基础。
是java26通里边web开发的部分。代码就不发了。文档中都有。照着敲吧!!搬来饿代码不是自己的。 第19天 WEB开发环境搭建 |-第1节 WEB发展史 |-第2节 使用Tomcat搭建WEB开发环境 |-第3节 MyEclipse中配置Tomcat ...
在Java Web开发中,开发者通常会使用一系列技术栈,包括Servlet、JSP、JavaBeans、MVC框架等,以实现高效且可维护的Web应用。 【描述】"yolo开发avaWeb-mas笔记yolo开发avaWeb-mas笔记" 可能是由于输入重复,但可以...
总的来说,《JAVA-WEB开发实战》这本笔记全面地涵盖了从基本的JAVA语法到高级的Web开发技术,是JAVA开发者提升技能、解决实际问题的宝贵资源。通过深入阅读和实践书中的案例,开发者可以系统地学习JAVA-WEB开发,并...
根据提供的标题、描述和部分上下文内容,我们可以推断出这份“Java Web课程笔记总结”是一份关于Java Web开发的学习资料。尽管实际的文字内容没有给出,但基于标题和描述中的关键词,我们可以归纳出一系列重要的Java...