A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 厦门校区   /  2018-6-5 19:00  /  5425 人查看  /  59 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 滴滴eclipse启动 于 2018-6-5 23:50 编辑

江某人:

Cookie的常用的API:
        getName();
        getValue();
        setDomain(String domain); -- 设置Cookie的有效域名.
        setPath(String path); -- 设置Cookie的有效路径.
        setMaxAge(int maxAge); -- 设置Cookie的有效时间.
JSP的嵌入Java代码:JSP的脚本元素
        <%!    %>                :翻译成类中的成员部分. 定义变量,定义方法,定义类.Servlet是线程不安全的,尽量少在类中定义成员属性!!
        <%     %>                :翻译成类的service方法内部的内容. 定义变量,定义类,直接写代码块.
        <%=    %>                :翻译成service方法内部的out.print();
掌握显示用户的上次访问时间案例:
HttpServletResponse有一个方法:
        void addCookie(Cookie cookie);
获得浏览器带过来的Cookie:
HttpServletRequest有一个方法:
        Cookie[] getCookies();
创建一个Cookie对象:
        Cookie(String name,String value);

掌握显示商品浏览记录案例:
Cookie的分类有关:
        会话级别的Cookie:默认的Cookie.关闭浏览器Cookie就会销毁.
        持久级别的Cookie:可以设置Cookie的有效时间.那么关闭浏览器Cookie还会存在. 手动销毁持                久性Cookie. setMaxAge(0)---前提是有效路径必须一致.
浏览记录实现步骤:

                 接收商品id.
                接收从客户端带过来的所有Cookie.
                从Cookie的数组中查找指定名称的Cookie.
                判断是否是第一次浏览商品:
                 第一次浏览商品
                 直接将商品的ID存入到Cookie.
                 将Cookie回写到浏览器.
                不是第一次浏览商品 1-2
                 判断当前的商品是否已经在浏览记录.
                 已经存在: 2-1 移除当前元素,将当前元素添加到最开始.
                 没在浏览记录中:
                 判断是否已经超过了最大长度:如果超过 2-1-3:删除最后一个                                         将当前元素添加到最前面.
                 没有超过:直接将该元素添加到最前位置.
                 将转换的id的值存入到Cookie,回写浏览器.

回复 使用道具 举报
苏海斌
会话技术:cookie  session
cookie:保存在浏览器
session:保存在服务器
cookie的使用:
常用API:
getName();
getValue();
setDomain(String domain); -- 设置Cookie的有效域名.
setPath(String path); -- 设置Cookie的有效路径.
setMaxAge(int maxAge); -- 设置Cookie的有效时间.
分类:
会话级别的Cookie:默认的Cookie.关闭浏览器Cookie就会销毁.
持久级别的Cookie:可以设置Cookie的有效时间.那么关闭浏览器Cookie还会存在
手动销毁持久性Cookie. setMaxAge(0)---前提是有效路径必须一致.

Session的概述:
Cookie本身是有大小和个数的限制.Session没有限制.Cookie的数据保存在客户端,Session数据保存在服务器端.
Session的执行原理:基于Cookie的.
获得Session:
request.getSession();
Session是域对象:
作用范围:
服务器端第一次调用getSession()创建session.
三种情况销毁session:
1.session过期. 默认过期时间为30分钟.
2.非正常关闭服务器.如果正常关闭session序列化到硬盘.
3.手动调用session.invalidate();
作用范围:多次请求.(一次会话)

JSP:Java服务器端页面
JSP嵌入Java代码:
1<%! %>翻译成类中的成员部分,定义变量,方法,类;Servlet是线程不安全的,尽量少在类中定义成员属性!!!
2<%  %>翻译成类的service方法内部的内容,定义变量,类;直接写代码块
3<%= %>翻译成service方法内部的out.print();
回复 使用道具 举报
陈世彪:
今天学习了Cookie
Cookie几个常用API
setPath(); 设置有效路径
setMaxAge() 设置Cookie的有效时间
getName() 获取cookie名
getValue() 获取cookie值
学会在JSP中嵌入Java代码
<%!    %>:定义于类中成员,成员变量
<%     %>:定义于成员方法中
<%=   %>:向页面输出 out.print();
掌握显示用户的上次访问时间案例
先获取时间
System.currentTimeMillis()
再通过Cookie往里设置
  Cookie c = new Cookie("lastVisit",""+System.currentTimeMillis());
获取一个Lone值
Long l =Long.parseLong(cookie.getValue());
将long值转成时间格式
  Date date = new Date(l);
