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

sendRedirect或请求分派更有效?

郎意
2023-03-14
问题内容

SendRedirect或requestdispatch?哪个应该更受欢迎?哪个效率更高?


问题答案:

他们做的两件事截然不同,因此您不能仅仅决定效率。

发送重定向会将浏览器发送到其他URL。该URL将对浏览器可见。您可能想要也可能不想要。例如,在POST之后,您可能应该重定向到GET页面,以避免不重新发布就无法重新加载结果页面。另一方面,您不能重定向到只能从servlet容器内部访问的“页面”。

调度更加“有效”,因为它没有额外的往返,但是它只能在相同的Web应用程序上下文中使用(或者,如果您设置了它,则最多在同一servlet容器中)。同样,用户最初用于访问页面的URL将不同于链中稍后称为servlet的URL,这可能会造成混淆。调度模式通常用于实际请求之前或之后的额外处理(代替ServletFilter),或用于错误页面。

您可以使用分派传递请求属性,但只能在重定向上传递查​​询参数。您不能作为POST重定向(因此,可以附加到它的数据量是有限的)。重定向中的所有查询参数对用户都是可见的。



 类似资料:
  • 和下面的代码来包含JSP(在同一个过滤器中): 一切工作正常,servlet执行,然后它包括JSP,并且发生一些不相关的自定义规则。正如您所看到的,当我包含一个带有请求分派器的servlet时,我不能向客户机发送http头响应。问题是,我希望servlet完全控制响应,就像是从过滤器内部调用一样(因为过滤器除了根据servlet在项目文件系统中各自的类/JSP位置来映射servlet之外,什么也不

  • 构建 Web 应用时,把请求转发给另一个 servlet 处理、或在请求中包含另一个 servlet 的输出通常是很有用的。RequestDispatcher 接口提供了一种机制来实现这种功能。 当请求启用异步处理时,AsyncContext 允许用户将这个请求转发到servlet 容器。

  • 问题内容: 我知道以前曾问过这个问题,但是没有一个答案对我有用!我正在做一个学校项目,我想获取学校服务器上动态计划文件返回的HTML(为我的项目解析)。 我想要HTML的页面是:https : //telaris.wlu.ca/ssb_prod/bwckschd.p_disp_dyn_sched 我认为未为学校服务器文件启用CORS,并且我不知道它是否支持JSONP … 如何设置跨域请求以从该页面

  • 问题内容: 这将使用 临时的 302 HTTP状态代码重定向请求: 但是是否可以使用 永久的 301 HTTP状态代码重定向它? 问题答案: 您需要手动设置响应状态和标题。 将状态设置为之前将无效,否则将其设置为之后。

  • 问题内容: 有时我们可以同时使用派生表和临时表编写查询。我的问题是哪个更好?为什么? 问题答案: 派生表是一种逻辑构造。 可以将其存储在中,在运行时通过在每次访问时重新评估基础语句来构建,甚至可以对其进行优化。 临时表是一种物理构造。它是在其中创建的表,并在其中填充了值。 哪种更好取决于查询所使用的查询,用于派生表的语句以及许多其他因素。 例如,每次使用时都可以(并且很可能会)重新评估in中的(公

  • 现在请求已经改造完成了, 那么接下来就简单了, 我们只需要把我们传统的入口文件: 例 9.5. 入口文件 <?php $app = new Yaf_Application("conf.ini"); $app->bootstrap()->run(); 改为: 例 9.6. 入口文件 <?php $app = new Yaf_Application("conf.ini"); $a

  • 我正在尝试使用JSoup访问java中的在线api。通过我的浏览器,我可以很好地导航到url,并得到json数据作为回报。但是,如果我使用Jsoup,url会发生更改,并且会从中删除“/api”。例如:https://www.onehash.com/api/archived_contest/122/我可以通过浏览器很好地打开它,但如果我使用jsoup连接到它,url就会变成https://www.

  • 问题内容: 我正在学习GraphQL,即将完成本教程,以前从未发生过。 问题在于,即使未进行查询或更改,GraphQL服务器在打开浏览器中的GraphQL Playground后仍继续接收请求。 我看到服务器返回了这些响应: 问题答案: 这是预期的行为。 GraphQL Playground 向您的服务器发出一个自省查询。它使用该查询的结果为查询提供验证和自动完成。Playground会将该查询重