php融合到javaweb中,php和java結合做網站

本文目錄一覽:

PHP與JAVA交互,該怎麼搞

這是一門課程了。javaweb,,或者叫jsp。jsp就是由html和java腳本,等語言構成的。java程序嵌套在html里。相當於php。以網頁的形式將java展現。這也就是所謂的動態。以為java程序獲取的時間會變動。或者數據庫變動從而引起網頁的變動。具體實現,你可以在網上查找jsp教程。以下是一個jsp頁面的例子:注釋(1):上面一句是jsp命令語句,標準形式表示,利用java腳本語言。引入java.util包里的所有文件。編碼為utf-8注釋2:java腳本之後是標準的html格式。可嵌入java代碼”MyJSP’index.jsp’startingpageThisismyJSPpage.可嵌入java腳本

PHP可以和JAVA混合在一起開發網站么?

php目前是web2.0時代做火的一門編程語言。在一線城市大量招聘php人才。成功案例,去谷歌或者百度一下,看一下結果就知道php現在是多麼流行了。php要運行,需要服務器來支持運行。可以喝Java結合,php一個支持Java擴展的模塊。當然了,也可以不同的模塊使用不同的語言來編寫,而不限於Java一種。

大型網站中,php和java是怎麼結合的??

我是做JAVAEE的,但還沒有和PHP的共存的項目的經驗,但.NET是有的。

.NET負責報表部分,JAVA是業務處理,實際上,兩部分除了訪問同一個庫外,沒什麼交集。

我想PHP應該不同,應該是和JAVA分擔前後端的。

PHP負責展示及控制,JAVA負責業務和固化。

PHP因其執行容器原因,沒辦法駐留內存,高並發性能上就是個問題。

JAVA可以彌補這點。

前端上PHP可以彌補JAVA開發效率低的短板。

純個人理解。

php做客戶端,java做服務端,用webservice怎麼交互

.java編寫webservice服務端,php作為客戶端調用.

1.首先我們寫一個簡單的java類並發布webservice.

package com.php;

import java.util.Map;

/**

* @author yangjuqi

* @createdate 2009-5-18 下午04:43:09

*

*/

public class WebServiceImpl {

public String sendTransact(Map map) throws Exception {

System.out.println(“::: Call testModel1 :::”);

if(map!=null){

String bugmanifestid = StringUtil.getValue(map.get(“bugmanifestid”));

String editedby = StringUtil.getValue(map.get(“editedby”));

String dditeddate = StringUtil.getValue(map.get(“dditeddate”));

String fullinfo = StringUtil.getValue(map.get(“fullinfo”));

String action = StringUtil.getValue(map.get(“action”));

System.out.println(“bugmanifestid -$amp;quot;$ +bugmanifestid);

System.out.println(“editedby -$amp;quot;$ +editedby);

System.out.println(“dditeddate  -$amp;quot;$ +dditeddate);

System.out.println(“fullinfo -$amp;quot;$ +fullinfo);

System.out.println(“action  -$amp;quot;$ +action);

}

return “success”;

}

}

2.配置server-config.wsdd

deployment xmlns=””

xmlns:java=””

handler name=”URLMapper”

type=”java:org.apache.axis.handlers.http.URLMapper” /

handler name=”auth”

type=”java:com.php.AuthenticationHandler” /

handler name=”URLLogging”

type=”java:com.php.LogHandler”

parameter name=”filename” value=”c:\\MyService.log” /

/handler

service name=”IWebService” provider=”java:RPC”

parameter name=”className”

value=”com.php.WebServiceImpl” /

parameter name=”allowedMethods” value=”*” /

namespace;/namespace

/service

transport name=”http”

requestFlow

handler type=”URLMapper” /

handler type=”URLLogging” /

/requestFlow

/transport

/deployment

3.發布到jboss後,訪問 wsdl能看到xml文件就說明webservice發布好了。

4.寫testphpweb.php文件

php

/*

* @author juqi yang $amp;amp;$gt;

* @create date 2009-05-18

*/

header(“Content-Type: text/html; charset=GB2312”);

