Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >一个项目中的多个webapps应用程序

一个项目中的多个webapps应用程序
EN

Stack Overflow用户
提问于 2016-02-02 00:44:47
回答 1查看 211关注 0票数 1

背景:

我用NetBeans8.1编写了两个ZK应用程序(ZK653CE),它们都是一个任务的模块。现在,我想从应用程序A中访问应用程序B,这两个项目都位于同一个Tomcat 8 the服务器上。

为什么我想这么做:

应用程序A有一个用户登录名,并向用户显示数据。应用程序B允许任何人创建显示数据的模式。我希望用户启动应用程序B并创建一个模式(按下保存关闭应用程序)。此模式将被发送回应用程序A,然后应用程序A将数据的显示行为更改为新模式。我不想把这两个应用程序混为一谈,因为我希望它们保持独立。

我在搜索这个主题时已经知道的:

  • 不可能直接从zk项目中访问外部webapp。
  • 可以从tomcat中使用共享的重新源概念(但我不想这样做,因为我希望它能在不同的and服务器上运行,比如glasfish和其他服务器)

真正的问题:

有没有办法使这两个应用程序独立(如果是,请解释或显示一个例子),或者我必须合并他们?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-19 04:41:54

我有很多时间尝试不同的事情,我会给出两个最好的解决方案:

  1. 使用饼干

您可以使用Cookies在客户端存储数据,并使用服务器访问数据。它通常用于会话管理或控制当前用户的内容的其他部分。

要访问Cookies,可以在ZK类(Controller或Viewmodel)中使用此代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 HttpServletRequest req = (HttpServletRequest) Executions.getCurrent().getNativeRequest();
 Cookie[] cookies = req.getCookies();

这将加载当前会话的所有cookie。有关更多信息,可以在java文档中找到HttpServletRequest类(它表示原始客户端http请求)。然后可以遍历数组并寻找Cookie

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
HttpServletResponse resp = (HttpServletResponse) Executions.getCurrent().getNativeResponse();
for(Cookie c : cookies) {
        if(c.getName().equals(COOKIE_MODE)) {
            externalAccess = Boolean.parseBoolean(c.getValue());             
            c.setMaxAge(0);
            c.setValue(null);
            c.setPath(NAMESPACE);
            resp.addCookie(c);
        } 
}

如果模块是从外部模块加载的,externalAccess会存储。当然,这个外部模块必须首先创建Cookie。set参数用于删除Cookie将年龄设置为0,这意味着它的expiered值也设置了值,如果使用路径来创建它,还必须设置路径,因为必须知道旧Cookie放置的位置。必须将Cookie添加到客户端的HTTP响应(来自服务器),以便客户端替换其旧cookie。

要创建cookie,可以使用以下内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Cookie cookie = new Cookie(COOKIE_NAME, COOKIE_VALUE);
                cookie.setPath(NAMESPACE);
                HttpServletResponse resp = (HttpServletResponse) Executions.getCurrent().getNativeResponse();
                resp.addCookie(cookie);

这与之前的for循环非常相似。

  1. 方法只需向URL添加一个参数(通常用于提供参数):

如果本地主机上有一个one服务器,那么它的地址可能是:http://localhost:8080/,一个模块被加载到/或者如果一个子文件夹被指定为/modul

如果一个人在/modul中有一个名为index.zul的index.zul

您可以使用http://localhost:8080/modul/index.zul访问它。

如果想要添加一个参数,它将执行如下操作:http://localhost:8080/modul/index.zul?externalAccess=1

然后,您可以在index.zul的视图模型或控制器(我使用了MVVM)中使用以下代码访问它:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String external = Executions.getCurrent().getParameter("externalAccess");

然后,我们可以将参数转换为喜欢的人。

若要创建使用上面URL的重定向,可以使用以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Executions.sendRedirect("http://localhost:8080/modul/index.zul?externalAccess=1");

您可以获得one服务器和当前应用程序的URL,如:服务器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String server = Executions.getCurrent().getScheme() + "://" + Executions.getCurrent().getServerName() + ":" + Executions.getCurrent().getServerPort();

对于以“/”开头的应用程序路径:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Executions.getCurrent().getContextPath() +  Executions.getCurrent().getDesktop().getRequestPath();

还可以使用一个配置文件来存储URL(在webserver上),但我将在这里不讨论这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35148642

