「php与java的通讯」php和javaweb

博主:adminadmin 2022-11-26 03:48:08 61

本篇文章给大家谈谈php与java的通讯,以及php和javaweb对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

php如何与java交互

private static String sentHttpPost(String path, MapString, String map, String encode) {

    try {

        String dataStr=null;

        if (map != null  !map.isEmpty()) {

            StringBuffer sb = new StringBuffer( );

            for (Map.EntryString, String entry : map.entrySet())

            sb.append("").append(entry.getKey()).append("=").append(URLEncoder.encode(entry.getValue(), encode));

            dataStr=sb.toString().substring(1);

        }

        System.out.println(dataStr);

         

        URL url = new URL(path);

        HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

        urlConnection.setConnectTimeout(3000);

        urlConnection.setRequestMethod("POST");

        urlConnection.setDoOutput(true);

         

        if(null!=dataStr){

            byte[] data = dataStr.getBytes();

            urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

            urlConnection.setRequestProperty("Content-Length", String.valueOf(data.length));

            OutputStream os = urlConnection.getOutputStream();

            os.write(data);

            os.close();

        }

         

        int reCode = urlConnection.getResponseCode();

        if (reCode == 200) {

            String re = changInputStreamToString(

            urlConnection.getInputStream(), encode).trim();

            System.out.println(re);

            if(re.equals("0")){

                return "用户名不存在";

            }else if (re.equals("1")){

                return "登陆成功";

            }else if (re.equals("-1")){

                return "未知错误";

            }else{ 

                return "密码错误";

            }

        }

    } catch (IOException e) {

        e.printStackTrace();

    }

    return null;

}

php程序与java程序之间做数据交互,怎么做

可以用php的curl模拟浏览器请求是访问java服务器程序,或者用java的一个http类库同样发送http请求来访问PHP服务器

PHP与JAVA交互,该怎么搞

前后台交互常用的就是HTTP方式,GET和POST。

JAVA后台跑在java容器里面,接受前台的请求就可以了。

建议你 用一下Chrome的插件POST MAN 你就懂了。

这个可以让你对HTTP请求有一个比较深入的理解。

不光是java后台,.net后台,php后台都一样。

使用的都是HTTP协议,数据传输的格式都是一样的。

如何实现在PHP中调用JAVA

if rv is not None and rsv is not None:

# extract version/subversion

self._nmap_version_number = int(line[rv.start():rv.end()])

self._nmap_subversion_number = int(line[rsv.start()+1:rsv.end()])

break

}

Socket编程 php 与 java 通信 问题

看不懂php

但是我觉得你这个问题可能是因为php发生的EOF不符合java标准。或者根本没有发送EOF标识。

超时应该发生在 ss = in.readLine();这一行代码中的in.read()。

下面是j2se文档资料

int java.io.InputStream.read()

Reads the next byte of data from the input stream. The value byte is returned as an int in the range 0 to 255. If no byte is available because the end of the stream has been reached, the value -1 is returned. This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.

A subclass must provide an implementation of this method.

Returns:

the next byte of data, or -1 if the end of the stream is reached.

Throws:

IOException if an I/O error occurs.

这句话非常重要

Returns:

the next byte of data, or -1 if the end of the stream is reached.

当没有发送end of the stream 标识的话,那么程序属于等待状态。 也就是java端一直处于读的状态。

解决这个问题的话。 要么终端手动发送eof.要么终端发送每一次交互的字节长。服务器端根据这个字节长来读取相应长度的字节。

基于ICE的PHP与java间的通信

PHP与JAVA融合的开发环境

一.系统环境

1.初始安装

防火墙开放接口:21,22,80,2401,8009,10000,eth0

Redhat Linux 9.0

Development Tools

Network Servers

VSFtp

CVS-1.11.2-10

MySQL 3.23.54

2.包安装

JDK 1.5

下载地址:

Tomcat 5.0.19

下载地址:

3.脚本安装

Webmin 1.110

下载地址:

ZendOptimizer 2.5.1

下载地址:

4.手工编译

Apache 2.0.49

下载地址:

PHP 4.3.5

下载地址:

JK 2-2.0.4

下载地址:

5.客户机环境

Windows XP Professional

Absolute Telnet 3.0

Zend Encoder

Macromedia Dreamweaver MX 2004

Borland JBuilder 9 Enterprise

WinCVS 1.3

下载地址:

二.系统安装

启动Linux安装光盘,安装基本系统:FTP、开发工具和MySQL3.23.54。如果你是手工编译安装MySQL,要记得以后在编译PHP等程序时要指明MySQL的具体路径,否则会因找不到路径而导致编译出错。

三.安装webmin1.110