使用date.toLocaleString();来显示
掌握显示商品浏览记录案例
接收商品id;
接收从客户端带过来的所有Cookie
从Cookie的数组中查找制定名称的Cookie
判断是否是第一次浏览商品:
第一次浏览商品
直接将商品的ID存入到Cookie
将Cookie回写到浏览器
不是第一次浏览商品:
判断当前商品是否已经在浏览记录中
已经存在:移除当前元素,将当前元素添加到最开始
没在浏览记录中:
判断是否已经超过了最大长度:如果超过:删除最后一个 将当前元素添加到最前面
没有超过:直接将该元素添加到最前面位置
将转换的id的只存入到Cookie中,回写到浏览器;
回复 使用道具 举报
张育辉
cookie总结
        一:什么是会话       
                        用户打开一个浏览器访问页面,访问网站的很多页面,访问完成后将浏览器关闭的过程称为是一次会话.
                常见的会话技术:
                        Cookie        :将数据保存到客户端浏览器.
                        Session        :将数据保存到服务器端.
          二:cookie常见的方法;
                        1:获取,从请求获取,浏览器带过的 request.getCookies(),返回的是一个数组
                        2:遍历数组,查询是否有自己想要的cookie,根基getValue()获得值,getName()获取名字
                        3:创建一个cookie对象通过new cookie("名称",值)可以通过 Cookie("清空的名字", null)来清空cookie,别忘记添加回去
                        4:setDomain(String domain); -- 设置Cookie的有效域名.
                        5:setPath(String path); -- 设置Cookie的有效路径.
                        6:setMaxAge(int maxAge); -- 设置Cookie的有效时间.
     三:Cookie的分类有关:
                        会话级别的Cookie:默认的Cookie.关闭浏览器Cookie就会销毁.
                        持久级别的Cookie:可以设置Cookie的有效时间.那么关闭浏览器Cookie还会存在. 手动销毁持久性Cookie. setMaxAge(0)---前提是有效路径必须一致.
JSP的简单概述
                什么是JSP        :Java Server Pages(Java服务器端页面).JSP = Java代码 + HTML的元素 + JSP内置东西
                SUN公司为什么推出JSP动态网页开发技术:
                SUN公司推出的Servlet技术进行动态网页开发.发现Servlet自身有不足没有办法与ASP,PHP技术竞争.
                        想在动态网页中输出表单.在Servlet中获得PrintWriter out = response.getWriter();
                out.println(“<form action=’’ method=’’>”);
                out.println(“</form>”);
                SUN又推出了动态的网页开发技术就是JSP.
JSP的执行过程:
        JSP会被翻译成Servlet,编译成class进行执行的.
        JSP的嵌入Java代码:JSP的脚本元素
                <%!    %>                :翻译成类中的成员部分. 定义变量,定义方法,定义类.Servlet是线程不安全的,尽量少在类中定义成员属性!!
                <%     %>                :翻译成类的service方法内部的内容. 定义变量,定义类,直接写代码块.
                <%=    %>                :翻译成service方法内部的out.print();打印
回复 使用道具 举报
刘文峰
cookie是一种会话技术,可以将服务器的一些数据存到浏览器上,在一定时间内访问时可以直接从浏览器上拿数据.cookie的有效时间默认为一次会话,即打开浏览器到关闭浏览器的时间,如果只是关闭网页cookie里的数据是不会清空的.
Cookie有几个常用的方法:
new Cookie(cookie的名字,对应的值);创建一个Cookie;
getCookies();获得所有的cookie;
addCookie();添加一个cookie响应给浏览器;
setPath();设置cookie的有效路径;
setMaxAge();设置cookie的有效时间,可以覆盖掉默认的有效时间
向jsp嵌入代码有三种方式:
<%!  %>:这里的代码可认为是类中的成员部分
        <%     %>:可认为是service方法中的代码
        <%=   %>:相当于向页面输出;

记录上次登录的时间案例:
如果用户是第一次登录时创建一个cookie并将登录的时间的毫秒值(毫秒值需转为字符串)响应给浏览器,如果不是则将cookie的值(取出来的毫秒值是字符串,需转为long类型)取出来,将毫秒值转为一个data对象,最后向页面输出上次登录的时间即可.
回复 使用道具 举报
颜琳琳:

