繁体   English   中英

什么等效于PHP中的Java RequestDispatcher#forward()?

[英]What is equivalent of RequestDispatcher#forward() Of Java in PHP?

RequestDispatcher基本上将请求调度到其他资源,即它不执行重定向,而只是将页面转发到某个页面(资源)。 因此,浏览器的历史记录等不会更新,并且request中可用的参数在另一页上仍然可用,因为我们没有使用重定向创建新请求。

在PHP中这等效于什么? 还有哪个功能用于重定向页面?

提前致谢 :)

没有直接的对等物。

include和family相似,但是在几个方面有所不同:

  • 脚本的当前状态会保留(任何全局变量,函数和类定义等)
  • 必须提供文件路径

可能最相似的事情是内部Apache子请求(请参阅virtual ),但这与PHP本身无关。 调用PHP时,请求已被“分派”。 当然,如果需要,您可以使用PHP进行虚拟的“请求分配逻辑”,这意味着将所有请求发送到某个初始脚本,然后由该初始脚本决定要包含/执行的内容。 这就是几个框架所做的。

要重定向页面,您可以手动发送标题:

header("{$_SERVER['SERVER_PROTOCOL']} $code"); //code can be 301, 302, 303, 307
header("Location: $url");

像Java中一样,重定向和转发的概念也可以在PHP中实现。

重定向(地址栏中的URL更改)- header("Location: redirect.php");

转发(地址栏上的URL不变)- include forward.php ;

我希望,它可以通过此及其他已知的编程逻辑进行管理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM