频道栏目
首页 > 资讯 > 网络协议 > 正文

一个cookie应用简单的定制及实现思路

18-04-24        来源:[db:作者]  
收藏   我要投稿

Cookie

session保持会话状态,cookie进行信息交换。

cookie实际上就是在客户和服务器之间交换的一小段数据(一个名/值String对)。

服务器把cookie发送给客户,客户做出下一个请求时再把cookie返回给服务器。

cookie不需要用户介入,cookie交换是自动完成的(当然,要假设客户端支持cookie)。

利用ServletAPI使用Cookie

对于cookie,你要做的工作都已经封装在3个类的ServletAPI中:HttpServletRequest、HttpServletResponse和Cookie。

创建一个新Cookie

[java] view plain copy

Cookie cookie = new Cookie("username",name);  

设置cookie在客户端上存活多久

[java] view plain copy

cookie.setMaxAge(30*60);  

把cookie发送到客户

[java] view plain copy

response.addCookie(cookie);  

从客户请求得到cookie

[java] view plain copy

Cookie[] cookies = request.getCookies();  

if(cookies != null){  

    for(int i = 0; i < cookies.length; i++){  

        Cookie cookie = cookies[i];  

        if(cookie.getName().equals("username")){  

            String userName = cookie.getValue();  

            out.println("Hello" + userName);  

            break;  

        }  

    }  

}  

简单的定制cookie

假设建立一个表单,要求用户提交用户名。这个表单调用一个servlet,由servlet得到用户名请求参数,并使用户名值在响应中设置一个cookie。

[html] view plain copy

<!DOCTYPE html>  

<html lang="en">  

<head>  

    <meta charset="UTF-8">  

    <title>CookieTestPage</title>  

</head>  

<body>  

    <form method="POST" action="CookieTest.do">  

        UserName:<input type="text" name="username"><br>  

        <center>  

            <input type="SUBMIT">  

        </center>  

    </form>  

</body>  

</html>  

这个用户下一次请求这个Web应用中的任何servlet时,cookie会随请求返回(假设根据cookie的maxAge设置,这个cookie还存活)。Web应用中的servlet看到这个cookie时,它能把用户名放到动态生成的响应中,业务逻辑就能知道不用再向用户询问他的名字了。

实验

写一个Web应用,实现上面这个场景。包含:一个index.html,两个servlet。

实现思路:

客户访问index.html,假设是(http://localhost:8080/SessionTest/index.html),index.html提交表单用户名,到一个servlet处理接收过来的用户名,该servlet会生成一个cookie,把用户名保存进去,然后response将该cookie返回给客户端。

客户访问第二个servlet,假设是(http://localhost:8080/SessionTest/checkcookie.do),读取request发送过来的cookie,它会遍历cookies,如果上次提交的用户名存在该cookies,就得到它的值,并输出到自己生成的动态网页,显示欢迎他的再次到来。

相关TAG标签
上一篇:dubbo注入失败的问题完美解决方案
下一篇:移动开发视窗和讯息解析
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站