Cookie是一个会话技术,用户打开一个浏览器访问页面,访问网站的很多页面,访问完成后将浏览器关闭的过程称为是一次会话.
常见的会话技术:
Cookie        :将数据保存到客户端浏览器.
Session        :将数据保存到服务器端.
Cookie的使用:
向浏览器保存数据:HttpServletResponse有一个方法: addCookie(Cookie cookie);
获得浏览器带过来的Cookie:HttpServletRequest有一个方法:Cookie[] getCookies();
Cookie(String name,String value);
Jsp中嵌入代码有三种方法:<%!  %>翻译成类中的成员部分. 定义变量,定义方法,定义类<%   %> 翻译成类的service方法内部的内容. 定义变量,定义类,直接写代码块.
<%=  %>翻译成service方法内部相当于out.print();
显示用户的上次访问时间案例:
  这个案例步骤 1.获得浏览器中带过来的Cookie信息,从Cookie数组中查找有没有指定名称的Cookie  2.判断用户是否是第一次访问: 3. 如果是第一次:显示欢迎,记录当前访问的时间存入到Cookie中. 如果不是第一次:显示欢迎,上一次访问时间,同时记录当前访问的时间存入到Cookie中。(注:其中用到常用方法 getName(); getValue();  setPath(String path); -- 设置Cookie的有效路径.  setMaxAge(int maxAge); -- 设置Cookie的有效时间.
Cookie分为:
  会话级别的Cookie:默认的Cookie.关闭浏览器Cookie就会销毁.
  持久级别的Cookie:可以设置Cookie的有效时间.那么在有效的时间内关闭浏览器Cookie还会存在. 手动销毁持久性Cookie. setMaxAge(0)---前提是有效路径必须一致.)
显示商品浏览记录案例:
   这个案例的步骤:1.接收商品的id
* 2.获取浏览器传来的cookie
* 3.获取cookie数组的指定名称
* 4.判断是否的第一次浏览
*   是第一次浏览
*      将该商品的id添加进去,返回给浏览器
*   不是第一次浏览 1-2
*      判断当前商品是否已经在浏览
*         存在,2-1就将当前元素移除,然后再将当前元素添加到最前面
*      不存在
*        判断是否超出最大长度
*          超出了,就将最后那个商品删除,当前元素添加到最前面
*          没有超出,就在将当前元素添加到最前面
* 5.将转换的id值存入Cookie中,将其返回给浏览器
回复 使用道具 举报 1 0
张述明
今天主要有两个案例  学习了cookie和对jsp进行简单的了解
首先就是要知道什么是会话技术

会话技术:用户打开浏览器访问页面,访问网站的很多页面,访问完成后将浏览器关闭的过程称为是一次会话

常见的会话技术:
Cookie : 将数据保存到客户端浏览器

cookie是储存私人数据的
私有的数据,购物信息数据保存在会话技术中

使用会话技术:

[COOKIE]
Cookie 向浏览器保存数据

Void addCookie(Cookie cookie);
获得浏览器带过来的Cookie:
HttpServlet Resquest 有一个方法:
Cookie[] getCookie();

创建 一个Cookie对象
Cookie (String name, String value);

Jsp的嵌入java代码
1.<%!  XXXX  !%>   翻译成类中的成员部分,定义变量,定义方法,定义类,SERVLET是线程不安全的,尽量少在类中定义成员属性(声明)
2.<%    %>:翻译成类的Servlet方法内部的内容,定义变量,定义类,直接写代码块(代码块)
3.<%= Java的表达式 %>翻译成Service方法内部的out.print();表达式后面不能加封号

Cookie 常用的API

Getname()
Getvalue()

SetDomain(String Domain); 设置Cookie的有效域名

setPath(String path) –设置Cookies的有效路径

setMaxAge(int MaxAge)—设置ookie 的有效时间

Cookie的分类有关
会话级别的cookie:默认的cookie.关闭浏览器Cookie 就会销毁
持久级别的Cookie: 可以设置Cookie的有效时间,那么关闭浏览器Cookie还会存在,手动销毁持久性Cookie.setMaxAge(0).—前提是有效路径必须一致
回复 使用道具 举报
许煜 每日总结
Cookie
  生命周期:一次会话(即打开浏览器到关闭浏览器)
  数据存储位置 :客户端 也就是存储在浏览器端
  数据类型 Cookie(String key,String value);key表示属性名 value表示属性值
  从浏览器到servlet,cookie信息包含在请求体中.
  获取方法 request.getcookies();返回cookie类型的数组 Cookie[]cookie;
  Cookie通过响应 返回添加到浏览器的cookie池当中,原cookie属性名和新返回的cookie属性名相同的话,刷新属性值. 方式 response.addcookie(Cookie cookie);添加cookie回浏览器
JSP Java Server Pages Java服务器端页面
编译过程 jsp页面上的java代码-->servlet-->class文件-->执行
<%!     %>: 编译成servlet类中成员部分,定义成员变量,成员方法.
注:servlet线程不安全,应少定义成员属性.servlet是单例类,所有访问使用的都是同一个对象,成员属性在所有访问共享,所以不安全.
  <%      %>: 编译成servlet类中的service方法内部的内容,可用以定义变量,定义方法,直接写入代码块.
  <%=     %>: 编译成service方法内部的out.print( )括号中的内容,所有这段代码不需要加;(封号)
  Cookie默认是关闭浏览器就销毁 通过setmaxage()设置持续时间来延长cookie的作用时间
