我想安裝PHP Java Bridge,我可以從PHP調用Java方法,但是我無法在我的java類中獲取請求對象(HttpServletRequest)。我怎麼弄到的?如何在PHP Java Bridge中獲取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,所以我需要訪問請求對象,但無法獲取。
Eh? 'HttpServletRequest'直接提供給你的Servlet。 – EJP
這可能是一個很難回答的問題,但我每次都會收到空請求對象。如果我將應用程序作爲Web應用程序運行,那麼我將獲取請求對象,但是當PHP使用PHP Java橋啓動請求時,該時間將爲空。 – dpilwal
查看客戶端和服務器的代碼源,我無法確定client_ip在servlet中註冊和可用的位置。 (通過客戶端IP,我的意思是可用的:$ _SERVER ['REMOTE_ADDR']) 我想你是在方法'sayHello(client_ip)'中發送了值還是使用了java_session()。如果你很好奇,看看[這次嘗試](https://github.com/belgattitude/soluble-japha/blob/master/test/src/SolubleTest/Japha/Bridge/Driver/DriverContextTest.php#L105)我已經嘗試過。 –