设为首页 收藏本站
查看: 1184|回复: 0

[经验分享] 两个APP跳转传值问题

[复制链接]

尚未签到

发表于 2017-2-18 12:14:39 | 显示全部楼层 |阅读模式
  最近工作上遇到个问题,新的项目要和老系统单点登录。
  有点蒙,从来没做过,网上一搜都是SSO,还需要验证服务器。
  仔细揣摩,其实需求很简单,没必要那么复杂,以下是我的需求和解决方案:
  原系统AP1
  新开发的系统AP2
  两个应用的登录用户相同,需要用户首先在AP1实现登录,然后点击按钮跳转至AP2,保留用户的信息。
  那么问题来清晰了,主要方面需要好好考虑


  • 怎样实现两个应用共享相同的数据?
  • 怎样实现从AP1到AP2的跳转?
  对于第一个问题其实要看服务器是那种的。
  如果是Tomcat,我们只需要配置Server.xml使两个应用的ServletContext对象可以互相访问,具体配置如下:



<Context docBase="AP1" path="/AP1" reloadable="true" CrossContext="true" source="org.eclipse.jst.jee.server:AP1"/>
<Context docBase="AP2" path="/AP2" reloadable="true" CrossContext="true" source="org.eclipse.jst.jee.server:AP2"/>
  其中的CrossContext="true"就是告诉服务器其他应用可以访问我的ServletContext
  如果是WebLogic服务器,那么我们就不需要做任何事了,需要别人的Context时直接取就可以了,获取Context代码如下:
  ServletContext ctx = application.getContext("/AP2");
  。。。。。。
  然后第二个问题,页面跳转无非就是转发和重定向,可是App之间怎么搞。。
  我发现在AP1下获得的AP2的ServletContext有妙用,上文中获得的对象ctx操作空间很大,以下为转发的方式跳转到AP2:
  ctx.getRequestDispatcher("/index.jsp").forward(request,response);
  这个时候我们成功跳转到idnex.jsp,,而这个jsp就是我在AP2中的页面了。而且保留了AP1的request,当然其中的session一样是没有变的。
  到这里基本上没有什么问题了,这里有个问题,就是序列化,远程访问一个对象需要序列化,而这个session是否也需要序列化呢?记不太清楚当时怎么处理了,只记得本地使用Tomcat测试需要序列化,而Weblogic中有自动序列化的选项,不需要太费事转换对象。具体下次再专门查查对象序列化场景和应用吧。
  新人发帖,如有纰漏欢迎大家斧正。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-343868-1-1.html 上篇帖子: 回顾2014 下篇帖子: JavaEE中Web服务器、Web容器、Application服务器区别及联系
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表