Cookie默认路径为当前web项目 可已通过setpath()修改有效路径
  手动销毁持久级别cookie setmaxtime=0;
Request和response的一点补充
  Request生命周期 访问就创建 response响应结束就摧毁
重定向和转发
  重定向更倾向于在某种情况下跳转到指定页面 和转发更倾向于传递数据和信息到第三个页面
浏览记录案例小结
   分析步骤 主要核心思想是将数据浏览过的数据的id存放到cookie中即可 按照步骤实现需求即可 其实也不难
最后提一点小tips 有效规避空指针异常  如以下判断例子
1”String”.equls(Cookie.getName( ))
2 Cookie.getValue().equals(“String”)
1和2 只是改变了”String”和value的位置, 两者都是字符串,看起来并没有多大差别.然而实际情况是 2很容易产生空指针异常而1就不会.原因在于基本上null不能调用方法但是null经常可以作为所调用方法的参数,所以写代码时 调用方法的对象应该使用更不容易为null,容易为null的就尽量置于后面.本例中 “String”是被写死的,肯定能调用equals方法而value则存在为null的可能性 ,容易引发空指针异常.
回复 使用道具 举报
李思贤:        今天学习了会话技术
                什么是会话技术:就是一个用户打开浏览器,访问网站的很多页面,访问完成后将浏览器关闭,这个过程就是一次会话
常见的会话技术:
                1.Cookie        2.Session(明天学习)
        Cookie可以将数据存到客户端浏览器中:
获取cookie request.getCookies();返回一个cookie数组
向浏览器存入cookie response.addCookie(String name,String value);

Cookie 常用API:getName();获取存入的cookie名 getValue();获取存入的cookie值

Cookie常用的方法:
                setPath() 设置Cookie的有效路径
                setMaxAge() 设置Cookie的有效时间
                SetMaxAge()的设置存活时间,就算浏览器关闭了,重登也有记录
        不设置MaxAge方法的话默认MaxAge的值为0

jsp中嵌入java代码的三种方式和区别。
<%!  %>中嵌入的是类中的成员部分。但Servlet是单线程,不安全,所以我们不在类中定义成员属性。
<%  %>中写的是类的service方法内部的内容。可直接写代码块。
<%=  %>中写的是service方法内部的out.print()的括号内的东西,它的结果是直接打出这些内容。       
回复 使用道具 举报
这几天学了两个域,一个是ServletContext 作用在全Web工程,功能相当强大,是在服务器启动的时候就会创建一个单独的ServletContext,被所有的所共享, setAttribute是用来存取对象用的,前面存个类型,后面存值,当类型一样时,后面的值会自动覆盖,对应的方法有getAttribute 是用来获取的,ServletContext在服务器关闭 和项目被服务器移除的时候所销毁.平常是用来做在访问人数,

Response 域对象,在请求的时候创建,在响应后销毁,存在的生命周期短的可伶,
重定向的两种方法
Response.setStatus(302) 302是代表重定向
Response.setHeader(“location”,”文件路径”)  location 代表位置的意思
2. 第二种方式
Pesponse.sendRadirect(“文件路径”)
页面刷新跳转
Response.setHeader(“refresh”,”5;文件路径”)  refresh 是刷新的意思
request.getRequestDispatcher(String path).forward(request,response);
转发 request.getrequeestDispatcher(“文件路径”).forward(request,response)
在说说转发和重定向的区别
重定向是 浏览器向服务器发送一次请求,服务器回应一句,浏览器通过回应的在找到另外一个,在返回给服务器,两次请求,两次响应,地址栏会发生改变,可以跳转到任何地方
转发的话 比如张三去找李四借钱,李四正好穷的开不了锅了,正好和张三关系很好,就找王五借了钱给张三,张三还钱还是给李四,一次响应和一次请求,作用只能在本域中,地址栏不会发生改变
回复 使用道具 举报
郑志祥


Day11 Cookie的入门
Cookie的定义:用户打开一个浏览器访问页面,访问网站的很多页面,访问完成后将浏览器关闭的过程称为是一次会话.
Cookie与Session的区别: Cookie        :将数据保存到客户端浏览器.
Session        :将数据保存到服务器端.
setPath(String path); -- 设置Cookie的有效路径.   
setMaxAge(int maxAge); -- 设置Cookie的有效时间. 如果时间填入0,在浏览器中则不存在cookie
请求--转发
request.getRequestDispatcher(“路径”).forward(request, response);
响应-重定
//重定向(两次请求,第一赋值,只有第一响应才会有值,第二无值)
response.sendRedirect("/day10_1/SevletDemo2");
案例分析(获取是否浏览过此页面与上次浏览的一个时间)
1.获得所有的cookie,得到一个cookies数组
2.默认时间cookie为null
3.判断cookie数组是否为null
4.不为null才遍历
5.数组中如果有名字叫date的cookie说明不是第一访问
//不是第一访问就把名字叫date的cookie赋值给c1
//赋值成功后,c1就是我们上次保存成功的cookie
//如果c1为null说明是第一次访问
//第一次
               
