【发布时间】:2017-02-07 21:35:57
【问题描述】:
我正在尝试设置 PHP Java Bridge,并且我能够从 PHP 调用 Java 方法,但是我无法在我的 java 类中获取请求对象 (HttpServletRequest)。我怎样才能得到它?
我的 PHP 源代码是这样的。
<?php require_once("http://localhost:8080/PJBridge/java/Java.inc");
echo "PHP JAVA Bridge -- Calculator Test Application <br>"
$Calc= new java("test.math.Calc");
$val1 = 20;
$val2 = 10;
echo "<br> Addition of $val1 and $val2 is";
echo $Calc->add($val1,$val2);
$hello = new java("test.Hello");
echo "<br>";
echo $hello->sayHello("PHP from Java");
echo "<br>";
?>
Java 类源码如下:-
public class Hello implements ServletRequestAware{
HttpServletRequest request;
public Hello(){
}
@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
public String sayHello(String name){
return "Hello " + name ;
}
}
我得到了预期的结果,但我需要客户端 IP,所以我需要访问请求对象但无法获得。
【问题讨论】:
-
嗯?
HttpServletRequest直接提供给您的 Servlet。 -
在这里问可能是一个非常糟糕的问题,但我每次都得到空请求对象。如果我将应用程序作为 Web 应用程序运行,那么我将获取请求对象,但是当 PHP 使用 PHP Java 桥启动请求时,它为空。
-
查看客户端和服务器的代码源,我无法真正弄清楚 client_ip 在哪里注册并可以从 servlet 中使用。 (通过客户端 IP,我指的是可用的 IP:$_SERVER['REMOTE_ADDR'])我想您要么在方法
sayHello(client_ip)中发送了值,要么使用 java_session()。有兴趣的可以看看this attempt我做的尝试一下。
标签: java servlets httprequest php-java-bridge