在Java中,我可以这样编写一个非常基本的JSP index.jsp:
index.jsp
<% request.getRequestDispatcher("/home.action").forward(request, response); %>
这样做的结果是,请求的用户index.jsp(或仅假设包含目录index.jsp是该目录的默认文档)将在home.action没有浏览器重定向的情况下看到,即[forward](http://java.sun.com/javaee/5 /docs/api/javax/servlet/RequestDispatcher.html#forward(javax.servlet.ServletRequest,%20javax.servlet.ServletResponse))在服务器端发生。
home.action
我可以用PHP做类似的事情吗?我怀疑可以配置Apache来处理这种情况,但是由于我可能无法访问相关的Apache配置,因此我对仅依赖PHP的解决方案感兴趣。
如果您担心CURL的可用性,则可以使用file_get_contents()和流。设置如下功能:
file_get_contents()
function forward($location, $vars = array()) { $file ='http://'.$_SERVER['HTTP_HOST'] .substr($_SERVER['REQUEST_URI'],0,strrpos($_SERVER['REQUEST_URI'], '/')+1) .$location; if(!empty($vars)) { $file .="?".http_build_query($vars); } $response = file_get_contents($file); echo $response; }
这只是设置一个GET,但是您也可以发布一个file_get_contents()。