//第N次
//拿到C1中记录的访问时间,并打印出来
//每次访问都会重新存一个当前访问时间给cookie
//每次访问都将cookie添加响应对象中,响应给浏览器
                       
回复 使用道具 举报
黄志彬

今天学习了会话,常见的会话技术有两个,Cookie(将数据保存到客户端浏览器),Session(将数据保存到服务器端),今天主要学习了cookie。打开浏览器,关闭浏览器就是一次会话。

Cookie的分类有关:
会话级别的Cookie默认的Cookie关闭浏览器cookie会销毁
持久级别的cookie可以设置cookie的有效时间,name关闭cookie还会存在手动销毁持久性cookie,setMaxAge(0)----前提是有效路径必须一致



request.getCookies() 返回的是Cookie[] 数组
response.addCookie(cookie) 向客户端发送cookie
cookie中有name和value,提供了三种方法,getName(),getValue(),setValue();
setDomain ----设置cookie有效域名
setPath(String path)  ----设置Cookie的有效路径
setMaxAge(int maxAge)----设置Cookie的有效时间

JSP=java代码+HTML的元素+JSP内置的
JSP执行过程:会被翻译成servlet,编译成class执行的
回复 使用道具 举报
吴俊斌
Cookie常用的API:
setPath(String path);--- 设置有效路径
setMaxAge( int maxAge) --设置Cookie的有效时间
getName()---获取cookie名
getValue()---获取cookie值

jsp中嵌入java文件

<%! %> 在成员方法中,会出现线程问题,不推荐使用
<% %>  在方法中,一般使用它
<%= %>  直接在网页中显示

回复 使用道具 举报
本帖最后由 AsusCoder 于 2018-6-15 00:42 编辑

曾耀峰

web04_Cookie会话技术总结
    1.理解一下Cookie的工作原理:我们可以想象浏览器自带了一个Cookie池。用来存放服务器给浏览器的Cookies信息。首先,当浏览器第一次访问服务器时,还没有cookie。是服务器向浏览器存入一个cookie的,存入的cookie带有这个服务器的地址(使用setPath("/day0605")),唯一的键,和存储的值。下次浏览器再访问服务器时,就带着这个唯一的服务器中去做数据处理
   2.根据Cookie的寿命分为会话级别和持续性级别缓存。通过设置cookie的最大年龄setMaxAge("毫秒值")来定义Cookie的缓存级别。默认没有setMaxAge的cookie是会话技术,当浏览器访问服务器,再关闭浏览器的时候,会话级别的cookie会被销毁。持续性的会话技术根据setMaxAge("60*60*24*7")表示7天。也可以设置更长。
  3.Cookie的增删改查。
   增加:response.addCookie(cookie)往往放在服务器代码最后。
   删除:通过setMaxAge(0),寿命为0会销毁cookie
   修改:cookie.setValue("history",null); 会根据cookie的名字覆盖原来的值
   查找:getName(),getValue()等方法查到Cookie 的信息
4.总结:Cookie作为服务器向浏览器输出信息并缓存一定时间到用户的磁盘中,有了这个技术,可以做用户浏览商品历史记录,用户访问网站次数等操作。
   
  通过案例一"记录用户的上次访问时间"学习了如何接收用户请求的cookies。当第一次访问时候,遍历cookies得到的cookie为空,就新建一个cookie,得到毫秒值,再转换为日期对象Date,存入cookie;下次再访问不为空,取出里面的日期值并打印。
  通过案例二"用户商品浏览的历史记录",这个难度太高了。抄了两遍代码自己写了一遍,服务器productServlet的代码步骤繁多。
有以下知识点:
1.分离出id值的方法:String[] ids = value.split("-");
2.把分离出来的字符串转换成链表集合LinkedList:LinkedList<String> list = new LinkedList<>(Arrays.asList(ids));
Arrays工具类中的asList把数组转换为集合;List接口的构造函数可以加一个集合进行构造
3.LinkedList在增删方面提供了独有的方法增加到首位addFirst(),删除末位removeLast()等
4.在前端页面利用Jsp技术接收共享服务器的数据,比较不懂的是<%%>jsp代码的嵌套,明天会学到。
5.jsp动态获取当前地址:${pageContext.request.contextPath}/ProductServlet?id=2后面跟一个Servlet的虚拟地址,就访问到了服务器。