复制
相关文章
select2的使用
你必须在其它地方能获取到这个select标签,所以要为其设置id、class或者是name以便能得到这个标签。multiple属性是是否可以多选。option是下拉框中多选的内容。例如在angluar中,使用ng-repeat循环出来值xxx,然后放在option中供select使用。
晓果冻
2022/06/17
1.5K0
ui-select官方教程(二)——ui-select指令
ui-select指令 ui-select的指令和事件 属性 选项 描述 值 默认值 multiple 多选,直接加上multiple属性 close-on-select 在多选情况下,选中一项,就关闭下拉项 boolean true append-to-body 在多选情况下,选中项追加显示 boolean false ng-disabled 控件被禁用 boolean true ng-model 控件绑定对象 String,number,array undefined search-enabled
逝兮诚
2019/10/30
2.7K0
select2的搜索框不能输入搜索内容
按照select2官网配置完后,搜索框弹出后无法输入内容,究竟怎么回事,于是在其他页面尝试了select2,发现可以啊,为什么在这个地方不可以,终于找到了造成这个问题的不同之处:select2在模态对话框中会失效。找到了问题所在,但不知道如何解决:百度或者google,最终找到了解决方案:
johnhuster的分享
2022/03/29
1.4K0
在 Discourse 中如何使用输入对话框
如下图显示的内容,可以在输入框中输入文本,然后在主题中可以根据你输入的文本重新生成字符串:
HoneyMoose
2021/09/08
2.2K0
在 Discourse 中如何使用输入对话框
在Ubuntu 20.04中禁用motd欢迎消息
本篇文章重点讲解一下在Ubuntu 20.04中禁用motd欢迎消息具体方法,有需要的小伙伴可以参考一下。
会长君
2023/04/25
2.6K0
禁止在input中输入中文
提示:设置ime-mode为disabled的意思是禁止在输入时禁止用户激活输入中文,韩文,日文等的输入法(IME)状态,因为这个只能检测到键盘的输入,对通过鼠标操作的粘贴和拖放无效。
崔笑颜
2020/06/08
4K0
win禁用shift切换输入法
在很多场景下,我们都会使用到shift来完成一些功能,最常见的就是输出键盘上面一排标点符号,但是往往在使用shift时会出现切换输入法的情况,在一些仅英文或者中文输入的场合切换会对工作效率造成影响,这里介绍禁用shift切换输入法的方法,仅仅采用ctrl+空格的方式完成切换输入法。
timerring
2022/09/21
6K0
win禁用shift切换输入法
select2无法输入搜索和宽度问题解决
这时候select2的搜索框无法输入,一般有两方面的原因 1.检查下modal的div中是否有tabindex=”-1”,这个属性
botkenni
2019/09/02
1.7K0
select2无法输入搜索和宽度问题解决
yii2使用select2
Text-to-speech function is limited to 200 characters
botkenni
2019/09/02
8990
yii2使用select2
select2 使用教程(简)「建议收藏」
用了这么久的Select2插件,也该写篇文章总结总结。当初感觉Select2不是特别好用,但又找不到比它更好的下拉框插件。
全栈程序员站长
2022/09/12
25.1K0
select2 使用教程(简)「建议收藏」
在python中实现密文输入
本文由腾讯云+社区自动同步,原文地址 http://blogtest.stackoverflow.club/input-password-in-python/
羽翰尘
2019/11/21
1.8K0
【DB笔试面试727】在Oracle中,如何禁用HAIP?
说明,ora.cluster_interconnect.haip的ENABLED属性的原始值为1:
AiDBA宝典
2020/01/20
1.8K0
如何使用 Selenium 在 HTML 文本输入中模拟按 Enter 键?
Selenium是 Python 中可用的内置模块,允许用户制作自动化套件和测试。我们可以使用 selenium 构建代码或脚本以在 Web 浏览器中自动执行任务。Selenium 用于通过自动化测试软件。此外,程序员可以使用 selenium 为软件或应用程序创建自动化测试用例。
海拥
2021/12/20
8.4K0
在 Vue 中创建自定义输入
基于组件的库或框架(如 Vue )可以创建 可重用组件 ,它能在各自应用程序中相互传递数据,这些框架能确保这些数据是一致的,并且(希望)简化了它们的使用方式。
疯狂的技术宅
2019/03/28
6.5K0
Python 教程之输入输出(1)—— 在 Python 中接受输入
开发人员经常需要与用户交互,以获取数据或提供某种结果。今天的大多数程序都使用对话框来要求用户提供某种类型的输入。而 Python 为我们提供了两个内置函数来读取键盘输入。
海拥
2022/09/16
1.7K0
Python 教程之输入输出(1)—— 在 Python 中接受输入
在评论输入框中插入表情
最近在做一个后台管理系统,要求可以对前台用户的作品进行评论,而评论要可以输入表情,常规的文字输入框都是用的文本域textarea来做的,但这种输入框只能输入文字,没有办法输入表情图标,这个时候可编辑div就能起到作用了,那么如何在可编辑的div中插入表情呢?
越陌度阡
2020/11/26
4.1K0
初次使用AngularJS中的ng-view,路由控制
AngularJS中的route可以控制页面元素的改变,使多页面变成一个单页面 第一步:引入必要的js: <script src="js/lib/angular.js"></script> <script src="js/lib/angular-animate.min.js"></script> <script src="js/lib/angular-route.min.js"></script> <script src="app.js"></script> 第二步:准备好一个单页: <body ng-a
Ryan-Miao
2018/03/13
1.6K0
在文件中输入字符串HelloWord
Our life today is three years ago, our life three years later is today's choice.
小Bob来啦
2020/12/15
2.5K0
在文件中输入字符串HelloWord
点击加载更多

相似问题

使用Select2禁用用于自动完成的输入

12

在更新来自ng重复的ng禁用输入时停止ng模型

20

ng-禁用所有输入元素

10

Select2 -禁用用户输入选择

23

在ng-repeat下的tfoot中禁用输入控件

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文