博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LoggingFilter Session 以及Async
阅读量:4327 次
发布时间:2019-06-06

本文共 1680 字,大约阅读时间需要 5 分钟。

Java中的Filter 并不是一个标准的Servlet ,它不能处理用户请求,也不能对客户端生成响应。 主要用于对HttpServletRequest 进行预处理,也可以对HttpServletResponse 进行后处理,是个典型的处理链。

过滤链的好处是,执行过程中任何时候都可以打断,只要不执行chain.doFilter()就不会再执行后面的过滤器和请求的内容。而在实际使用时,就要特别注意过滤链的执行顺序问题。

过滤器的作用描述:

  • 在HttpServletRequest 到达Servlet 之前,拦截客户的HttpServletRequest 。 
  •   根据需要检查HttpServletRequest ,也可以修改HttpServletRequest 头和数据。 
  •   在HttpServletResponse 到达客户端之前,拦截HttpServletResponse 。 
  • 根据需要检查HttpServletResponse ,可以修改HttpServletResponse 头和数据。

Session:在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务。

    

Async:Async函数定义:

async 函数就是 Generator 函数的语法糖。

前文有一个 Generator 函数,依次读取两个文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var 
fs = require(
'fs'
);
 
var 
readFile = 
function 
(fileName){
  
return 
new 
Promise(
function 
(resolve, reject){
    
fs.readFile(fileName, 
function
(error, data){
      
if 
(error) reject(error);
      
resolve(data);
    
});
  
});
};
 
var 
gen = 
function
* (){
  
var 
f1 = 
yield 
readFile(
'/etc/fstab'
);
  
var 
f2 = 
yield 
readFile(
'/etc/shells'
);
  
console.log(f1.toString());
  
console.log(f2.toString());
};

  写成 async 函数,就是下面这样。

1
2
3
4
5
6
var 
asyncReadFile = async 
function 
(){
  
var 
f1 = await readFile(
'/etc/fstab'
);
  
var 
f2 = await readFile(
'/etc/shells'
);
  
console.log(f1.toString());
  
console.log(f2.toString());
};

  优点:1.内置执行器。 Generator 函数的执行必须靠执行器,所以才有了 co 函数库,而 async 函数自带执行器。也就是说,async 函数的执行,与普通函数一模一样,只要一行。

                   2.更好的语义。 async 和 await,比起星号和 yield,语义更清楚了。async 表示函数里有异步操作,await 表示紧跟在后面的表达式需要等待结果。

                   3.更广的适用性。 co 函数库约定,yield 命令后面只能是 Thunk 函数或 Promise 对象,而 async 函数的 await 命令后面,可以跟 Promise 对象和原始类型的值(数值、字符串和布尔值,但这时等同于同步操作)

转载于:https://www.cnblogs.com/fl2017/p/8691098.html

你可能感兴趣的文章
linux 系统下 tar 的压缩与解压缩命令
查看>>
阿里负载均衡,配置中间证书问题(在starcom申请免费DV ssl)
查看>>
转:How to force a wordbreaker to be used in Sharepoint Search
查看>>
MySQL存储过程定时任务
查看>>
Python中and(逻辑与)计算法则
查看>>
POJ 3267 The Cow Lexicon(动态规划)
查看>>
设计原理+设计模式
查看>>
音视频处理
查看>>
tomcat 7服务器跨域问题解决
查看>>
前台实现ajax 需注意的地方
查看>>
Jenkins安装配置
查看>>
个人工作总结05(第二阶段)
查看>>
Java clone() 浅拷贝 深拷贝
查看>>
深入理解Java虚拟机&运行时数据区
查看>>
02-环境搭建
查看>>
spring第二冲刺阶段第七天
查看>>
搜索框键盘抬起事件2
查看>>
阿里百川SDK初始化失败 错误码是203
查看>>
透析Java本质-谁创建了对象,this是什么
查看>>
BFS和DFS的java实现
查看>>