点评

setMaxAge("毫秒值")有误! 参数是Int类型,不用加“”,而且是秒,不是毫秒!  发表于 2018-6-6 11:30
回复 使用道具 举报
柯建程
会话技术:
什么是会话技术,用户打开浏览器访问页面,访问完成后将浏览器关闭过程称为一次会话
常见的会话技术
cookie:将数据保存到客服端浏览器
seesion: 将数据保存到服务器端     

为什么使用会话技术
使用servletcontext保存的话,因为servletcontext是整个web共享区域,谁去买单的话,都包含所有加入购物车里面的商品.
使用request保存的话,request作用范围是一次请求范围,当商品加入购物车,在浏览别的商品继续加入购物车时,前面保存的商品就会消失,因为之前的请求结束了
'cookie 保存的话, 当商品加入购物车,服务器聚会返回一个set-cookie的值保存到客户端中,访问别的商品时,客户端就会带着这个值去访问.
cookie   在浏览器保存数据
从服务器向客户端保存数据  用response
addCookie
获得浏览器带过来的数据  用request
getCookie
创建一个Cookie对象
Cookie(String name,String valve)
JSP简单概述
jsp=java+html+jsp内置东西
什么JSP  java服务器端页面
jsp动态网页开发技术
jsp执行过程
jsp也会被翻译成servlet,编译成class进行执行.(work)
jsp被翻译成servlet,编译成class进行执行,jsp也是继承了servlet
有servlet方法.
jsp嵌入java代码,jsp的脚本元素
<%! %> 被翻译成类中的成员部分,成员变量,成员方法,内部类,serlvet线程不安全,尽量少在类中定义成员属性(jsp声明)
<%  %>翻译成service方法内部内容,定义变量,定义类,直接写代码(jsp代码块)
<%= %>翻译成service方法内部的out.println(),表达式里面不能加分号(表达式)


回复 使用道具 举报
郑学馨
案例一:(利用cookie完成页面打印上次访问时间)
        第一步:创建servlet
        第二步:客户端第一次向服务器发送请求:
                2.1:获得请求中存储的cookie对象(cookie[] c=require.getcookies()注:这里返回的是一个数组)
                2.2:判断或的cookie[]是不是存在(如果不为Null这说明这是第一发送请求!)
        第三步:创建一个cookie变量cke:赋值为null;
                3.1:if(c!=null){遍历数组c;}
                        3.1.1:判断数组c中是否存在一个cookie对象与我们要存入的时间对象名是一致的"date"
                        3.1.2:如果上面为true:则将遍历得到的cookie对象赋值给第三步创建的cookie对象中
                3.2:if(c==null){打印:你是第一个访问的人}
                3.3:else if(c1=null&&cke!==null){打印:上一次的访问时间,}


        第四步:
                创建一个用来存储当前时间的cookie对象:
                cookie ck=new cookie(keyname="date",value=""+System.currentTimeMillis());
                将时间对象存储到cookie中
                response.addcookie(ck)

案例二:        (利用cookie完成页面浏览记录的显示)
        准备工作:设置html页面中商品的id值,
        第一步:新建一个servlet类
        第二步: 2.1:接收客户端传过来的id值;
                2.2:获得客户端带过的cookie值
                2.3:判断传过来的是否是浏览的第一款商品
                        2.3.1:新建一个cookie对象 c;
                        2.3.2:判断客户端带过来的cookie值数组是否为null;
                        2.3.3:如果不为null,遍历该数组,判断是否存在我们要的cookie对象
                        2.3.4:如果存在我们要的对象,则将遍历得到对象值赋值给 c;否则返回null;
                2.4:如果 (c==null)则说明是第一次浏览;
                        2.4.1:新建一个cookie对象"ck",ck=new cookie("name",value);name="我们要的cookie值",value=id
                        2.4.2:设置cookie的使用范围(setpath("/项目名"));
                        2.4.3:设置cookie的生命周期(setmaxage());
                        2.4.4:响应保存在客户端
                2.5:如果 (c!=null)则说明不是第一次浏览
                        2.5.1:首先判断商品是否已经存在浏览记录中;
                                2.5.1.1:获得cookie对象的value值
                                2.5.1.2:将获得的value值按("-")进行切割
                                2.5.1.3:切割后得到一个数组;
                                *2.5.1.4:将数组转换为集合(为什么要转换成集合?数组如何转换成集合)
                                2.5.1.5:进行是否包含判断:
                                2.5.1.6:如果包含:说明之前已经浏览过该商品
                                2.5.1.7:需要将之前的信息移除,并在最开始位置再次插入该信息
                                2.5.1.8:如果不包含:说明没有浏览过该商品:
                                        2.5.1.8.1:判断保存的商品浏览记录的长度是否在我们设置的长度范围内
                                        2.5.1.8.2:如果超过范围:把最后一个商品记录信息移除,然后吧最近浏览的商品记录信息插入在第一位
                                        2.5.1.8.3:如果没超过范围:直接在第一位插入该信息
                2.6:将上面步骤的集合元素取出,封装到cookie中,并响应给客户端
                        2.6.1:新建一个stringbuffer容器,用来储存取出的元素
                        2.6.2:遍历集合,取出元素,按照格式(格式:*-*-*)添加到stringbuffer中
                        2.6.3:将stringbuffer转换为string类型
                        2.6.4:将转换好类型的值存入cookie对象中
                        2.6.5:设置cookie的使用范围
                        2.6.6:设置cookie的生命周期
                        2.6.7:将该cookie对象响应回客户端
