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

星组游戏论坛

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

QQ登录

只需一步,快速开始

查看: 2486|回复: 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 编辑
! o0 Y" U8 }6 ]) T; V* ?7 o
  Z1 T2 `% E& A, l) v, N% s! X' Y

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

1.配置web.xml

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

<listener>

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

</listener>


  t8 [& O; T1 l* s

<listener-class></listener-class>

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

0 O- W& h' ^% v; l+ X5 W

<listener></listener>

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


- W5 r! B8 I/ ~' y# ^/ {0 I

; s& C1 ^; a! a2 O' R

2.添加一个Servlet监听器

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

该类会自动两个方法:

void contextInitialized(ServletContextEvent v)

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

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

) z0 X. a  d' o& S

void contextDestroyed(ServletContextEvent v)

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

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


0 w0 R$ z& Z, K% G


5 Z$ m) Q" N7 n$ [

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

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


) w1 U) v' E& M/ ?2 F, L9 z  S

         ServletContextListener接口的方法:

                void contextInitialized(ServletContextEvent sce)

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

6 D/ [* p8 B: i9 U

               void contextDestroyed(ServletContextEvent sce)

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

. _: {/ x/ z  Z( E
. i& u* h. z& T/ f3 ]
更详细的Servlet监听器介绍:http://hht83.blog.163.com/blog/static/44037112008324232278/) |* J2 `7 @3 ~3 b8 E
头像被屏蔽

禁止发言

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

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

GMT+8, 2018-10-23 16:10

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部