當前位置:首頁 » 網頁前端 » 本地運行的web應用
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

本地運行的web應用

發布時間: 2022-04-28 03:40:05

A. 想開發一個WEB應用程序,客戶端訪問程序來管理本地上的資料庫讀寫操作。這個要通過什麼技術來實現

  1. 寫一個客戶端程序,這個程序負責提供所有業務的api介面和訪問資料庫,掛載到任意埠port

  2. 假如web程序的域名是www.abc.com,那就應該在安裝客戶端時,在客戶端的hosts文件里將clientapi.abc.com指向127.0.0.1,解決跨域訪問的問題

  3. web程序關於數據讀寫的操作,都直接訪問client.abc.com:port的api介面

B. 如何運行web應用程序

單擊「調試」->「開始運行」,或者按ctrl+F5

C. 如何獲取web應用的部署路徑

在java中獲得文件的路徑在我們做上傳文件操作時是不可避免的。

web 上運行
1:this.getClass().getClassLoader().getResource("/").getPath();
this.getClass().getClassLoader().getResource("").getPath(); 得到的是 ClassPath的絕對URI路徑。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/
System.getProperty("user.dir");
this.getClass().getClassLoader().getResource(".").getPath(); 得到的是 項目的絕對路徑。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war

2:this.getClass().getResource("/").getPath();
this.getClass().getResource("").getPath(); 得到的是當前類 文件的URI目錄。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/com/jebel/helper/
this.getClass().getResource(".").getPath(); X 不 能運行

3:Thread.currentThread().getContextClassLoader().getResource("/").getPath()
Thread.currentThread().getContextClassLoader().getResource("").getPath() 得到的是 ClassPath的絕對URI路徑。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/
Thread.currentThread().getContextClassLoader().getResource(".").getPath() 得到的是 項目的絕對路徑。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war

在本地運行中
1:this.getClass().getClassLoader().getResource("").getPath();
this.getClass().getClassLoader().getResource(".").getPath(); 得到的是 ClassPath的絕對URI路徑。
如:/D:/myProjects/hp/WebRoot/WEB-INF/classes
this.getClass().getClassLoader().getResource(".").getPath(); X 不 能運行
2:this.getClass().getResource("").getPath();
this.getClass().getResource(".").getPath(); 得到的是當前類 文件的URI目錄。
如:/D:/myProjects/hp/WebRoot/WEB-INF/classes/com/jebel/helper/
/D:/myProjects/hp/WebRoot/WEB-INF/classes/ 得到的是 ClassPath的絕對URI路徑。
如:/D:/myProjects/hp/WebRoot/WEB-INF/classes

3:Thread.currentThread().getContextClassLoader().getResource(".").getPath()
Thread.currentThread().getContextClassLoader().getResource("").getPath() 得到的是 ClassPath的絕對URI路徑。。
如:/D:/myProjects/hp/WebRoot/WEB-INF/classes
Thread.currentThread().getContextClassLoader().getResource("/").getPath() X 不 能運行

最後
在Web應用程序中,我們一般通過ServletContext.getRealPath("/")方法得到Web應用程序的根目錄的絕對路徑。
還有request.getContextPath(); 在Weblogic中要用request.getServletContext().getContextPath();但如果打包成war部署到Weblogic伺服器,項目內部並沒有文件結構的概念,用這種方式是始終得到null,獲取不到路徑,目前還沒有找到具體的解決方案。

D. 如何在Android模擬器上訪問本地的Web應用

啟動電腦上的Tomcat,然後運行Android模擬器,打開模擬器上的瀏覽器,然後訪問:http://10.0.2.2:8888 是不是已經看到那隻可愛的Tomcat貓了 訪問截圖如下圖所示。(說明:在我的電腦上,Tomcat服務使用的埠是8888,默認情況是8080)

E. web怎麼打開本地應用

1、先往注冊表寫信息。如下:

