servlet中filter的的异步问题以及JSP与servlet配合时filter的注意
2015-10-18 18:48
555 查看
这是今天写的时候遇到的问题,首先说说JSP与servlet配合时的问题
建立了一个filter,验证session里的username属性,如果为空则认为未登陆,返回到登陆页面,而登陆是JSP做表现层,servlet做控制层,可是一直不能成功。原因是在JSP的form提交之后,其实session里并没有username属性,也就是说其实还是相当于JSP提交之后,要再向相关的servlet请求,也是一次请求,和用户直接输入地址访问是没有差别的,当然不能通过filter了。说到底,这最终还是两个servlet,还是需要两次请求才可以。可以在JSP里手动向session添加username解决问题,当然这是很蠢的办法,要想解决还是应该更精心地设计filter。
另外一个就是学习servlet的异步调用方法,发现一直没法出异步进程结束后的结果。看了一下tomcat的日志,原来是一个filter的问题,有个chain不支持异步调用,这个就比较简单了,在web.xml中相关filter中添加<async-supported>true</async-supported>属性就可以了。问题虽然很简单,但是也提醒了这个filter真是应该慎用,不然就会出很多问题。
建立了一个filter,验证session里的username属性,如果为空则认为未登陆,返回到登陆页面,而登陆是JSP做表现层,servlet做控制层,可是一直不能成功。原因是在JSP的form提交之后,其实session里并没有username属性,也就是说其实还是相当于JSP提交之后,要再向相关的servlet请求,也是一次请求,和用户直接输入地址访问是没有差别的,当然不能通过filter了。说到底,这最终还是两个servlet,还是需要两次请求才可以。可以在JSP里手动向session添加username解决问题,当然这是很蠢的办法,要想解决还是应该更精心地设计filter。
另外一个就是学习servlet的异步调用方法,发现一直没法出异步进程结束后的结果。看了一下tomcat的日志,原来是一个filter的问题,有个chain不支持异步调用,这个就比较简单了,在web.xml中相关filter中添加<async-supported>true</async-supported>属性就可以了。问题虽然很简单,但是也提醒了这个filter真是应该慎用,不然就会出很多问题。
相关文章推荐
- js闭包
- javascript于boolean类型转换,运营商&&和|| 返回值
- [Javascript] Modifying an Immutable.js Map()
- 服务器和前台采用JSON通讯
- javascript函数
- JSON数据解析(转)
- js输出console
- HTML / JavaScript / PHP 实现页面跳转的几种方式
- 一点用JS写控制权限的心得
- [LeetCode][JavaScript]Remove Duplicates from Sorted Array
- [LeetCode][JavaScript]Remove Duplicates from Sorted Array II
- JS编程去掉注释部分
- JSP之应用Servlet过滤器进行身份验证
- JSON数据解析(GSON方式) (转)
- html+js实现四则元算计算器
- js错误处理
- Ember.js 入门指南——定义模型
- js拖拽实现
- javascript 实现一个网页,然后计算出有多少剩余时间的倒计时程序
- JS中如何输出空格