Hi,欢迎来到华清远见移动互联网学院官网!国内王牌JAVAEE培训、Android培训、HTML5培训、UI培训、JAVA培训、VR培训机构!

  • 400-611-6270
  • 新浪微博
  • 微信
您当前的位置:移动互联网学院 > Android开发 > Android服务器Jsp状态管理

Android服务器Jsp状态管理

时间:2017-09-15 13:12 来源:移动互联网学院

Jsp状态管理

http协议无状态性 

无状态是指,当游览器发送请求给服务器的时候,服务器响应客户端请求。 

但是当同一个游览器再次发送请求给服务器的时候,服务器并不知道它就是刚才那个游览器。 

简单说,就是服务器不会去记得你,所以就是无状态协议。 

保存用户状态的两大机制 

Session 

Cookie 

Cookie概述

Cookie简介 

Cookie中文名称“小甜点”,是Web服务器保存在客户端的一些列文本信息。 

典型应用一:判定注册用户是否已经登录网站 

典型应用二:“购物车”的处理 

典型应用三:视频播放器的历史记录 

典型应用四:记住用户名和密码功能 

Cookie的作用 

对特定对象的追踪 

保存用户网页游览记录与习惯 

简化登录 

安全风险:容易泄露用户信息 

Cookie的创建与使用

创建Cookie对象 

Cookie newCookie = new Cookie(String key, Object value); 

写入Cookie对象

response.addCookie(newCookie); 

读取Cookie对象

Cookie[] cookies = request.getCookies(); 

Cookie常用方法

设置cookie的有效期,以秒为单位。 

void setMaxAge(int expiry) 

在cookie创建后,对cookie进行赋值 

void setValue(String value) 

获取cookie的名称

String getName() 

获取cookie的值

String getValue(); 

获取cookie的有效时间,以秒为单位

int getMaxAge(); 

创建cookie对象,并将对象保存在客户端游览器中

//创建cookie对象 Cookie cookie01 = new Cookie("name", "Ivy"); //设置Cookie的生命周期,如果设置为负值的话,关闭浏览器就失效。如果设为0,表示取消该cookie。 cookie01.setMaxAge(60*30); Cookie cookie02 = new Cookie("pass", "123"); //向游览器输出Cookie response.addCookie(cookie01); response.addCookie(cookie02); 

从游览器读取该网站存放的所有cookie对象

//读取所有的Cookie Cookie cookies[] = request.getCookies(); if(cookies != null){ out.print(cookies.length+"<br>"); for(int i=0; i<cookies.length; i++){ out.print(cookies[i].getName()+"<br>") ; out.print(cookies[i].getValue()+"<br>"); } } 

从游览器中删除该网站存放的指定cookie对象

//删除游览器中的cookie Cookie cookie01 = new Cookie("name", "Ivy"); cookie01.setMaxAge(0); response.addCookie(cookie01); 

Session与Cookie的对比 

cookie数据存放在客户的浏览器上,session数据放在服务器上。 

cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。 

session会在一定时间内保存在服务器上。当访问增多,会比较占用服务器的性能考虑到减轻服务器性能方面,应当使用cookie。 

单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。 

建议:将登陆信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中。

案例

cookie在登录中的应用

练习

使用cookie通知用户游览该网站的次数

指令与动作

include指令 

语法

<%@ include file="URL"%> 

include动作 

语法

<jsp:include page="URL" flush="true|false" /> 

page:要包含的页面 

flush:被包含的页面是否从缓冲区读取 

include指令与include动作区别 

<jsp:forward>动作

语法

<jsp:forward page="URL" /> 

等同于 

request.getRequestDispatcher("/url").forward(request, response); 

<jsp:param>动作 

语法 

<jsp:param name="参数名" value="参数值"> 

常常与<jsp:forward>一起使用,作为其子标签。

例如

test01.jsp

<body> <form action="test02.jsp" method="post"> <input type="text" name="user"> <input type="submit" value="提交"> </form> </body> 

test02.jsp

<jsp:forward page="test.jsp"> <jsp:param value="1111" name="pass"/> </jsp:forward> 

test.jsp

名字:<%=request.getParameter("user") %> 密码:<%=request.getParameter("pass") %> 

  • 北京

    010-82600385/6

    北京市海淀区西三旗悦秀路北京明园大学校内

  • 上海

    021-54485127

    上海市徐汇区漕溪路250号银海大楼11层

  • 深圳

    0755-25590506

    深圳市龙华新区人民北路美丽AAA大厦15层

  • 成都

    028-85405115

    成都武侯区科华北路99号科华大厦2层

  • 南京

    025-86551900

    南京市白下区汉中路185号鸿运大厦11层

  • 武汉

    027-87804688

    武汉工程大学卓刀泉校区科技孵化器大楼11层

  • 西安

    029-88756251

    西安市高新区高新1路12号天公大厦3层

  • 广州

    020-38342087

    广州市天河软件园柯木塱园5栋三层

  • 沈阳

    024-24349000

    沈阳市沈河区北顺城路137号锦峰大厦7层

  • 济南

    0531-88898293

    济南市高新区舜华路三庆世纪财富中心B3座6层

  • 重庆

    023-68064704

    重庆市九龙坡区渝州路87号双薪时代九楼

  • 长沙

    15010390966

    长沙市开福区芙蓉中路海东青大厦B座11楼

Copyright © 2004-2017 华清远见教育集团 版权所有,沪ICP备10038863号-3,京公海网安备110108001117号