[plain]view plain

  • WindowsRegistryEditorVersion5.00

  • [HKEY_CLASSES_ROOTDiff]

  • "URLProtocol"="這里是小程序的安裝路徑"

  • @="DiffProtocol"

  • [HKEY_CLASSES_ROOTDiffDefaultIcon]

  • @="這里是小程序的安裝路徑,1"

  • [HKEY_CLASSES_ROOTDiffshell]

  • [HKEY_CLASSES_ROOTDiffshellopen]

  • [HKEY_CLASSES_ROOTDiffshellopencommand]

  • @=""這里是小程序的安裝路徑""%1""


  • 將上面的內容保存為.reg文件運行即可。

    2、web頁面調用。在網頁直接一個超鏈接,協議://參數就可以了。比如

  • [html]view plain
  • <ahref="Diff://">

  • alt="點擊這里">

  • </a>


  • [html]view plain
  • <ahref="Diff://hello">SIMU</a>


  • 需要指出的是:在上面例子中注冊表中代碼【@=""這里是小程序的安裝路徑" "%1""】中的%1表示傳入參數,就是對應這此處的Diff://hello,解析之後就可以得到參數hello了。

    二、完整實例。

    1、xxxClient.reg文件

  • [plain]view plain
  • WindowsRegistryEditorVersion5.00

  • [HKEY_CLASSES_ROOTxxxClient]

  • @="xxxClientProtocol"

  • "URLProtocol"=""

  • [HKEY_CLASSES_ROOTxxxClientDefaultIcon]

  • @="C:\xxx_Client\client.bat,1"

  • [HKEY_CLASSES_ROOTxxxClientshell]

  • [HKEY_CLASSES_ROOTxxxClientshellopen]

  • [HKEY_CLASSES_ROOTxxxClientshellopencommand]

  • @=""C:\xxx_Client\client.bat""%1""


  • 2、client.bat文件

  • [plain]view plain
  • @echooff

  • rem設置當前目錄為C:xxx_Client

  • setcurrent_dir=C:xxx_Client

  • pushd%current_dir%

  • callC:xxx_Clientxxx_Client.exe

  • 3、web頁面文件

  • [html]view plain
  • <!DOCTYPEHTMLPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  • <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml">

  • <head>

  • <metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>

  • </head>

  • <body>

  • <div>

  • <ahref="xxxClient://">

  • 打開客戶端軟體

  • </a>

  • </div>

  • </body>

  • </html>


  • 三、注意問題:

    1、如何動態生成注冊表信息,可以在應用程序中寫代碼操作注冊表,寫入上面的URLProtocol注冊表格式信息。

    2、路徑問題,如果應用程序包含了很多文件,就涉及到工作路徑問題,web調用應用程序,當時的工作路徑是的web運行的工作路徑。可以通過bat或應用程序來切換路徑。

    以bat為例,建立一個批處理文件,裡面切換路徑,注冊注冊表信息時,[HKEY_CLASSES_ROOTDiffshellopencommand]使用bat路徑。

    xxxClient.bat文件

    @echo off

    rem設置當前目錄為C: xxx_Client

    setcurrent_dir=C: xxx_Client

    pushd%current_dir%

    call C: xxx_Clientxxx_Client.exe

    3、如何獲取參數?

    MFC Dialog程序的參數值:

    首先需要獲取傳入的參數,在控制台程序中我們都知道main()函數的參數argv里帶入了傳入的參數,而在MFC程序中則需要在InitInstance()中進行命令行參數解析。

    CCommandLineInfocmdInfo;
    ParseCommandLine(cmdInfo);

    為了給對話框傳入待顯示的參數,加入了一個SetDisplayInfo方法。

    CHelloWorldDlgdlg;
    dlg.SetDisplayInfo(cmdInfo.m_strFileName);//設置待顯示的信息

    voidCHelloWorldDlg::SetDisplayInfo(CString&strInfo)
    {
    this->m_strInfo=strInfo;
    }

    最後在OnInitDialog函數中進行參數解析

    //解析傳入的完整地址,e.g"helloworld://helloworld/"
    intpos=m_strInfo.Find("//");//找到分隔符
    m_strInfo=m_strInfo.Mid(pos+2);//取到傳入的參數
    m_strInfo.Delete(m_strInfo.GetLength()-1);//去掉最後的'/'
    m_edit_info.SetWindowText(m_strInfo);


