我有一个筛选器,它可以扫描我的应用程序中的所有请求。我想要阻止请求,如果它请求一个特定的网址。我可以检查这个,如果条件匹配,我不会做chain.doFilter,但仍然会将请求移到黑色页面。如何阻止此请求继续进行并停留在当前页面 - 意味着用户不应该看到他点击的屏幕有任何改变?Servlet请求阻止
2
A
回答
1
你不能。浏览器已经提出请求,并且已经无法使用。你可能会破解一些JavaScript,它会默默地“点击”浏览器的“返回”按钮,但毫无疑问,它具有各种令人讨厌的问题。
但是一旦浏览器发送了请求,当前页面就“死”了。
2
的HTTP status code 204可能会奏效,但它不能保证所有浏览器的工作:
204无内容
服务器已完成要求 但并不需要返回 实体并且可能想要返回 已更新的元信息。响应 可能包含新的或更新的 元信息,其形式为 实体标题,如果存在 应该与 请求的变体相关联。
如果客户是用户代理,它 不应改变从它的文件视图 ,其引起 请求被发送。这种反应主要是 旨在允许输入用于操作至 发生而不引起的改变 用户代理的活动文档视图, 虽然任何新的或更新 元信息应该在当前应用于 该文档的用户 剂的活性视图。
204响应必须不包括 消息体,且因此是总是通过 头字段之后的第一空行 终止。
(重点煤矿)
或者,你可以尝试以下策略之一:
- 有这个servlet返回307(临时重定向)回使用HTTP引用领域的前一页。这种方法可能会导致缓存和代理问题。
- 使用ajax从您的servlet加载内容。你将不得不用直接链接来替代启动Ajax调用的JavaScript调用来替换页面的一部分。以这种方式加载内容时,浏览器中的URL不会更改,这可能会或可能不合意。许多网站使用混合,包括StackOverflow。任何应该是“permalink-able”的东西都会通过常规链接导航,但每个页面的部分内容都是通过ajax懒洋洋地提取的。
最后,告诉用户链接已关闭,这有什么问题?让servlet返回403(禁止)。
相关问题
- 1. 阻止请求
- 2. POST请求 - 跨来源请求阻止
- 3. Java servlet异步上下文阻止其他请求
- 4. 阻止HTTP POST请求
- 5. Mailchimp阻止API请求
- 6. Apache阻止多个请求?
- 7. 阻止跨源请求 - Laravel
- 8. iOS阻止HTTPS请求
- 9. 禁止Mule ESB阻止一些请求
- 10. 如何停止Reporting Services阻止请求?
- 11. 发送请求后中止Servlet调用
- 12. Servlet请求
- 13. 请求和servlet
- 14. Chrome请求阻止(实验功能) - 如何取消阻止?
- 15. 来自域的阻止请求
- 16. 阻止PHP向请求发送PHPSESSID cookie?
- 17. 阻止HTTP请求/响应回调?
- 18. Mozaps API请求被Incapsula阻止?
- 19. 使用站点的IP阻止请求
- 20. PHP:阻止浏览器请求
- 21. socket.io跨来源请求阻止
- 22. Flask API阻止选项请求
- 23. 阻止Chrome缓存AJAX请求
- 24. 用Python阻止注销请求
- 25. 如何阻止无效请求
- 26. Node.js我的请求不阻止
- 27. 制作axios请求被cors阻止
- 28. MvcMailer SendAsync是否阻止ASP.NET MVC请求?
- 29. Extjs两个Ajax请求阻止问题
- 30. 环聊应用http请求被阻止