A. 想开发一个WEB应用程序,客户端访问程序来管理本地上的数据库读写操作。这个要通过什么技术来实现
写一个客户端程序,这个程序负责提供所有业务的api接口和访问数据库,挂载到任意端口port
假如web程序的域名是www.abc.com,那就应该在安装客户端时,在客户端的hosts文件里将clientapi.abc.com指向127.0.0.1,解决跨域访问的问题
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""
- [html]view plain
<ahref="Diff://">
alt="点击这里">
</a>
- [html]view plain
<ahref="Diff://hello">SIMU</a>
- [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""
- [plain]view plain
@echooff
rem设置当前目录为C:xxx_Client
setcurrent_dir=C:xxx_Client
pushd%current_dir%
callC:xxx_Clientxxx_Client.exe
- [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>
将上面的内容保存为.reg文件运行即可。
2、web页面调用。在网页直接一个超链接,协议://参数就可以了。比如
需要指出的是:在上面例子中注册表中代码【@=""这里是小程序的安装路径" "%1""】中的%1表示传入参数,就是对应这此处的Diff://hello,解析之后就可以得到参数hello了。
二、完整实例。
1、xxxClient.reg文件
2、client.bat文件
3、web页面文件
三、注意问题:
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 应用的基石。