设为首页收藏本站
机战Z2破界篇 星组汉化 下载

星组游戏论坛

 找回密码
 注册(QQ注册+邀请注册)

QQ登录

只需一步,快速开始

查看: 2293|回复: 1

[心得] 如何使Web服务器启动时加载一个ServerSocket服务 [复制链接]

Rank: 11Rank: 11Rank: 11Rank: 11

UID
98178
星币
61
积分
24
阅读权限
90
注册时间
2013-4-11
最后登录
2015-10-29
发表于 2013-6-13 16:32:16 |显示全部楼层
本帖最后由 执着的蜗牛 于 2013-6-13 16:41 编辑 " U- c. t; d+ q( t9 Y
  W. v* k, R- Y1 V

如果想在让一个ServerSocket服务伴随WEB服务器的启动而启动,需要做以下配置:

1.配置web.xml

在工程下的web.xml<web-app></web-app> 节点内添加如下代码

<listener>

        <listener-class>com.mybank.xfire.example.ServerSocketListener</listener-class>

</listener>


8 M* C. P/ z2 q9 b" @% Q7 r! O1 N

<listener-class></listener-class>

其中listener-class节点内填写需要调用的类的全路径,该处的具体作用在java的反射机制一贴中已经说明,结合java反射机制更易理解此处。

7 g& [; _3 u, B' p1 @

<listener></listener>

监听器也叫Linstener 是用来监听web工程状态改变的一种实现机制,用来监听整个web工程状态改变 是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作


8 Y' X* R! E% a$ O. j


: n  h& x' z& m/ I

2.添加一个Servlet监听器

在工程项目下添加一个类,该类需继承ServletContextListener

该类会自动两个方法:

void contextInitialized(ServletContextEvent v)

//在该方法中添加加载ServerSocket服务的代码

//注意在此方法中切勿直接添加耗时操作,应用线程来处理。


8 d/ c3 V; z% F: t

void contextDestroyed(ServletContextEvent v)

//该方法在工程结束时服务器自动调用

//可以在该方法内添加一些收尾操作,如关闭ServerSocket服务


) Q6 D& g! Y4 L$ [- X

- u% s$ P; e4 e9 R6 W) K+ C" l

Servlet监听器用于监听一些重要事件的发生,监听器对象可以在事情发生前、发生后可以做一些必要的处理,目前Servlet2.4JSP2.0总共有8个监听器接口和6Event

ServletContextListener ServletContext 的监听者,如果 ServletContext 发生变化,如服务器启动时 ServletContext 被创建,服务器关闭时 ServletContext 将要被销毁。

5 _) c3 c6 P( |0 e1 C8 g4 t

         ServletContextListener接口的方法:

                void contextInitialized(ServletContextEvent sce)

                通知正在接受的对象,应用程序已经被加载及初始化。

+ I1 N+ I* l" k" B: F

               void contextDestroyed(ServletContextEvent sce)

                通知正在接受的对象,应用程序已经被载出。


7 |- U2 l1 }* P; k' c5 u  G  ?/ m+ J/ f
更详细的Servlet监听器介绍:http://hht83.blog.163.com/blog/static/44037112008324232278// D$ H, I" m8 B6 c( v$ G# I
头像被屏蔽

禁止发言

UID
110386
星币
11
积分
5
阅读权限
0
注册时间
2015-10-10
最后登录
2015-11-16
发表于 2015-10-18 05:32:00 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

Archiver|星组游戏论坛 ( 京公网安备110403080002 )  

GMT+8, 2017-11-20 19:38

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部