① php怎么调用java jar
windows下的安装
第一步:安装JDK,这是非常容易的,你只需一路回车的安装好。然后做好以下步骤。
在 Win9x 下加入 :“PATH=%PATH%;C:\jdk1.2.2\bin” 到AUTOEXEC.BAT文件中
在 NT /Win2000下加入 “;C:\jdk1.2.2\bin”到环境变量中。
这一步是非常重要的,这样PHP才能正确的找到需调用的JAVA类。
第二步:修改你的PHP.INI文件。
[java]
extension=php_java.dll
java.library.path=c:\web\php4\extensions\
java.class.path="c:\web\php4\extensions\jdk1.2.2\php_java.jar;c:\myclasses"
在PHP.INI中加入extension=php_java.dll
并在[java]中,设定好java.class.path,让它指向php_java.jar,如果你使用新的JAVA类,你也应该存入这个路径,在这篇例子中,我们使用c:\myclasses这个目录。
第三步:测试环境,创建如下PHP文件:
<?
$system = new Java("java.lang.System");
print "Java version=".$system->getProperty("java.version")."\n";
print "Java vendor=".$system->getProperty("java.vendor")."\n\n";
print "OS=".$system->getProperty("os.name")." ".
$system->getProperty("os.version")." on ".
$system->getProperty("os.arch")."\n";
$formatter = new Java("java.text.SimpleDateFormat","EEEE,
MMMM dd, yyyy 'at' h:mm:ss a zzzz");
print $formatter->format(new Java("java.util.Date"))."\n";
?>
② php如何访问java的服务器
让Tomcat支持PHP
在负责一个采用jsP动态网页技术的网站时,刚好手头有PHP写的一部分功能,所以就很直接地想到让Tomcat支持PHP。Tomcat也是Apache出的,难道就只支持JSP吗?到底能否在Tomcat上用PHP呢?上网搜索了一番,很快有了第一个问题的答案:Tomcat可以支持CGI,如Perl(具体设置见附文)。但继续搜索,却迟迟无法找到让Tomcat使用PHP的方法,一般都是采取装Apache和Tomcat共存的方法来搭建所谓的支持PHP+JSP的Web平台。
当然,其实PHP本身也支持CGI方式的使用,所以就自己动手试了一试(在Windows操作系统上):先按照附文的做法让Tomcat支持CGI,然后再改web.xml,在servlet-name为cgi的一段配置中加上:
<init-param>
<param-name>executable</param-name>
<param-value>php</param-value>
</init-param>
并把PHP安装路径加入Path,这样Tomcat就能运行到PHP.exe了。重启Tomcat后,在WEB-INF目录下新建一个cgi目录,把php文件放在这里,然后访问时用虚拟映射出来的cgi-bin目录来访问这些PHP文件。
但是如果对PHP文件不加任何改动的话,可能会发现什么输出都没有。需要在PHP文件头部加一行,输出两个回车:
echo "\n\n";
原因不太清楚。可能在等待Content-type输入,或是Perl的cgi程序风格。
但这样配置,PHP(4.1.0以上版本)中$_REQUEST、$_GET、$_POST等变量就无法用了,只能从服务器变量或环境变量中获取QueryString了:$_SERVER["QUERY_STRING"]、$_ENV["QUERY_STRING"]。也许不支持表单的POST提交了……具体还没试过。
由于对Tomcat不熟悉,所以这些只是在现在方法上的小修小补,可能有好的做法,还希望大家不吝指教!
③ 如何用PHP代码实现这个Java代码所实现的
JavaAes类,用php实现方法:importjava.security.NoSuchAlgorithmException;importjava.security.SecureRandom;importjavax.crypto.Cipher;importjavax.crypto.KeyGenerator;importjavax.crypto.SecretKey;importjavax.crypto.spec.SecretKeySpec;publicclassAESSecurityUtil{privatestaticfinalStringAES="AES";_NAME="utf-8";(Stringpassword){KeyGeneratorkgen=KeyGenerator.getInstance(AES);SecureRandomrandom=SecureRandom.getInstance("SHA1PRNG");random.setSeed(password.getBytes());kgen.init(128,random);SecretKeysecretKey=kgen.generateKey();byte[]enCodeFormat=secretKey.getEncoded();SecretKeySpeckey=newSecretKeySpec(enCodeFormat,AES);returnkey;}publicstaticStringencode(Stringstr,Stringpassword){byte[]arr=encodeToArr(str,password);returnbyteArrToString(arr);}privatestaticbyte[]encodeToArr(Stringstr,Stringpassword){try{Ciphercipher=Cipher.getInstance(AES);byte[]byteContent=str.getBytes(CHARSET_NAME);cipher.init(Cipher.ENCRYPT_MODE,getKey(password));byte[]result=cipher.doFinal(byteContent);returnresult;}catch(Exceptione){e.printStackTrace();}returnnull;}publicstaticStringdecode(StringhexStr,Stringpassword){byte[]arr=string2ByteArr(hexStr);returndecode(arr,password);}privatestaticStringdecode(byte[]arr,Stringpassword){try{Ciphercipher=Cipher.getInstance(AES);cipher.init(Cipher.DECRYPT_MODE,getKey(password));byte[]result=cipher.doFinal(arr);returnnewString(result,CHARSET_NAME);}catch(Exceptione){e.printStackTrace();}returnnull;}(byte[]arr){StringBuffersb=newStringBuffer();for(inti=0;i
④ php和java能不能结合使用
完全可以结合使用 比如用 json ajax 都可以实现
⑤ php程序与java程序之间做数据交互,怎么做
可以用php的curl模拟浏览器请求是访问java服务器程序,
或者用java的一个http类库同样发送http请求来访问PHP服务器
⑥ 怎么理解【前台PHP,中间件用Java,底层用C/C++】
前台了就是网站显示的内容,就是给人看的,中间件就是一些相应的程序或接口,负责传递前台的信息后后台服务,可以在多台服务器分布式处理,使用java可以跨操作系统兼容,底层是处理程序,也是实现相关功能的重要部分。