echo ” ::: PHP CALL JAVA-WEBSERVICE ::: br$amp;quot;$;

require_once(“nusoap/lib/nusoap.php”);

// 要訪問的webservice路徑

$NusoapWSDL=” wsdl”;

// 生成客戶端對象

$client = new soapclient($NusoapWSDL, true);

// 設置參數(注意:PHP只能以’數組集’方式傳遞參數,如果服務端是java,用Map接收)

$param = array( ‘bugmanifestid’ = ‘E090500001’,

‘editedby’ = ‘張三’,

‘dditeddate’  = ‘2009-05-19’,

‘fullinfo’ = ‘已聯繫劉德華,籌備今晚吃飯的事,等待回復’,

‘action’  = ‘0’);

echo “begin remote 。。。br$amp;quot;$;

// 調用遠程方法

$result = $client-call(‘sendTransact’, array($param));

echo “end remote 。。。br$amp;quot;$;

// 顯示執行結果

if (!$err=$client-getError()){ 

echo ‘結果 : ‘.$result;

}else{ 

echo ‘錯誤 : ‘.$err; 

} 

5.啟動apache,訪問

php頁面顯示:

::: PHP CALL JAVA-WEBSERVICE :::

begin remote 。。。

end remote 。。。

結果 : success

jboss後台監視結果:

17:12:20,781 INFO [STDOUT] ::: Call testModel1 :::

17:12:20,781 INFO [STDOUT] bugmanifestid -E090500001

17:12:20,781 INFO [STDOUT] editedby -張三

17:12:20,781 INFO [STDOUT] dditeddate  -2009-05-19

17:12:20,781 INFO [STDOUT] fullinfo -已聯繫劉德華,籌備今晚吃飯的事,等待回復

17:12:20,796 INFO [STDOUT] action  -0

到此,php作為客戶端調用java寫的webservice服務端完成.

二,php編寫webservice服務端,java作為客戶端調用.

1.編寫php webservice

php

/*

* @author juqi yang $amp;amp;$gt;

* @create date 2009-05-18

*/

header(“Content-Type: text/html; charset=GB2312”);

require_once(“nusoap/lib/nusoap.php”);

function sendManifest($param)

{

//把接收到的數據顯示出來

return “hello “.$param[“projectid”].”=$amp;quot;$.$param[“projectname”].”=$amp;quot;$.$param[“moduleid”];

}

$server = new nusoap_server();

//配置WSDL namespace

$server-configureWSDL(‘myservice’,  //服務名稱

”,  //tns指定的namespace,一般填寫自己的URI

true, //endpoint url or false

‘rpc’,  //服務樣式

”,  //傳輸協議,一直是這個。

”  //wsdl ‘types’元素targetNamespace

);

// 註冊web服務

$server-register(‘sendManifest’, // 服務

array(

‘projectid’ = ‘xsd:string’,

‘projectname’  = ‘xsd:string’,

‘moduleid’ = ‘xsd:string’,

‘modulepath’  = ‘xsd:string’,

‘bugtitle’ = ‘xsd:string’,

‘bugtype’  = ‘xsd:string’,

‘openedby’ = ‘xsd:string’,

‘openeddate’  = ‘xsd:string’,

‘assignedto’  = ‘xsd:string’,

‘assigneddate’ = ‘xsd:string’,

‘fixedtime’ = ‘xsd:string’,

‘fullinfo’ = ‘xsd:string’,

‘bugmanifestid’ = ‘xsd:string’), // 輸入參數;數組,指定類型

array(‘resultCode’ = ‘xsd:string’),  // 輸出;數組,指定類型

”,  // namespace of method

”,  // soapaction

‘rpc’, // style

‘encoded’, // use

‘serviceConsumeNotify’ // documentation

);

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) $HTTP_RAW_POST_DATA : ”;

$server-service($HTTP_RAW_POST_DATA);

2.啟動apache後,訪問 ,如果頁面如下圖所示,表示webservice發布好了。

3.編寫java客戶端CallPhpServer .java 並調用php webservice

package com.php;

import java.util.HashMap;

import java.util.Map;

import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

