1. cookie(浏览器端)
定义:是一种会话技术,它用于将会话过程中的数据保存在浏览器端,可以使浏览器和服务器更好的进行数据交互。
(1)创建Cookie:
Cookie cookie = new Cookie(String name,String value)
cookie对象一旦创建,cookie名称无法修改
(2)常用方法:
获取值:cookie.getName()
设置值:cookie.setValue()
获取cookie对象:request.getCookies();返回值为Cookie[]
添加Cookie对象:response.addCookie();
- Cookie生命周期设置:
setMaxAge(int second)
当second<0时,存储在内存中
当second=0时,删除cookie
当second>0时,存储在硬盘中
Cookie的访问路径设置:cookie.setPath(String path)
(3)实现代码
String lastAccessTime = null;
Cookie[] cookies = request.getCookies();
for(Cookie cook:cookies){
While(cook!=null){
If(cook.getName().equals(“lastAccessTime ”)){
lastAccessTime = cook.getValue();
break;
}
}
}
//判断lastAccessTime 是否为空
If(lastAccessTime ==null){
// 响应会生成一个页面
Response.getWriter().println(“<h3>你是第一次访问本站</h3>”);
}else{
Response.getWriter().println(“您上次访问本站时间:”+lastAccessTime );
}
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);
String time = sdf .format(new date());
//可以覆盖上次创建cookie的值
Cookie cookie = new Cookie(“lastAccessTime”);
//向浏览器发送cookie请求
Response.addCookie(cookie);
2. Session(服务器端)
定义:Session是一种将数据保存在服务器端的会话技术,特点较于cookie安全和存储数据量大
(1)创建session对象:
- Request.getSession();
- request.getSession(boolean flag)
- 当flag=true,有Session对象就直接返回,没有session对象,创建一个新的并返回
- 当flag=false,有session对象直接返回,没有就返回null
常用方法:
-绑定数据:
session.setAttribute(String str,Object obj);
-删除绑定数据:
session.removeAttribute(String obj);
-对象销毁:
session.invalidate();
-session对象的JSESSIONID获取:
session.getId().
3.AJAX/Json
(1)json是一种数据交换格式,是前端和后端数据传输的载体
(2)Json数据格式:
对象
{
id:1,
Name:”Tom”,
Salary:5800
}
数组
[ {
id:1,
Name:”Tom”,
Salary:5800
},{
id:1,
Name:”Tom”,
Salary:5800
}]
(3)Ajax异步请求,具有局部刷新页面的效果
4.监听器
Servlet生命周期:
(1)实例化
(2)初始化
(3)Service方法调用
(4)Service对象销毁destory方法
- 监听器的职责:
(1)对域对象:request,Session,application(ServletContext)生命周期的监听
(2)域对象绑定监听:
setAtrribute(String str, Object)
removeAttribute(String str)
5.Filter(过滤器)
是一款即插即用的web插件,一般用于扩展项目的功能
(1)编写步骤
* 类需要实现Filter接口
* 配置过滤器
<filter>
<filter-name></filter-name>
<filter-class></filter-class>
</filter>
<filter-mapping>
<filter-name></filter-name>
<url-pattern></url-pattern>
</filter-mapping>
1.通配符匹配,其中*代表拦截所有请求
2. /add -----表示精确匹配
3. *.do------后缀匹配
以上情形也适用--------------Servlet