全文预览已结束
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件开发与设计 S O F T W A R ED E V E L O P M E N TA N DD E S I G N J S P 页面启动J a v a 应用程序的原理与实现 李安东1 王余旺2 1 安徽工程技术学校 宿州2 3 4 0 0 0 2 安徽理工大学现代教育技术中心 淮南2 3 2 0 0 0 摘要 由J S P 页面启动J a v a 应用程序在W e b 应用中有时可能是一件很有意义的工作 在某些专用的W e b 应用系 统中 服务器往往既要响应客户端的页面请求 又要微一些后台的处理工作 有些处理可能还需要人工的参与和操 作 比如启动和关闭一个J a v a 后台程序等等 通过用户自定义的标签 在标签的处理类中加入启动J a v a 程序的代 码 同时对J a v a 程序作必要的调整 即可实现由J S P 页面启动J a v a 程序 可以使所有管理和使用系统的操作全部通 过J S P 页面来完成 当这样的J a v a 程序很多时 会给管理 维护和使用系统带来很大的便利 对于不熟悉J a v a 语言 的用户尤为如此 实现了对系统的集中化管理 提高了系统的集成度和专业化程度 这种方法还有一个明显的优点 就是它与平台无关 关键词 J S P J a v a S w i n g j s P 页面启动J a v a 程序 平台无关性 T h eP r i n c i p l ea n dI m p l e m e n t a t i o no fS t a r t i n gAJ a v aA p p l i c a t i o nf r o mJ S PP a g e u A n d o n g t W A N GY 1 珊彻矿 1 E n g i n e e r i n ga n dT e c h n o l o g yS c h o o lo fA n h n i S u z h o u2 3 4 0 0 0 2 C e n t e ro fM o d e r nE d u c a t i o n a lT e c h n o l o g y A n h u iU n i v e r s i t yo fS c i e n c ea n dT e c h n o l o g y H u a l n a n2 3 2 0 0 0 A b s t r a c t I ti sv e r yu s e f u lf o rp e o p l et ol a u n c haj a v aa p p l i c a t i o nv i aj s pp a g ei nm a n yw e ba p p l i c a t i o ns y s t e m s I ns o m e w e bs y s t e m s as e r v e ro f t e nh a st od os o m e t h i n gi nb a c k e n dw h i l ei tm a k e sr e s p o n s ei nf m n t e n df o rc l i e n t sr e q u e s t i n gj s p p a g e s S o m ep r o c e s s e sm a ya l s on e e dt oe n g a g ei nh u m a nc o n t r o la n dm a n u a lo p e r a t i o n f o re x a m p l e s t a r t i n ga n de x i t i n ga j a v ap r o g r a mi nb a c k e n da n d8 0f o r t h T h ei m p l e m e n t a t i o no fl a u n c h i n gaj a v aa p p l i c a t i o nf r o mj s pp a g ec a nb ec a r r i e do u t f r o mc u s t o mt a gt h r o u g ha d d i n gs e m ep i e c e so fc o d e si n t ot h et a gh a n d l e rc l a s sa n da d j u s t i n gt h ej a v aa p p l i c a t i o ni t s e l f 8 0 t h a ta l lt a s k so fm a n a g e m e n t m a i n t e n a n c ea n do p e r a t i o no faw e ba p p l i c a t i o ns y s t e mC a nb es i m p l yd o n ec o m p l e t e l yi na j s p p a g e O nt h eo t h e rh a n d h o w e v e r i t se s p e c i a l l yc o n v e n i e n tf o ru s e r gw h oa 弛n o tf a m i l i a rw i t hj a v al a n g u a g ea n dw h e n t h e r ea r eal o to fs u c hj a v aa p p l i c a t i o n si nas y s t e m T h ec e n t r a l i z e dm a n a g e m e n to fs y s t e mm e n t i o n e da b o v ecana l s o i m p m v ei n t e g r a t i o na n ds p e c i a l i z a t i o no fa p p l i c a t i o ns y s t e m s A p p a r e n t l y t h i sm e t h o di sp l a t f o r m i n d e p e n d e n tb e c a u s ei ti s b a s e do nj a v aa n dj 叩 K e y w o r d s J S P J a v a S w i n g s t a r ta J a v aa p p l i c a t i o nv i aJ S Pp a g e p l a t f o r m i n d e p e n d e n t 在目前的很多J S PW e b 应用系统中 所有的查询功能都 以J S P 页面的形式提供给客户端的用户 而在J s p 服务器端除 了提供页面服务功能外 有时可能还要进行一些后台处理工 作 而且有些比较复杂的工作可能还必须由管理员在服务器 上手工参与操作 例如启动和关闭一个J a v a 后台处理程序 有时就需要由管理员来决定 为了很好地与人交互 显然不 应该将这些处理工作直接放到J S P 页面或自定义的标签处理类 内 而应该建立独立的J a v a 应用程序 在这样的J a v a 程序数 量很多的情况下 通过J S P 页面来启动这些J a v a 程序 将会 为管理带来很大的方便 可以使所有管理和使用系统的操作 全部通过J S P 页面来完成 这种集中化的管理方式 将会有效 降低管理 维护系统的难度 避免造成混乱 同时也使整个 系统更加集成化和专业化 这样的后台处理程序也可以是一个J a v a 图形界面程序 比如学校教务管理系统中的排课处理功能 图形化的界面更 有利于管理员的操作 使用J a v a 语言的S w i n g 组件编写该图 形界面 可以使应用系统更加单一 便于开发和维护 并且 本文收稿日期 2 0 0 8 年5 月2 5 日 一8 一 可直接应用于各种不同系统平台 无需重新编码 由于这种 后台处理并不经常 所以采用图形界面对服务器的效率不会 造成明显影响 通过J S P 页面启动J a v a 程序 对于不熟悉J a v a 语言的用 户来说 具有更加明显的实用价值 本文对如何由J S P 页面启 动J a v a 程序 特别是启动包含图形界面的程序的原理及其实 现过程进行初步的分析和探讨 1 启动方法 一 本方法主要分析其在W i n d o w s 环境下的实现过程 而由 于J a v a 语言的平台无关性 其在L i n u x 等其它环境下的实现 均与此类似 由J S P 页面启动J a v a 图形界面的方法就是创建 一个专用的自定义标签 c u s t o mt a g 并在该白定义标签的处 理类内添加启动图形界面的代码 用户通过J S P 页面引用该标 签启动图形界面 现将其具体实现过程及需要注意的问题分 析如下 1 1 添加启动代码 下面假设实现图形界面的类为 W o r d 自定义标签处理类 为M y t a g 这些类都放在m y t a g 包中 可以将启动代码添加到 万方数据 S O F T W A R ED E V E L O P M E N TA N DD E S I G N软件开发与设计 自定义标签处理类的某一个方法中 比如添加到标签处理类 的d o S t a r t T a g0 方法中 也就是在该方法中调用J W o r d 的入 口方法m a i n0 即可 示例代码如下 J W o r d m a i n n u l l 这里要说明的是 W o r d 入口方法的名称并不一定要是 m a i n 而且此方法也不一定要是静态的 只要能完成初始化图 形界面的功能即可 但其访问类型必须是p u b l i c 自定义标签的制作过程请参阅有关资料 本文不作介绍了 1 2 制作启动页面 假设该自定义标签的名称为m y t a g l 其所在的标签库名 称 前缀 为m y t a g s 启动页面s t a r t j s p 内容如下 储关闭本窗口 然后在首页i n d e x h t m l 中添加一个超级链接指向该页面 启动J w o m 程序砒 当用户在浏览器窗口中单击这个链接时 即可启动该图 形界面 此时 该图形应用程序与J S P 容器 比如T o m c a t 运行 在同一个J v M 上 属于同一个进程 应该将其看成j s P 应用 的一个组成部分 而且J W o r d 类应该和自定义标签的处理类 处于同一个包中 以便在启动时能够找到它 1 3 退出时的清理工作 通常独立运行的J a v a 应用程序 在关闭其顶层窗口后 是通过调用S y s t e m e x i t0 或R u n t i m e e x i t0 退出程序的 但 是 按1 1 和1 2 中叙述方法启动的图形界面不能调用这两个 方法退出 因为它是和T o m c a t 运行在同一个J v M 上 调用上 述方法后 J V M 即被关闭 因而T o m c a t 也就被关闭了 这是 不应允许发生的 因此当图形界面退出时 应将代码S y s t e m e x i t0 替换为 m y F r a m e d i s p o s e0 顶层的J F r a m e 对象 T h r e a d c u r r e n t T h r e a d0 i n t e r r u p t0 结束e v e n td i s p a t c ht h r e a d 通过以上两行代码 释放了S w i n g 组件所占用的内存资 源 并结束其事件分发线程 1 4 启动方式的判断 为了允许用户在命令行上也能启动图形界面 程序有必 要对其自身被启动的方式作出判断 以便对不同情况分别作 出相应的处理 比如退出时是否调用S y s t e m e x i t0 可以采用下列两种方式中的任何一种进行判断 1 通过J S P 启动时 可以传递给程序的m a i n0 方法一 个特定的参数 以此来判断是否由J S P 启动 2 在程序中添加一个与m a i n0 不同的方法 作为J s P 启动该程序时调用的入口点 而在命令行启动时 调用的一 定是m a i n0 方法 由此即可区分是以何种方式启动的程序 通常情况下 即使是由命令行方式启动 退出时不调用 S y s t e m e x i t0 方法 而是按1 3 中的方式处理也是可以的 当 然 为了确保不出问题 还是应分别处理 详情请参见J D K 6 D O C 中的资料 A W TT h r e a d i n gI s s u e s 地址是h t t p j a v a s u n c o m J j a v a s e 6 d o c s a p i j a v a a w t d o c f d e s A W I T h r e a d l s s u e s h t m l 1 5 避免多实例运行问题 如果启动的图形界面程序要进行数据库操作的话 可能 需要避免多个实例同时在同一台机器上运行 以免数据的一 致性遭到破坏 为了保证任何时候至多只有一个实例运行 可采取以下措施 在图形界面J W o M 类内设置一个静态变量 s m i l ep u b l i cb o o l e a ne x i s t i n g f a l s e 在标签处理类M y t a g 的d o S t a r t T a g0 方法内添加一个条件 语句 判断J W o r d e x i s t i n g 为假时 就启动一个J W o M 的实例 否则就不启动 当第一个实例启动时 J W o r d 的方法首先将静 态变量e x i s t i n g 改为t r u e 这样即阻止了后续实例的建立 当 图形界面退出时 再将e x i s t i n g 恢复为f a l s e 以便需要时可以 再次启动新的J W o r d 实例 1 6 禁止远程启动 由于启动的图形界面是在服务器上运行的 所以应当禁 止从客户机上远程启动 因此 启动图形界面时 应当检测 是由本地启动 还是由远程启动 如果是远程启动 则应拒 绝本次启动 此功能可通过比较请求者和本地机的I P 地址 来实现 如果请求者I P 地址与本机I P 地址相等 则是本地 启动 在标签处理类内用如下代码可以获取客户机的I P 地址 S e r v l e t R e q u e s tr e q u e s t2p a g e C o n t e x t g e t R e q u e s t0 S t r i n ga d d r r e q u e s t g e t R e m o t e A d d r 使用N e t w o r k I n t e r f a c e 类提供的功能枚举出本机的I P 地 址 因为本机可能会有多块网卡绑定了多个I P 地址 以及 L i n u x 定义的l o c a l h o s t 的I P 地址1 2 7 0 0 1 所以本地机一般有 多个I P 地址 将客户端I P 地址与本机的地址逐一进行比较 即可获知是否本地启动 获取本机I P 地址的代码如下所示 i m p o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 八年级语文下册第二单元6阿西莫夫短文两篇第1课时教案新人教版2020122544
- 2025年针纺织品购销合同
- 2025版耳鸣症状剖析及护理注意事项
- 合成生物学科普
- 急性酒精中毒个案护理培训
- 非遗文化扎染介绍
- 循环水管道安装施工方案
- 口腔检查操作方法
- 环境旅游管理专业介绍
- 产科入院宣教科普
- 高校后勤管理规范及服务标准
- 危险品运输资格(装卸管理人员)考试2025年题库及答案
- 迟发性运动障碍临床进展讲课文档
- 中国邮政集团工作人员招聘考试笔试试题(含答案)
- 泌尿外科健康宣教
- 间歇充气加压用于静脉血栓栓塞症预防的中国专家共识解读
- 认知障碍患者日常护理查房
- 2025年水域救援题库
- 无人机系统应用技术专业教学标准(高等职业教育本科)2025修订
- 人工流产并发症
- 护理人员体验患者:角色互换与共情实践
评论
0/150
提交评论