F. 什麼是web應用程序與傳統的應用程序相比它有什麼特徵

WEB是基於網路的,是BS結構,即通過瀏覽器與伺服器溝通來使用。
而應用程序,本身又分為本地應用和網路應用。網路應用為CS結構,即客戶端與伺服器,
而本地應用可以脫離網路運行。
兩者間最大的區別在於嚴格意義上的web是並且只能是運行於瀏覽器之中的。而瀏覽器本身又是一個計算機應用程序。
當然現今技術的發展,類似於air/sliverlight等ria技術,其實已讓兩者間的界限越來越模糊,未來估計很難再有WEB與本地應用的區分了

G. 請教如何將 web 應用轉換為可直接運行的本地應用

action跳轉是 webcontent 下的完全路徑 a標簽跳轉 或window。open()之類的跳轉 是相對路徑

H. 如何:查找 Web 應用程序根目錄

此應用程序的當前自定義錯誤設置禁止遠程查看應用程序錯誤的詳細信息(出於安全原因)。但可以通過在本地伺服器計算機上運行的瀏覽器查看。
詳細信息: 若要使他人能夠在遠程計算機上查看此特定錯誤消息的詳細信息,請在位於當前 Web 應用程序根目錄下的「web.config」配置文件中創建一個 <customErrors> 標記。然後應將此 <customErrors> 標記的「mode」屬性設置為「Off」。
<!-- Web.Config 配置文件 -->
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
注釋: 通過修改應用程序的 <customErrors> 配置標記的「defaultRedirect」屬性,使之指向自定義錯誤頁的 URL,可以用自定義錯誤頁替換所看到的當前錯誤頁。
<!-- Web.Config 配置文件 -->
<configuration>
<system.web>

I. 如何在WEB端,調用本地程序

目前在Internet上的應用均採用客戶伺服器模型,客戶提出請求,伺服器作出應答,即所謂請求應答模式,使用最廣的是客戶端為瀏覽器的B/S模式。通常,瀏覽器中是禁止運行本地可執行程序的。但不允許瀏覽器運行,客觀上限制了瀏覽器的用途和作用。要解決此問題,必須安全擴展瀏覽器的功能。擴充瀏覽器的功能,一是採用控制項或插件技術,二是採用小程序技術。市場上的主流瀏覽器,如IR和Netscape均支持這兩種技術。控制項或插件多用VC、BC++、VB和Delph等語言開發。小程序一般是由,iava語言來編程的。眾所周知,java語言通過「砂箱」機制禁止訪問本地文件系統,更談不上調用本地程序運行,要通過瀏覽器調用本地可執行程序,需使用控制項或插件技術。

J. 未來的 Web 應用是什麼樣子

常在一個論壇玩的,也有很多熱心的朋友。相信那裡會有人幫你解答。請網路7GG,相信你會喜歡那裡
未來的 Web 應用是什麼樣子,雖然還不清晰,但瀏覽器廠商們認為,未來 Web 應用的基石是一種叫做 Indexed DB 的本地存儲技術,這個由 Oracle 發起,最初叫 WebSimpleDB 的本地存儲技術,目前只是一個原型,但已經獲得微軟,Mozilla,Google 等重要廠商的認可。他們還尋求將 Indexed DB 提交 W3C 成為標准。

微軟的背書
Indexed DB 發展有微軟的功勞。多年來,微軟一直和各種有關 HTML 的討論保持距離,現在,他們開始積極參與其中,比如,微軟架構師 Pablo Castro 在對 Indexed DB 的反饋意見中,不僅對 Indexed DB 表示贊賞,而且表示,微軟正在招聘人員從事 Indexed DB 相關的工作。另外,微軟在其 IE 博客中,公開對 Indexed DB 進行背書,微軟說,和 Mozilla 一起,我們對本地存儲技術 Indexed DB 感到振奮,我們認為這是 Web 的一個重要方案。

