当前位置: 首页 > 面试题库 >

Java Servlet与过滤器

徐子石
2023-03-14
问题内容

Servlet和Filter有什么区别?您建议使用什么来授权页面?


问题答案:

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);
    }
}


 类似资料:
  • 问题内容: “过滤后的查询和过滤器”与“根查询和过滤器”之间有什么区别吗?例如 情况1: 情况2: 我在http://elasticsearch-users.115913.n3.nabble.com/Filtered-query-vs-using- filter-outside-td3960119.html中 找到了此讨论,但所引用的URL是404,并且解释过于简洁我。 请示教或提供指出这些区别的

  • 问题内容: 我什么时候应该使用查询或过滤器或两者的某种组合都看不到任何描述。它们之间有什么区别?谁能解释一下? 问题答案: 区别很简单:过滤器被缓存并且不影响得分,因此比查询要快。也在这里看看。假设查询通常是用户输入的内容,并且几乎是不可预测的,而过滤器则可以帮助用户缩小搜索结果的范围,例如使用构面。

  • 我从事elasticsearch,我尝试混合两个工作查询。第一个是“and filter”,第二个是“bool filter”,但我失败了。 我的查询是从用户交互界面动态生成的。 “和过滤器”: 我需要“和过滤器”来查询数据,例如,字段必须等于“非洲”或“亚洲”或为空。这是一个工作查询的示例: 此查询工作正常,结果如下: 现在我需要用字段“D\u TYPESTATUS”来限制结果数据,该字段必须与

  • 问题内容: 现在可以将Spring中的 s配置为仅使用来在某些URL上调用。 Servlet过滤器可以实现相同的功能(日志记录,安全性等)。那么应该使用哪一个呢? 我认为使用Interceptor,可以使用对象与模型一起使用,因此它具有更多的优势。谁能提出过滤器或拦截器比其他方法更具优势的方案? 问题答案: 该接口的JavaDoc本身有两个段落讨论这个问题: HandlerInterceptor基

  • 我所拥有的 预期产出 实际产量 这只是一个例子。在我的真实代码中,我正在对我的全局状态(useContext, useReduer)执行删除操作。 是一个ID数组。

  • 当前,我们的 Restful Web API 不仅能够提供客户端需要的资源,还实现了认证和权限,可以保证数据的安全。大家在日常中一定有过这样的经历,有些网站免费用户一天只能免费观看 3 部视频,超过就要付费,否则无法观看,另外,如果想找到 2020 年上映的全部电影,只需在检索时选中想要的年份就可以。那么我们搭建的 Restful Web API 能实现类似的功能吗?当然可以,这就涉及到了限流与过