「java打印cookie」Java打印等腰三角形

博主:adminadmin 2023-01-03 01:36:05 1184

本篇文章给大家谈谈java打印cookie,以及Java打印等腰三角形对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java中如何获取cookie

1.设置cookie到客户端

        Cookie c1 = new Cookie("username","hzh");

            response.addCookie(c1);

            

            Cookie c2 = new Cookie("password","123");

            //设置生命周期为1小时,秒为单位

            c2.setMaxAge(3600);

            response.addCookie(c2);

            

            response.getWriter().print("ok");

查看此时的cookie文件,发现只写入了password,因为此时未给 username设置生命周期,它还在客户端的内存中,并为写到文件中(此时客户端关闭此浏览器窗口,就丢失了),想写到客户端,需要加入c1.setMaxAge(3600)在 response.addCookie(c1);之前

以下是写入我电脑中的cookie

2.读取cookie文件

Cookie[] cookies = request.getCookies();

            for(Cookie c :cookies ){

                System.out.println(c.getName()+"---"+c.getValue());

            }

控制台输出结果如下:

username---hzh

password---123

JSESSIONID---33BEAF95C526E0DDCF6A64990E533845

注意:

 1.服务器可以向客户端写内容, 只能是文本内容

 2.客户端可以阻止服务器写入,禁用cookies

 3.只能读取自己webapp写入的东西

如果需要两个cookie发往客服端,需要的代码是

CSDN的登录界面下会有“两周内不再登录”选项,用户登录后会保存用户登录信息,第二次登录时自动补全登录密码

二、过程

1、当客户端发送一个请求的时候,会产生一个request对象,这个对象里面就包含了cookie

2、服务端先设置cookie信息,并在客户端请求时把这个cookie信息发送给客户端,客户端会自动保存cookie的key/value值

3、下次向服务端发送请求时,客户端会自动带上cookie信息,服务端会根据cookie信息来识别状态。(之前是否访问过)

4、简单说就是在客户端,保存一串加密后的字符串,下次用户访问时,获取这个加密串进行解密匹配,然后创建登录Session信息。

三、定义

cookie用来给无状态的http请求增添状态标记,供服务端辨识,也称客户端缓存.

服务端和客户端的cookie是同一个东西,都是保存在浏览器的,服务端常用的方式是存在session里

http 是一种无状态协议,浏览器请求服务器是无状态的

无状态:指一次用户请求时,浏览器、服务器无法知道之前这个用户做过什么,每次请求都是一次新的请求。

无状态原因:浏览器与服务器是使用 socket 套接字进行通信的,服务器将请求结果返回给浏览器之后,会关闭当前的 socket 连接,而且服务器也会在处理页面完毕之后销毁页面对象

cookie的结构

key:cookie的名称

value:cookie的值

expires:cookie的失效日期(UTC时间字符串)

max-age:cookie的失效间隔(秒),优先级高于expires

path:根据目录限制cookie的分享,如不主动设置,默认为当前页面的路径

domain:根据域名限制cookie的分享

cookie的分类

一、客户端

可以设置、更改、删除cookie

function getCookie(name) {

var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");

if (arr = document.cookie.match(reg))

return (arr[2]);

else

return null;

}

function setCookie (c_name, value, expiredays) {

var exdate = new Date();

exdate.setDate(exdate.getDate() + expiredays);

document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString());

};

function delCookie (name) {

var exp = new Date();

exp.setTime(exp.getTime() - 1);

var cval = getCookie(name);

if (cval != null)

document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();

};

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

以用户登录为例,可以存用户登录的用户名和密码(或者代表用户信息的其他格式)

当下次访问网页的时候,直接读取这些信息,发送到服务端去进行验证

二、 服务端

express可以利用第三方组件cookie-parser去进行解析客户端来的req.cookies,也可以在返回信息给客户端的时候设置cookie,这样客户端在接受到这些信息的时候,就会将cookie信息自动保存到硬盘cookie里面,跟在客户端自己保存一样,不过要在客户端和服务器端做一下特殊的设置。

// express

var express = require('express');

var cookieParser = require('cookie-parser');

var app = express();

app.use(cors({

//credentials: true,//如果需要跨域那么需要设置这两个属性,表示服务器端接受这个域来的信息

//origin: ''

}))

app.use(cookieParser());

app.get('/', function (req, res) {

// 检查 session 中的 isVisit 字段是否存在

// 如果存在则增加一次,否则为 session 设置 isVisit 字段,并初始化为 1。

if (req.cookie.isVisit) {

req.cookie.isVisit++;

res.send('p第 ' + req.cookie.isVisit + '次来此页面/p');

} else {

req.cookie.isVisit = 1;

res.send("欢迎第一次来这里");

console.log("Cookies: ", req.cookies); //打印cookie

}

});

app.listen(80);

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

在进行这些初始化之后就可以进行调用函数进行设置/清除cookies

//node, express

app.get('/test', function(req, res, next) {

res.cookie(key,value,{

maxAge:1000,//毫秒为单位,

//domain

//path

httpOnly:boolean,//设置为true,客户端无法查看、更改,仅作为发送至服务端的凭据

})

//不设置表示无期限

res.cookie(key,value)

})

//res.cookie(name, value [, options]); //设置cookies, options可以设置很多参数。

//res.clearCookie(name [, options]); //清除cookies,

1

2

3

4

5

6

7

8

9

10

11

12

13

当然服务端读取cookie的时候,直接利用req.cookies或者req.signedCookies来读取参数信息

但是一般情况下服务端的cookie存放在session来处理。来个示例:

//session

var express = require('express');

var session = require('express-session');

var app = express();

app.use(session({

secret: 'zsshua app', //secret的值建议使用随机字符串

cookie: {maxAge: 60 * 1000 * 30} // 过期时间(毫秒)

}));

app.get('/', function (req, res) {

if (req.session.sign) {//检查用户是否已经登录

console.log(req.session);//打印session的值

res.send('welecome strong' + req.session.name + '/strong, 欢迎你再次登录');

} else {//否则展示index页面

req.session.sign = true;

req.session.name = '我的网站';

res.end('欢迎登录!');

}

});

app.listen(80);

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

express

//app.js中添加如下代码(已有的不用添加)

var express = require('express');

var cookieParser = require('cookie-parser');

var session = require('express-session');

app.use(cookieParser('sessiontest'));

app.use(session({

secret: 'sessiontest',//与cookieParser中的一致

resave: true,

saveUninitialized:true

}));

1

2

3

4

5

6

7

8

9

10

11

//修改router/index.js,第一次请求时我们保存一条用户信息。

router.get('/', function(req, res, next) {

var user={

name:"Chen-xy",

age:"22",

address:"bj"

}

req.session.user=user;

res.render('index', {

title: 'the test for nodejs session' ,

name:'sessiontest'

});

});

1

2

3

4

5

6

7

8

9

10

11

12

13

//修改router/users.js,判断用户是否登陆。

router.get('/', function(req, res, next) {

if(req.session.user){

var user=req.session.user;

var name=user.name;

res.send('你好'+name+',欢迎来到我的网站。');

}else{

java怎么获取进入qq空间后的cookie

使用javascript 可以直接打印当前网站所有的cookies,方法是在地址栏输入javascript:alert(cookie),

使用Java过去Cookie的方法是request.getCookies(),返回的是一个Cookie数组,遍历它即可获取属性和对应的值

java打印cookie的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Java打印等腰三角形、java打印cookie的信息别忘了在本站进行查找喔。