微軟的表態非常重要,首先,微軟在瀏覽器市場舉足輕重,因此,盡管開發者們為微軟之前對標準的態度表示嘲諷,然而,當微軟和他的競爭對手 Mozilla 站在一起為某種技術背書的時候,這對開發者而言意義非同尋常。微軟的背書意味著,Indexed DB 將成為真實的工具,而不僅僅是學者們的一個概念。另一方面,微軟正在積極開發他們的下一代瀏覽器 IE9,盡管有關 IE9 的新功能還很含糊,但至少說明這個公司開始重新重視他們的市場。

本地還是網路?
這聽上去有些倒退,然而,在瀏覽器本地存儲數據對 Web 應用來說非常重要,雖然雲計算的本質是將一切應用運行到網路上,然而,我們的網路並不是無處不在,也沒有足夠快。本地存儲讓開發者將一些數據保存在本地計算機以便快速處理,這意味著,Gmail, Google Docs 一類的應用可以離線使用,也讓數據可以緩存在本地以便將來使用,這使得雲計算更快更可靠。

Opera 的首席標准官 Charles McCathieNevile 說,將一段文字存儲在本地資料庫,似乎有些用牛刀殺雞的意味,然而對 Web 程序中的大規模數據,則完全有必要建立一個真正的資料庫來保存。

一直以來,瀏覽器通過 Cookie 在本地保存小段文本數據,然而,瀏覽器廠商一直在尋求強大的方法,一個方法就是 Firefox 和 IE8 都支持的 LocalStorage,雖然已經被 W3C 接納為標准,瀏覽器廠商們發現它的局限性越來越大,比如,它不支持多線程。Blizzard 說,因為多個瀏覽標簽可能訪問同一份數據,你必須保證一個標簽的行為不被另一個標簽看到,對那些像 Chrome 一樣擁有多個進程的瀏覽器來說,這尤其難處理。

Web SQL 的興衰
另一個本地存儲方案,來自 Apple,稱為 Web SQL ,有時稱 Web DB,它使用 SQL 查詢語言查詢數據。Safari 支持 Web SQL,還有 Chrome 4, Opera 也在尋求對該技術的支持。然而,Web SQL 遇到了問題,因為每家資料庫廠商都有自己的 SQL,Web SQL 使用的 SQLite 並非標准。Google 認為,目前的 SQL 語法各式各樣,尚待統一。Apple 程序員 Maciej Stachowiak 指出,這樣下去,必將產生多個 Web SQL 版本。

W3C HTML5 起草者,Google 員工 Ian Hickson 說,我不會使用那些沒有被大量支持的標准,同時,在 W3C 有關 Web SQL 的提案中有這么一句話,該提案已陷入僵局。

Indexed DB 的興起
Indexed DB 在瀏覽器層面使用底層的介面,微軟和 Mozilla 認可這一策略,開發者可以自己實現基於這些底層技術的介面,就像人們使用 JavaScript 實現了各種各樣的框架,如 jQuery, Dojo, 及 YUI 。現在的 Web ,開發者們並不經常使用瀏覽器自己的 API,相反,他們更願意使用 jQuery,Dojo 一類跨瀏覽器框架,與其推出一些復雜的,不兼容的 API,還不如推出簡單的底層的東西,讓開發者們自己實現各種應用。

目前,關於 Indexed DB,Opera 還沒有明確表態,但 McCathieNevile 在 W3C 會議上對之表示贊賞,而蘋果則拒絕評論。不過,假如 IE,Mozilla, Chrome 都支持 Indexed DB,並使之成為 W3C 標准,Apple 可能將毫無選擇,因為開發者會使用。

Google 在他們的 Chrome 開發文檔中提到了一些實現方法的細節,並將 Inexed DB 的相關代碼加入 Webkit 代碼庫,這意味著,Apple 很快也會進行一些測試。

Indexed DB 還是不確定的東西,LocalStorage 的經驗告訴我們,成為標准也不一定意味著什麼。但 Indexed DB 有強大的背書者,它至少可以成為讓開發者能夠開始體驗的東西,假以時日,它有可能最後成為一切 Web 應用的基石。