2020-08-16

Session

  1. Session
    1. Session概述

将会话中的数据保存在服务器端

浏览器访问服务器,携带要保存的数据,服务器获取数据,然后检查有没有为当前浏览器服务的session,如果有,直接拿来使用,如果没有,则创建session,并将数据存入session中

当浏览器再次访问服务器,服务器找到为当前浏览器服务的session并从中获取数据,通过这种方式保存会话的数据

 

 

 

    1. Session域对象

生命周期:

创建:第一次调用request.getSession()方法是创建

销毁:

超时死亡:漠然30分钟不使用超时销毁

配置超时时间:在web.xml中

<!--配置session超时时间,单位为分钟-->

<session-config>

<session-timeout>1</session-timeout>

</session-config>

主动杀死:调用invalidate()方法销毁session

意外身亡:服务器意外宕机,session会随之销毁

如果服务器正常关闭,session会钝化到磁盘中,当服务器再次启动时会活化

作用范围:整个会话

功能:在整个绘画范围内共享数据

  1. Easymall登陆状态保存

创建User实体类用户封装用户数据

将user对象保存到session中

在head.jsp中:

<%if(request.getSession().getAttribute("user")==null){%>

<ahref="<%=request.getContextPath()%>/login.jsp">登录</a>  |  

<ahref="<%=request.getContextPath()%>/regist.jsp">注册</a>

<%}else{%>

欢迎<%=((User)request.getSession()

.getAttribute("user")).getUsername()%>回来!

<ahref="<%=request.getContextPath()%>/LogoutServlet">退出</a>

<%}%>

创建LogoutServlet,杀死session,并重定向到首页

 

  1. Easymall验证码效验

在ValiImageServlet中获取验证码并存入session中

在RegistServlet中,从session获取验证码,然后进行验证码效验

  1. AJAX
    1. AJAX概述

异步的js和xml

    1. 异步交互和同步交互

同步:浏览器向服务器发送一个请求,必须等待响应结束,才能发送第二个请求,在服务器处理期间,浏览器不能干别的事

通常刷新整个页面

异步:浏览器向服务器发送一个请求,无需等待响应结束,就能发送第二个请求,在服务器处理期间,浏览器可以干别的事

通常刷新局部页面

    1. AJAX使用场景

百度搜索框

注册时用户名校验

。。。

    1. AJAX优缺点

优点:异步交互,提高了用户的体验

服务器只是响应了部分数据,而不是整个页面,因此降低了服务器的压力

缺点:ajax不适用于所有场景

Ajax会无端的增加服务器的访问次数,从而增加服务器的压力

    1. Js实现ajax(了解)

第一步,获取xmlhttprequest对象

var xmlHttp = ajaxFunction();

function ajaxFunction(){

var xmlHttp;

try{

//现代浏览器(IE7+、Firefox、Chrome、Safari 和 Opera)都有内建的 XMLHttpRequest 对象

xmlHttp = new XMLHttpRequest();

}catch(e){

try{

//IE6.0

xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");

}catch(e){

try{

//IE5.0及更早版本

xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

}catch(e){

alert("...");

throw e;

}

}

}

return xmlHttp;

}

第二步,打开与服务器的连接

xmlHttp.open(method,url,async);

>method:请求方式,可以是GET或者POST

>url;所要访问的服务器中资源的路径如:/Day10/servlet/Aservlet

>async;是否为异步传输,true表示为异步传输,一般都是true

第三步,发送请求

xmlHttp.setRequestHeader(“Content-Type”,”application/x-www-form-urlencoded”);

//通知服务器发送的数据是请求参数

xmlHttp.send(“xxxx”);//注意,如果不给参数可能会造成部分浏览器无法发送请求

xmlHttp.send(“username=”+username+”&psw=”+)

>参数:

如果是GET请求,可以是null,因为GET提交参数会拼接在url后面

如果是POST请求,传入的就是请求参数

“username=张飞&psw=123”

第四步,注册监听

>在xmlgttpRequest对象的一个时间上注册监听器

Onreadtstatechange

>一共有五个状态(xmlHttp.readyState)

0状态:表示刚创建XMLHttpRequest对象,还未调用open()方法

1状态:表示刚调用open()方法,但是还没有调用send()方法发送请求

2状态,调用完send()方法了,请求已经开始

3状态:服务器已经开始相应,但是不代表响应结束

4状态:服务器响应结束!(通常我们只关心这个状态)

>获取xmlHttp对象的状态码

Var state = xmlHttp.readtState;//可能得到0.1.2.3.4

>获取服务器响应的内容

Var data = xmlHttp.responseText;//得到服务器响应的文本格式的数据

readtState

  1. ->1

/*注册监听,时刻监听服务器处理请求的状态*/

xmlHttp.onreadtstatechange = function(){{

if(xmlHttp.readyState == 4){

//状态为4表示服务器已经处理完成, 但是不代表处理成功

if(xmlHttp.status == 200){//当状态码为200, 表示服务器成功的处理了请求

var result = xmlHttp.responseText();

//xxx

}

}

}

    1. jQuery实现ajax
      • $.get或$.post

$.get(url,data,callback)

Url:请求的路径

Data:可选参数,请求的数据,json格式

Callbac:可选参数,请求成功后执行的函数

      • load方法

$(selector).load(url,data,callback)

$(selector):选择器,服务器返回的数据可以直接存入这个选择器选中的元素中

Url:请求的路径

Data:可选参数,请求的数据,json格式

Callback:可选参数,请求成功后执行的函数

      • $.ajax方法

$.ajax(url,data,async,type,success)

Url:请求的路径

Data:可选参数吗请求的数据,json格式

Async:可选参数,表示是否异步,漠然true是异步

Type:可选参数,请求方式,get,post

Success:可选参数没请求成功后执行的函数

7.用户名ajax校验

用户名失去焦点时发起ajax请求

$("input[name='username']").blur(function(){

$(this).nextAll("span").html("")

if($(this).val().trim()==""){

$(this).nextAll("span").html("用户名不能为空").css("color","red")

return

}

//获取用户名

varusername=$(this).val()

//调用ajax

$.post("<%=request.getContextPath()%>/AjaxCheckUnServlet",

{"username":username},function(result){

//result代表服务器响应的数据

$("#u_span").html(result).css("color","red")

})

})

创建ajaxChecjUnServlet,根据业务逻辑查询用户名是否存在并响应

 

  1. JSP
    1. Jsp介绍

由sun公司提供的动态web资源开发技术

Jsp是为了解决html只能输出页面,不能展示动态数据,而servlet适合开发动态web资源,不适合响应页面的问题

Jsp既能写html代码,也可以写java代码

    1. Jsp语法

Jsp表达式:

<%=jsp表达式%>:将jsp表达式的值放在所在的位置上

Jsp脚本片段:

<%jsp脚本片段%>:可以写普通的java代码

注意:一个jsp脚本片段可以不完整,但是多个脚本片段合起来要保证代码的完整性

Jsp指令:

<%@jsp指令%>:

Page指令:定义jsp的基本信息

contentType属性:指定浏览器解析的编码格式

Language属性:当前jsp的开发语言

Import属性:导包

Include指令:包含其他jsp页面

Taglib指令:引入jstl

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值