回复 使用道具 举报
陈昆明:cookie储存在用户本地终端上的数据,需要注意其几个重点的API(获得,修改,销毁,设置路径和有效时长)
同名cookie多次创建的话,则会覆盖原先同名cookie的值
网页中的信息传入java代码中,如果是正常标签的话,直接写name和value值就行,如果是超链接的话,name得在路径后面加上?xxx=xxx.
清除cookie时,需要保证有效路径一致(setPath)

回复 使用道具 举报
汪志阳
今天主要讲解了会话:用户打开一个浏览器访问页面,访问网站的很多页面,访问完成后将浏览器关闭的过程称为是一次会话.
会话技术:
Cookie:将数据保存到客户端浏览器.
Session:将数据保存到服务器端.
会话技术主要用于购物信息的数据保存,然后就是一些rookie的常用API,获取名字和值:getName(),getValue();
setPath:设置cookie有效路径,setMaxAge,设置有效时间,设置时间能让cookie有效时间更持久,但是更换浏览器登录页面就会导致设置丢失
又介绍了JSP:JSP = Java代码 + HTML的元素 + JSP内置东西,这是一个动态页面开发技术.
在Jsp中写入代码的方式有三种:<%!    %>:翻译成类中的成员部分.定义变量,定义方法,定义类.Servlet是线程不安全的,所以不能过多定义成员变量.
<%     %>:翻译成类的service方法内部的内容.定义变量,定义类,直接写代码块.
<%=    %>:翻译成service方法内部的out.print();
后面就是记录浏览器上次登录时间的案例的步骤思路:
获得浏览器中带过来的所有的Cookie信息,从数组中查找有没有指定名称的Cookie
判断用户是否是第一次访问:(从数组中没有找到指定名称的Cookie)
如果是第一次:显示欢迎,记录当前访问的时间存入到Cookie中.
如果不是第一次:显示欢迎,上一次访问时间,同时记录当前访问的时间存入到Cookie中。
浏览记录的代码案例不是很懂,所以无法总结
回复 使用道具 举报
杜石苇几种常用API

Cookie类的主要方法
No.
方法
类型
描述
1
Cookie(String name, String value)
构造方法
实例化Cookie对象,传入cooke名称和cookie的值
2
public String getName()
普通方法
取得Cookie的名字
3
public String getValue()
普通方法
取得Cookie的值
4
public void setValue(String newValue)
普通方法
设置Cookie的值
5
public void setMaxAge(int expiry)
普通方法
设置Cookie的最大保存时间,即cookie的有效期,当服务器给浏览器回送一个cookie时,如果在服务器端没有调用setMaxAge方法设置cookie的有效期,那么cookie的有效期只在一次会话过程中有效,用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一次会话,当用户关闭浏览器,会话就结束了,此时cookie就会失效,如果在服务器端使用setMaxAge方法设置了cookie的有效期,比如设置了30分钟,那么当服务器把cookie发送给浏览器时,此时cookie就会在客户端的硬盘上存储30分钟,在30分钟内,即使浏览器关了,cookie依然存在,在30分钟内,打开浏览器访问服务器时,浏览器都会把cookie一起带上,这样就可以在服务器端获取到客户端浏览器传递过来的cookie里面的信息了,这就是cookie设置maxAge和不设置maxAge的区别,不设置maxAge,那么cookie就只在一次会话中有效,一旦用户关闭了浏览器,那么cookie就没有了,那么浏览器是怎么做到这一点的呢,我们启动一个浏览器,就相当于启动一个应用程序,而服务器回送的cookie首先是存在浏览器的缓存中的,当浏览器关闭时,浏览器的缓存自然就没有了,所以存储在缓存中的cookie自然就被清掉了,而如果设置了cookie的有效期,那么浏览器在关闭时,就会把缓存中的cookie写到硬盘上存储起来,这样cookie就能够一直存在了。
6
public int getMaxAge()
普通方法
获取Cookies的有效期
7
public void setPath(String uri)
普通方法
设置cookie的有效路径,比如把cookie的有效路径设置为"/xdp",那么浏览器访问"xdp"目录下的web资源时,都会带上cookie,再比如把cookie的有效路径设置为"/xdp/gacl",那么浏览器只有在访问"xdp"目录下的"gacl"这个目录里面的web资源时才会带上cookie一起访问,而当访问"xdp"目录下的web资源时,浏览器是不带cookie的
8
public String getPath()
普通方法
获取cookie的有效路径
9
public void setDomain(String pattern)
普通方法
设置cookie的有效域
10
public String getDomain()
普通方法
获取cookie的有效域


