【问题标题】:How to get HttpServletRequest object in PHP Java Bridge?如何在 PHP Java Bridge 中获取 HttpServletRequest 对象?
【发布时间】: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


【解决方案1】:

无法回答 HttpServletRequest,

但如果您的想法是将客户端远程 IP 传输到 Java 端...您可能需要采取另一条路径。 AFAIK PHPJavaBridge 只会知道客户端的 IP 地址(调用 Java.inc 的 php 脚本 - 通常是 localhost),而不知道远程用户 IP。因此,即使您修复了 HttpServletRequest,您也不会真正拥有您所期望的。当然我可能是错的......

如果我必须这样做,我会使用:

方法中发送远程客户端ip

<?php
$javaObject = new java('...');
$javaObject->log('username', $_SERVER['REMOTE_ADDR']);

或者在java会话中设置

<?php 
java_session('remote_ip', $_SERVER['REMOTE_ADDR']);

我不再使用 Java.inc,所以我不太确定会话的语法,但如果您正在寻找信息,请查看 soluble-japha session usagecontext。它可能对您有所帮助,语法不同,但几乎兼容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    相关资源
    最近更新 更多