Servlet和过滤器有什么区别?你建议用什么来授权页面?Servlet vs过滤器
51
A
回答
89
如果您想根据特定条件筛选和/或修改请求,请使用Filter
。当您想要控制,预处理和/或后处理请求时,请使用Servlet
。
的Java EE tutorial提到以下有关过滤器:
过滤器是一个对象,它可以将一个请求或响应的报头和内容(或两者)。过滤器与Web组件的不同之处在于过滤器通常本身不会创建响应。相反,过滤器提供的功能可以“附加”到任何种类的网络资源。因此,一个过滤器不应该对其作为过滤器的Web资源有任何依赖关系;这样它可以由多种类型的网络资源组成。是
,一个过滤器可以执行的主要任务如下:
- 查询请求并采取相应的行动。
- 阻止请求和响应对进一步传递。
- 修改请求标头和数据。您可以通过提供自定义版本的请求来完成此操作。
- 修改响应标头和数据。您可以通过提供自定义版本的响应来执行此操作。
- 与外部资源进行交互。
对于授权,一个Filter
是最适合的。这里有一个基本的开球例如如何为登录用户过滤器检查请求:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
if (((HttpServletRequest) request).getSession().getAttribute("user") == null) {
// User is not logged in. Redirect to login page.
((HttpServletResponse) response).sendRedirect("login");
} else {
// User is logged in. Just continue with request.
chain.doFilter(request, response);
}
}
15
过滤器最适合授权。这是因为它们可以配置为运行网站的所有页面。所以你只需要一个过滤器来保护你的所有页面。
+0
所有页面=可能需要登录的页面。 – UnKnown 2016-09-06 21:11:44
1
使用过滤器,我们可以改善的servlet到性能 当请求来自我们会按要求进行预处理,如果满足要求则我们可以转发给servlet,否则给客户提供消息请求中提供相应的信息。
相关问题
- 1. Django:object_set vs过滤器
- 2. Servlet过滤器重写URL
- 3. Servlet过滤器不工作
- 4. 认证Servlet过滤器
- 5. 登录过滤器java servlet
- 6. Servlet过滤器和OSGi HttpService
- 7. Servlet过滤器和线程?
- 8. Java Servlet过滤器和SSL
- 9. Servlet过滤器url映射
- 10. JSF的servlet过滤器
- 11. Servlet过滤器与ServletRequestListener
- 12. servlet/servlet映射和过滤器/过滤器映射之间的区别?
- 13. Servlet过滤器 - 不要将过滤器应用于特定的过滤器
- 14. 剩下的WS过滤器就像一个Servlet过滤器?
- 15. 过滤器注册时的Servlet过滤器顺序编程
- 16. WordPress的过滤器VS. action
- 17. Django过滤器vs排除
- 18. 在过滤器servlet中写入文件
- 19. Servlet过滤器有选择地工作
- 20. 添加过滤器吉斯的servlet
- 21. Servlet过滤器修改的文件
- 22. Servlet过滤器(参数到属性)
- 23. Servlet和过滤器的名称
- 24. Servlet过滤器:有`的doFilter(HttpServletRequest的)`
- 25. 的Java Servlet过滤器参数
- 26. 使用Servlet过滤器的urlrewrite
- 27. 映射过滤器和servlet在吊带
- 28. Tomcat中的Servlet,过滤器和线程
- 29. JRuby Rack - 如何添加servlet过滤器?
- 30. Servlet过滤器会话超时问题
感谢您澄清+1对于 – 2013-10-24 10:34:33
提供的链接是非常好的。也为此感谢。 – 2013-10-24 10:39:34