/**

* @author yangjuqi

* @createdate 2009-5-18 下午05:31:06

*

*/

public class CallPhpServer {

/**

* 測試方法

* @return

* @throws Exception

*/

public static String callManifest() throws Exception {

System.out.println(“0”);

Service service = new Service();

Call call = (Call) service.createCall();

System.out.println(“1”);

call.setTargetEndpointAddress(new java.net.URL(“”));

call.setOperationName(“sendManifest”);

System.out.println(“2”);

Map map=new HashMap();

map.put(“projectid”, “109”);

map.put(“projectname”, new String(“新MM國際物流平台”.getBytes(),”iso-8859-1″));

map.put(“moduleid”, “11”);

map.put(“modulepath”, new String(“財務管理”.getBytes(),”iso-8859-1″));

map.put(“bugtitle”, new String(“關於總賬報表數據的問題”.getBytes(),”iso-8859-1″));

map.put(“bugtype”, “TrackThings”);

map.put(“openedby”, “zhangsan”);

map.put(“openeddate”, “2009-05-31”);

map.put(“assignedto”, “liumang”);

map.put(“assigneddate”, “2009-05-31”);

map.put(“fixedtime”, “2009-06-03”);

map.put(“fullinfo”, new String(“現在總賬報表頁面下的合計數據不對,煩請抓緊事件核實確認更正,謝謝!”.getBytes(),”iso-8859-1″));

map.put(“bugmanifestid”, “E090500001”);

call.addParameter(“param”, org.apache.axis.Constants.SOAP_ARRAY,javax.xml.rpc.ParameterMode.IN);

call.setReturnType(org.apache.axis.Constants.XSD_STRING);

System.out.println(“3”);

Object obj=call.invoke(new Object[]{map});

return obj.toString();

}

public static void main(String[] args) throws Exception {

System.out.println(“::: call php webservice :::”);

String str = callManifest();

String result=new String(str.getBytes(“iso-8859-1″),”GBK”);

System.out.println(result);

}

}

控制台顯示結果:

::: call php webservice :::

log4j:WARN No appenders could be found for logger (org.apache.axis.i18n.ProjectResourceBundle).

log4j:WARN Please initialize the log4j system properly.

1

2

3

hello 109=新MM國際物流平台=11

到此,java作為客戶端調用php的webservice服務端完成.

PHP的網站能接入到JAVA系統裡面么?

