您的位置:首页 > Web前端 > JavaScript

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真是应该慎用,不然就会出很多问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: