servlet中filter的的异步问题以及JSP与servlet配合时filter的注意

这是今天写的时候遇到的问题,首先说说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真是应该慎用,不然就会出很多问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值