一、 語言比較 Php是解釋執行的服務器腳本語言,首先php有簡單容易上手的特點。語法和c語言比較象,所以學過c語言的程序員可以很快的熟悉php的開發。而java需要先學好java的語法和熟悉一些核心的類庫,懂得面向對象的程序設計方法。所以java不如php好學。 Java首先要編譯成字節碼.class文件,然後在java虛擬機上解釋執行。Java的web開發首先最容易想到的就是JSP(現在已經到JSP2.0),原來的java的web開發都是用servlet來實現的,用servlet來開發需要程序員在java的源文件中嵌入大量的html代碼。所以後來就出現了JSP,JSP可以方便的嵌入到html文件當中,其實jsp文件在服務器上執行的時候首先會被應用服務器轉換成servlet,然後再編譯執行。Jsp可以通過servlet和JavaBean的支持產生強大的功能。JavaBean 是一種可復用的、跨平台的軟件組件。使用javabean可以方便的實現java代碼和html的分離,能夠增強系統的功能和軟件的復用性。 Java的web開發屬於SUN公司定義的J2EE其中的規範。而且在J2EE中包括了java的web開發的所有方面,如:JSP、Servlet、JDBC、JNDI、JAVABEAN、EJB等等。J2EE就特別適合於做大型的企業級的應用。 二、 數據庫訪問比較 Java通過JDBC來訪問數據庫,通過不同的數據庫廠商提供的數據庫驅動方便地訪問數據庫。訪問數據庫的接口比較統一。 PHP對於不同的數據庫採用不同的數據庫訪問接口,所以數據庫訪問代碼的通用性不強。例如:用Java開發的web應用從MySQL數據庫轉到Oracle數據庫只需要做很少的修改。而PHP則需要做大量的修改工作。 三、 系統設計架構比較 採用Java的web開發技術,需要使用的是面向對象的系統設計方法,而PHP還是採用面向過程的開發方法。所以用Java進行開發前期需要做大量的系統分析和設計的工作。 四、 跨平台性 Java和PHP都有很好的跨平台的特性。幾乎都可以在不作任何修改的情況下運行在Linux或者Windows等不同的操作系統上。 五、 開發成本比較 PHP最經典的組合就是:PHP + MySQL + Apache。非常適合開發中小型的web應用,開發的速度比較快。而且所有的軟件都是開源免費的,可以減少投入。 Java的web應用服務器有免費Tomcat、JBoss等,如果需要更好的商業化的服務有:Web Sphere和 Web logic。 六、 分布式多層架構比較 PHP只能實現簡單的分布式兩層或三層的架構,而JAVA在這方面就比較強大,可以實現多層的網絡架構。數據庫層(持久化層)、應用(業務)邏輯層、表示邏輯層彼此分開,而且現在不同的層都已經有一些成熟的開發框架的支持。例如Struts就是利用java的web開發技術實現了MVC的設計模式,而在業務邏輯層也有Spring框架,數據庫持久化層有Hibernate等框架。這些框架可以方便開發者高效、合理、科學得架構多層的商業應用。 下面簡要的說一下Struts,它實質上是在JSP Model2的基礎上實現的一個MVC(Model、View、Controler)框架。JSP Model2體系結構是一種聯合使用JSP 與Servlet 來提供動態內容的方法。在Struts框架中,模型由實現業務邏輯的JavaBean或EJB組件構成,控制器由Servlet實現的,視圖由一組JSP文件組成。採用Struts可以明確角色的定義和開發者與網頁設計者的分工。而且項目越複雜,其優勢越明顯。 七、 源代碼安全 PHP開發的程序的源代碼都是公開的,他人拿到php開發的程序後都可以進行修改。 Java開發的程序,最後用戶拿到的是只是一些編譯好的class類,無法看到完整的源代碼,安全性高。 八、性能比較 有人做過試驗,對這兩種種語言分別做迴圈性能測試及存取Oracle數據庫測試。 在循環性能測試中,JSP只用了令人吃驚的四秒鐘就結束了20000*20000的迴圈。而PHP測試的是2000*2000循環(少一個數量級),卻分別用了63秒。 數據庫測試中,二者分別對 Oracle 8 進行 1000 次 Insert,Update,Select和Delete: JSP 需要 13 秒,PHP 需要 69 秒。 表格 1 PHP 與Java的比較 PHP JAVA 可復用性 低 高 開發速度 快 慢 易維護性 差 優 可移植性 優-Linux、Windows、Unix等 安全性 低 高 開發費用 低 高 多層架構 差 優 數據庫訪問 接口不統一 接口統一 可擴展性 差 優 面向對象 差 優 綜上所述,我個人認為,PHP適合於快速開發,中小型應用系統,開發成本低,能夠對變動的需求作出快速的反應。而Java適合於開發大型的應用系統,應用的前景比較廣闊,系統易維護、可復用性較好。還有,同樣功能的系統用Java開發的系統要比PHP開發的系統的價格要高.

大型網站中,php和java是怎麼結合的

PHP+JAVA的架構,特別是對於有複雜的用戶交互及高並發及後端還有複雜的業務的網站來說,如電商類網站,前端用PHP,可以做到快速開發,部署不用重啟,同時nginx + fastcgi + php的組合也是經得起高並發考驗的。後端的複雜業務處理(如訂單處理,購物車,庫存相關的)使用java來做實在是太合適了。不信你可以試試!

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/301030.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-29 14:19
下一篇 2024-12-29 14:19

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Python爬蟲可以爬哪些網站

    Python是被廣泛運用於數據處理和分析領域的編程語言之一。它具有易用性、靈活性和成本效益高等特點,因此越來越多的人開始使用它進行網站爬取。本文將從多個方面詳細闡述,Python爬…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29

發表回復

登錄後才能評論