用Webmin来配置系统,傻瓜化,可以节省不少力气,所以一般我都先安装它。安装过程很简单,执行setup.sh脚本后照提示一步一步来就可以了。

# cd webmin*

# ./setup.sh

四.安装JDK1.5

1.编辑如下三个文件,没有指明全路径的放在你自己的home目录就可以。

/etc/profile

JAVA_HOME=/usr/java/j2sdk1.4.2_04

CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

CVSROOT=/usr/local/cvsroot

PATH=.:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

export JAVA_HOME CLASSPATH CVSROOT PATH

/etc/ld.so.conf

/usr/java/j2sdk1.4.2_04/jre/lib/i386

/usr/java/j2sdk1.4.2_04/jre/lib/i386/server

HelloWorld.java

class HelloWorld

{

public static void main(String[] args)

{

//本文件测试Java环境是否安装成功。

System.out.println("Hello World!");

}

}

2.执行以下命令:

# rpm -ivh j2sdk*.rpm //安装JDK包。

# source /etc/profile //重载profile环境。

# ldconfig //创建动态链接库缓存文件。

# javac -d . HelloWorld.java //编译测试文件。

# java HelloWorld //运行程序测试安装是否成功。

五.安装Apache

# tar xvzf httpd* //解压源码包。

# cd httpd* //进入安装目录。

# ./configure --prefix=/usr/local/apache --enable-so --enable-mods-shared=most --enable-rewrite

# make;make install //编译并安装。

说明:

--enable-so选项:让Apache可以支持DSO模式,注意,我们在这里采用的是Apache2.0的语法。如果你的Apache是1.3版本,应改为--enable-module=so。

--enable-mods-shared=most选项:告诉编译器将所有标准模块都编译为DSO模块。你要是用的是Apache1.3,改为--enable-shared=max就可以。

--enable-rewrite选项:支持地址重写功能,使用1.3版本的朋友请将它改为--enable-module=rewrite。

六.编译安装PHP

1.执行命令

#tar xvzf php* //解压源码包

#cd php* //进入PHP安装命令

#./configure --prefix=/usr/local/php --with-mysql --with-apxs2=/usr/local

/apache/bin/apxs --with-java=/usr/java/j2sdk1.4.2_04

#make;make install //编译并安装

#cp php.ini-dist /usr/local/php/lib/php.ini //复制php配置文件

#cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20020429 //extensions目录

#ln -s java.so libphp_java.so //建立连接,忘记了会出错哦

#cd Zend* //进入ZendOptimizer目录

#./install //安装PHP加速器

说明:

--with-apxs2=/usr/local/apache/bin/apxs是Apache2的语法,1.3版本的用户请使用--with-apxs=/usr/local/apache/bin/apxs。

2.编辑下面三个文件

/usr/local/apache/conf/httpd.conf

LoadModule php4_module modules/libphp4.so

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

AddDefaultCharset gb2312

/usr/local/apache/htdocs/test.php

?php

//本程序测试PHP的JAVA环境是否可用,

代码是从摘录下来的。

// get instance of Java class java.lang.System in PHP

$system = new Java('java.lang.System');

// demonstrate property access

echo 'Java version=' . $system-getProperty('java.version') . 'br /';

echo 'Java vendor=' . $system-getProperty('java.vendor') . 'br /';

echo 'OS=' . $system-getProperty('os.name') . ' ' .

$system-getProperty('os.version') . ' on ' .

$system-getProperty('os.arch') . ' br /';

// java.util.Date example

$formatter = new Java('java.text.SimpleDateFormat',

"EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");

echo $formatter-format(new Java('java.util.Date'));

?

/usr/local/php/lib/php.ini

register_globals=On

[Java]

java.class.path=/usr/local/php/lib/php/php_java.jar:/home/jim/myclass

java.home=/usr/java/j2sdk1.4.2_04

java.library=/usr/java/j2sdk1.4.2_04/jre/lib/i386/libjava.so

java.library.path=/usr/local/php/lib/php/extensions/no-debug-non-zts-20020429

extension_dir=/usr/local/php/lib/php/extensions/no-debug-non-zts-20020429

extension=libphp_java.so

注意:

(1).如果你刚刚从以前老版本的PHP转换到新版本,可能会发现你的PHP程序很多都不能用了。别紧张!把register_globals打开就一切正常啦!这是因为老版本的PHP,它的register_globals默认是开着的,而新版本,却把它关了的缘故。

(2)./home/jim/myclass是我存放JAVA组件的路径,你可以根据实际情况修改,但是为了安全起见,可不要放在web目录下哦。

php与java的通讯的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php和javaweb、php与java的通讯的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-26,除非注明,否则均为首码项目网原创文章,转载请注明出处。