在JSP中使用JAVA代码是用<%   
中间插入代码    可以想象成大括号     这里面可以放HTML代码   HTML代码在里面就相当于文本  后面会自动编译  %>



上次访问时间的案例是用date来存入 cookie里面  判断用户是否第一次登陆 (用之前的getServletContext().getAttribute("count");的count哦按段)  不管是不是第一次登陆都添加 个date当前时间的毫秒值到cookie里面  Cookie c=new Cookie("time",System.currentTimeMillis());   如果不是第一次登陆就显示上次访问用  cookie.getvalue 获取上次访问时间



回复 使用道具 举报
                                       
Cookie(本地数据)
会话技术
        用户打开浏览器到关闭浏览器的过程称为一次会话

常见的会话技术
        Cookie: 将数据保存到客户端浏览器
        Session: 将数据保存到服务器端

Cookie技术的使用
        向浏览器添加Cookie本地数据
                response.addCookie(Cookie cookie)
        获取浏览器中的所有Cookie本地数据
                Cookie[]        request.getCookies()
        创建Cookie对象
                Cookie(String key,String value)
                                 
                                         JSP
概述
        Java Server Pages(Java服务器页面) 动态网页开发技术
        JSP= java代码 + HTML的元素 + JSP内置东西
执行过程
        被访问的时候 自动翻译成一个Servlet(java类) 然后编译成class文件来执行

嵌套java代码(JSP的脚本元素)
        声明:        <%!        %>: 翻译成类中的成员变量 可以定义 变量 方法 类.. Servlet线程不安全,少在类中定义成员
        代码块:        <%        %>: 翻译成类的service方法内部的内容.可以定义 变量 类 代码块
        表达式:        <%=        %>: 输入的内容会打印在页面中 表达式中不能加 ;


                                        打印上次登录成功的时间
步骤
        1 获取请求中的所有Cookie对象
        2 遍历 查找有没有key相同的(没有说明是第一次登陆)
        3 根据结果打印语句
        4 响应一个Cookie对象到浏览器中 value为登录时间



Cookie的常用API:
        getName();
        getValue();
        setDomain(String domain);        设置Cookie的有效域名
        setPath(String path);        设置Cookie的有效路径
        setMaxAge(int maxAge);         设置Cookie的有效时间

Cookie的分类:
        会话级别的Cookie:        默认的Cookie.关闭浏览器Cookie就会销毁.
        持久级别的Cookie:        可以设置Cookie的有效时间  关闭浏览器Cookie还会存在
                        手动销毁持久性Cookie. setMaxAge(0) 前提是有效路径必须一致.


                                        浏览记录
${pageContext.request.contextPath} JSP中获取当前项目名

步骤
        1 点击图片跳转到Servlet中 并返回属性名和value
        2 获取value值
        3 获取请求体中的所有Cookies
        4 调用工具类 传入数组和value 判断是否是第一次浏览
        5 第一次浏览 响应一个Cookie回浏览器  否的话 切割value值转为字符串数组 将数组转化为LinkedList集合
        6 判断集合中是否存在value值 存在的话删除该值 在添加为第一个
        7 不存在的话 判断集合长度是否大于指定大小
                超过时删除最后一个元素 添加现有元素到第一个 不超过则直接添加到集合的第一个位置里
        8 遍历集合 拼接为字符串  截取字符串 形成 x-x-x 样式的字符串
        9 响应一个Cookie回浏览器中
        10 跳转到jsp页面中
        11 在jsp中判断Cookies数组是否为空 不为空遍历数组 打印浏览图片
        (可以在返回Cookies时可以设置有效时间)
清空浏览记录
        获取指定的Cookies数据 setMaxAge(0)销毁数据  并响应回JSP中
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马