为了账号安全,请及时绑定邮箱和手机立即绑定

Servlet与过滤器

Servlet与过滤器

一只斗牛犬 2019-11-12 09:58:29
Servlet和Filter有什么区别?您建议使用什么来授权页面?
查看完整描述

3 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

Filter当您要根据特定条件过滤和/或修改请求时,请使用。使用Servlet时要控制,预处理和/或后处理请求。


在Java EE的教程中提到有关筛选如下:


过滤器是可以转换请求或响应的标头和内容(或两者)的对象。过滤器与Web组件的不同之处在于,过滤器本身通常不会创建响应。相反,过滤器提供的功能可以“附加”到任何种类的Web资源。因此,过滤器不应依赖于其充当过滤器的Web资源。这样,它可以由多种类型的Web资源组成。


过滤器可以执行的主要任务如下:


查询请求并采取相应措施。

阻止请求和响应对进一步传递。

修改请求标头和数据。您可以通过提供请求的自定义版本来实现。

修改响应头和数据。您可以通过提供响应的自定义版本来执行此操作。

与外部资源进行交互。

对于授权,a 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);

    }

}


查看完整回答
反对 回复 2019-11-12
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

筛选器最适合授权。这是因为可以将它们配置为在站点的所有页面上运行。因此,您只需要一个过滤器即可保护所有页面。


查看完整回答
反对 回复 2019-11-12
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

使用过滤器可以提高Servlet的性能-当请求到来时,我们可以根据请求执行预处理,如果请求满足,则可以转发到servlet,否则向消息提供消息给客户端,以在请求中提供适当的信息。


查看完整回答
反对 回复 2019-11-12
  • 3 回答
  • 0 关注
  • 334 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信