day10_cookie_session

  1. 请求转发的快速入门

在serlvet中只要涉及到域对象的时候 应该想到 具有如下的特点:

 

  1. 容器
  2. 有范围大小
  3. SetAttribute(String name, Object obj)

    getAttribute(name)

    removeAttribute(name);

     

    serlvetContext 域对象 :

    范围是 web应用的范围内, 可以使用 如上的 三个方法 来实现 数据的共享

     

     

    request域对象:

    范围是一次请求的范围内, 可以 使用 如上的三个 方法来实现数据共享

     

    通常 开发过程中, 有这样场景, 你请求A serlvet, 但是 A servlet 不想处理你的请求,将你的请求 转发给 B serlvet, 那么这个就会有

    请求转发的 技术的使用.

     

    注意:企业开发中最佳的实践 就是在使用请求转发技术的时候,由于整个过程是在一次请求的范围内,所以 可以使用

    Request域对象的方法 实现数据共享.

     

    Request.getRequestDispatcher("Servlet对外访问路径").forward(request,response);

    1. 请求转发和重定向的区别

    1. 请求转发的一些细节

  • 细节一:

    浏览器首先请求了A , A 将请求转发给了B ,B 又将请求转发给了C. ...

 

  • 细节二:

    在一个serlvet中,不能 同时 多次去调用 转发的 代码 , 同时 转发给 多个资源.

     

     

     

  • 细节三:

    在一次请求响应中 不能 同时调用 getWriter和getOuputStream .

 

所以 在 请求转发的时候 要特别注意, 不要同时调用这两个方法.

否则会抛

  1. 请求转发的应用场景小结

  1. servlet的缺点以及jsp由来

1.请求转发的最佳应用 场景:

 

  • 用户登录的时候:

 

成功: 重定向到网站的首页 去 ... Response.sendRedirect("/day10/index.html");

失败: 使用转发的技术, 再次回到 登录的页面, 并且 在登录的页面 提示友好错误信息

 

 

 

 

 

2.Jsp的快速入门:

1.jsp的由来

  1. jsp的快速入门

2.jsp的介绍

Jsp 本质上就是 serlvet , jsp 在 第一次被访问的时候, 会被 编译生成一个serlvet类, 然后 再编译生成 一个.class文件, 然后再去运行的

 

  • 建jsp页面 , 并且修改 默认的创建的编码:

 

为什么是jsp 本质上就是serlvet:

查看 work 目录下 , 找到了 jsp 对应 的 被翻译成 serlvet类, 打开后发现

 

 

 

所以 jsp 本质上就是 servlet ...

 

结论 : 访问jsp 实际上就是访问 servlet . ..

 

 

Jsp 比 servlet 要来的更加方便. (jsp 访问 不需要 配置 对外访问路径, 直接访问就好 ... )

 

  1. jsp的执行流程详解

 

由于jsp\ 被访问时 存在以上若干步骤, 所以 jsp在第一次访问的时候 会比较慢, 但是 后续的请求 , 就是 拿 内存中的serlvet实例对象

来响应客户端的请求了, 所以 就会很快了.

 

以后如果 要去找jsp 对应的被翻译的servlet, 那么需要 到 tomcat服务器下的 work 目录下去找.

 

  1. jsp中的三种语法介绍

  • 第一种:

    Jsp 声明

    语法: <%! %>

    会被翻译成成员变量,成员方法

  • 第二种

Jsp 脚本表达式

jsp脚本表达式

语法 : <%= %> , 可以使用输出数据到页面上去

这里注意:脚本表达式的是通过out对象的print() 方法输出的

 

 

 

  • 第三种

    Jsp java代码片段

语法:

<% %>

 

 

  1. el表达式快速入门

域对象: servletContext ,request(目前就这两个)

El 表达式是 在jsp 2.0 规范的时候引入一个语法, 主要用于取出 域对象中的数据

 

语法: ${name}

 

取出 存在 域对象中 调用的 setAttribute(name, obj) 的 值 (自动调用setAttribute(name,obj))

 

 

  1. 更改web应用发布到tomcat服务器的名称

  2. 在工程上先F2更改工程的名字(不需要这步,只是为了保持同步)
  3. 在工程上右键,点击属性properties->MyEclipse->Web

    再改变Web Context-root

 

  1. 会话的介绍&使用request和serlvetContext保存用户购买商品分析

 

 

 

 

综上所述,request对象和servletContext对象都不能完成保存商品等待用户结账这个功能

 

 

 

  1. session和Cookie保存用户购买

  1. 使用cookie实现用户上次的访问时间分析

  1. cookie实现显示用户上次时间

 

 

  1. 设置cookie的有效期

发现 又变成了第一次访问了.

 

注意: 默认的情况下, 一个cookie 的有效期是 浏览器进程, 那么在浏览器关闭之后,浏览器 进程没了, 那么相应的 cookie 信息也就没有 .

 

  • 如何 实现在浏览器关闭之后 ,再次打开,仍然可以 显示上次的访问时间呢?

可以自己手动的去设置 cookie 的有效期 就好了,设置 cookie 的有效期之后, 只要是在有效期内, 那么 cookie 就会一直 保留在浏览器的缓存中,

以文件的形式存在.

 

 

16.设置cookie的有效的路径

如果给某个cookie 设置有效路径, 那么就表示 ,当 再次使用浏览器去访问某个 目标资源的时候,如果要访问的目标的路径与 cookie 所包含的

有效路径不匹配, 那么 cookie 不会在访问的时候 带过去给 服务器, 如果匹配, 才会带过去.

 

一般开发过程中, 设置 成什么样 路径 最多 ?

setPath("/") , 写成 / 并不是最好的, 但是 却是 使用最多的. 的确是最简单的一种方式.

 

 

单点登录:CAS

 

17.关于cookie的一些细节

 

 

Cookie.setMaxAge(60*60*24*7);

注意:一个 cookie 持久化保存到硬盘上之后, 实际上你也还是可以通知浏览器 删除 这个cookie 的, 就是将 setMaxAge设置为 0 ,

设置 为0 , 就表示 不保存 cookie 信息了.

但是特别要注意, 删除 cookie的时候, 这个cookie名称和有效路径必须 一致 , 否则不会删除.

 

 

 

18.使用cookie保存用户浏览的商品记录分析

 

 

 

 

19.实现浏览记录的代码

servlet代码

 

JSP代码

 

 

20.清空浏览记录

要清空记录, 实际上就是 将 cookie 给删除. 因为 浏览记录信息是存在 cookie 中的.

  1. clearRecordsServlet

  1. products.jsp

 

 

21.今天的内容小结

Jsp本质上就是 servlet --- 翻译的 servlet --- .class 文件 -- 然后 加载运行

因为jsp对象继承了 httpJspBase (他又继承了httpServlet)

 

Jsp 存在tomcat服务器的work 目录下.

 

 

 

 

 

Jsp中的三种语法:

第一种:

<%! %> jsp 声明

第二种:

<%= %> jsp 脚本表达式 , 用于输出数据到 浏览器页面 --- out

第三种:

<% %> java代码片段, 可以写任何的java代码

 

El表达式 :

只用于取出 域对象中的值

语法 : ${name}

 

Cookie& session:

Cookie: 客户端的技术.

Session: 服务器端的技术 , 域对象

 

作业

Cookie 做了两个案例. (把两个案例写出来 ...)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值