赞
踩
cookie是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段。cookie不是内置对象,cookie是由服务端生成的,再发送给客户端保存,相当于本地缓存的作用。在cookie有效期内,若用户再次访问服务器,浏览器会将相应的cookie一起发送到服务器,服务器会依据cookie的内容来判断用户信息,从而实现个性化服务。
session是存储在服务端中的一中会话存储机制,与cookie相关联,当访问服务器的时候,会在服务器端的内存里开辟一块内存,这块内存就叫做session,而这个内存是跟浏览器关联在一起的。这个浏览器指的是浏览器窗口,或者是浏览器的子窗口,意思就是,只允许当前这个session对应的浏览器访问,就算是在同一个机器上新启的浏览器也是无法访问的。而另外一个浏览器也需要记录session的话,就会再启一个属于自己的session。由于HTTP协议是非连接性的,当关闭浏览器后,链接即断开。
每个浏览器窗口和服务器中的session是一一对应的,在创建浏览器时服务器会给每个session一个sessionID唯一标识该session,一般情况下(浏览器支持cookies)会将session的id放在cookie中,所以说session与cookie相关联或者说依赖于cookies,因此在每刷新一次浏览器浏览器会以为这是一个新的链接,并更换一个新的session来保持当前用户会话。但存在浏览器不支持cookie的情况,这时候需要通通过URL重写来实现session,通过response.encodeURL()方法。
注意:如果想在程序中永远支持session,需要使用encodeURL,防止用户禁用了cookie。
全局作用范围,整个应用程序共享,就是在部署文件中的同一个webApp共享,生命周期为:应用程序启动到停止。
服务器启动后就产生了这个application对象,当客户再所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务 器关闭。但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。
application对象用来在多个程序或者多个用户间共享数据。用户所使用的application对象都是一样的,这与session不同(session因用户而异)。
表单的提交事件使用submit,需要绑定一个type=“submit”的按钮,在js中使用form.addEventListener(‘submit’,function(e) {})进行绑定,此处最好使用form,如果使用submit进行事件绑定无法获取到表单提交的事件对象e,通过表单的事件对象e我们可以访问到表单上的信息、或者对表单的提交事件进行拦截。另外,有一些旧版本的浏览器并不支持函数中传入事件对象,而需要通过window.event进行获取,所有需要对事件对象的取值进行或运算。
具体方法如下:
<div class="container"> <form action="./loginpro.jsp" method="post" id="login"> <label for="username">用户名:</label> <input type="text" id="username" name="username"> <br><br> <div class="btn"><input type="submit" value="登录"></div> </form> <script type="text/javascript"> window.addEventListener('load', function () { let login = document.querySelector('#login') // 表单提交需要将submit事件绑定在表单元素上 login.addEventListener('submit', function (e) { let event = e || window.event; // 兼容旧版本浏览器 const username = document.querySelector('#username').value if(username.trim() === '') { event.preventDefault(); return alert('用户名不允许为空') } }) }) </script> </div>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。