web路径问题和会话技术(Cookie和Session)

一.Base

	1.base介绍
	①base是HTMl语言的基准网址标签,是一个单标签,位于网页头部文件的head标签内
	②一个页面最多使用一个base元素,用来提供一个指定的默认目标,是一种表达路径和连接网址的标记
	③常见的url路径分别有相对路径和绝对路径,如果base标签指定了目标,浏览器将通过这个目标来解析当前文档中的所有相对路径,包括标签有(a,img,link,form)
	④浏览器解析前会在路径前加上base给的目标,而页面中的相对路径也都转换成了绝对路径.使用了base标签就应带上href属性和target属性
	案例:在头结点写入该标签 <base href="http://localhost:8080/webpath/"  >表示当前页面访问的所有资源的路径都从这个路径开始计算  ,也可以简写成"/webpath/" 浏览器会把第一个"/"解析成为"http://localhost:8080/"
	
	注意:在编写资源路径时,需要注意这个路径前面有没有"/"(没有"/"在浏览器端被解析则以当前浏览器地址栏去掉资源部分作为相对路径.有"/" 则"/"解析为http://主机:端口/),注意这个路径在哪里被解析(在浏览器端解析没有"/"以当前浏览器地址栏去掉资源部分作为相对路径,有"/"则"/"解析为http://主机:端口/工程路径/ ),注意这个路径最后有没有斜杠,有的话表示一种路径,没有就表示一种资源

二.会话技术Cookie

	会话可以理解为用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器整个过程称之为一个会话,需要解决的问题是浏览器与服务器进行会话的过程中会产生一些数据,而服务器端需要将这些数据保存比如登录名,密码等.
	1.Cookie技术  Cookie技术是客户端技术,服务端把每个用户的数据以Cookie的形式写给用户各自的浏览器,当用户使用浏览器再去访问服务器中的web资源时,就会带着各自需要的数据去到服务端,Cookie数据保存在浏览器.

![请添加图片描述](https://i-blog.csdnimg.cn/direct/5da13d3348374e92b74f89a2dad420ad.png在这里插入图片描述
2. cookie里的jsessionID键值对 用于区分不同的对话,比如不同的网站,JSESSIONID的值都不一样,同一网站的不同会话值也不一样
3. Cookie的生命周期: 指的是如何管理Cookie什么时候被销毁
cookie.setMaxAge (x) ,浏览器根据创建的时间,计时到x后,浏览器再次发送http请求就不会携带该cookie 当x为0或者分负数时表示马上删除Cookie
当未设置生命周期时,默认浏览器关闭就销毁cookie
4.cookie的有效路径Path
cookie的path属性可以有效的过滤哪些cookie可以发给服务器,哪些不发
在这里插入图片描述
5.如果要将含有中文信息的cookie进行存放会出现编码错误,解决方法是将中文转换为url编码 如 String name = URLEncoder.encode(“彭于晏”,“utf-8”);再将name保存到cookie即可
读取cookie进行解码:URLEncode,decode(name,“utf-8”)

三.会话技术session

**1.**Session是服务端技术,服务器在运行时为每一个用户的浏览器创建一个独享的Session对象/集合
在这里插入图片描述
session的作用:①网上商城的购物车,保存登录用户的信息,将数据放到Session中,供用户在访问不同页面时,实现跨页面访问数据,防止用户非法登录到某个页面
session类似于HashMap ,一个是属性的名字String,一个是属性的值Object
在这里插入图片描述
在这里插入图片描述

 //获取session,同时也可能创建session
        HttpSession session = request.getSession();
        //2.给session获取id
        System.out.println("当前sessionid="+session.getId());
        //3.给session存放数据
        session.setAttribute("email","zs@qq.com");

//演示读取session
        HttpSession session = request.getSession();
        Object email = session.getAttribute("email");
        if(email!=null){
            System.out.println("session属性email值为:"+(String)email);
        }else{
            System.out.println("没有该属性");
        }

2.Session生命周期

//给session设置生命周期,正数x表示x时间后该session无效,负数表示永不过期,如果没有调用该方法默认超时时间为30分钟,当客户端在生命周期有效时再次访问,有效时间重新计时
        session.setMaxInactiveInterval(40);

//删除session ,使用invalidate
session.invalidate
删除session里的某一个属性
session.removeAttribute
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值