记住我cookie功能实现

编码处理

  1. get请求编码: tomcat8以上已经处理,不需要管

  2. post请求编码, 调用request.setCharacterEncoding("UTF-8");

  3. 响应编码设置: response.setContentType("text/html;charset=UTF-8");

  4. 2,3编码处理的代码在获取参数之前, 响应数据之前, 2,3 作为servlet前两行代码

登录实现: 错误信息, 保存request域, 转发到login.html

html无法访问域对象, 域对象是java对象, 如果想访问域对象, java的代码, JavaEE 提供了jsp

jsp

包含HTML与java脚本, 作为展示, jsp也是一个动态资源, 浏览器无法直接访问, 浏览器请求jsp, 需要web服务器,执行jsp的代码, 执行之后的结果转换静态的html,响应给浏览器

jsp的java脚本写法:

  1. <% %>: java方法能写的代码,都可以写在它内部

  2. <%= %> : 表达式, 表达式的结果在页面展示

  3. <%! %> : 定义属性,定义方法

jsp九大内置对象-- 面试题

内置对象: 不需要创建,可以直接使用

四大域对象: pageContext, request,session,application

响应对象: response

响应流对象: out

配置对象: config

表示this: page

异常对象: exception

html 转换为jsp

1.创建一个jsp页面, 文件名与对应html文件名一样

2.把html页面的所有内容拷贝到jsp, 从<%@ page%> 之后

3.把相对路径转换为绝对路径, 项目设置发布项目名: / 绝对路径: 全部以 /开头

如果设置发布项目名: /xx 绝对路径: /xx开头, /xx动态获取: <%=request.getContextPath()%>

 

记住我

 

当用户登录页面, 勾选记住密码, 登录, 登录成功之后, 下一次再登录, 显示上一次登录的用户名和密码

用户名,密码存储位置:

域对象: application域, 所有的用户都可以访问, 不安全, 不考虑

数据库: 存储很多用户的信息, 无法区分

JavaWeb中: 提供Cookie(小甜点), 特征: 产生与服务器, 保存在客户端浏览器上

key/value的形式; key; string, value: String

标准: 4kb, 浏览器厂家扩展, cookie不能跨浏览器

 

java操作cookie:

服务器这边: 创建cookie: 构造方法 Cookie(String name,String value)

保存到客户端的方法: response对象的方法: addCookie(Cookie)

如果没有addCookie(), 那这个cookie不会保存到客户端

服务器获取cookie:

cookie是通过请求头传递到服务器:

request对象的Cookie[] getCookies()

Cookie的细节

  1. Cookie的max-age

    max-age: cookie最大存活时间 Cookie的setMaxAge(int )

    默认值: -1 在会话中存活, 打开浏览器到关闭浏览器,称为一次会话

    > 0 Cookie存活数值(秒)时间, 时间一旦, 浏览器把cookie删除

    0: 立即删除Cookie

  2. Cookie的path

    设置Cookie的path, 限制那些资源允许访问

    资源的上级目录下的cookie可以访问

    资源的上上级目录的cookie可以访问

    ...

    /目录下Cookie可以访问.

    Cookie的path设置为/ ,表示该cookie可以被这个项目的所有的资源访问

  3. 修改Cookie的value

    调用Cookie的setValue()

    隐形修改:

    Cookie c2 = new Cookie("name","wangwu")

    如果客户端浏览器存在该key的cookie,并且path一样, 修改cookie的值

    如果客户端浏览器不存在该key的cookie, 添加

    如果客户端浏览器存在该key的cookie,但是path不一样, 添加

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值