当启动Web项目会先读取项目中的Web.xml配置文件。 Web.xml的执行步骤: 执行listener和context-param 接着容器创建一个ServeltContext,项目所有部分都将会共享这个上下文 容器以context-param的name作为键,value作为值,将其转化为键值对,存入ServletContext 容器创建listener中的类实例,根据配置的class类路径listener-class来创建监听,在监听中会有contextInitialized(ServletContextEvent args)初始化方法,启动Web应用时,系统调用Listener的该方法,在这个方法中获得context-param的值就是application.getInitParameter(“context-param的键”);得到这个context-param的值之后,你就可以做一些操作了。 例子:你可能想在项目启动之前就打开数据库,那么这里就可以在context-param中设置数据库的连接方式(驱动、url、user、password),在监听类中初始化数据库的连接。这个监听是自己写的一个类,除了初始化方法,它还有销毁方法,用于关闭应用前释放资源。比如:说数据库连接的关闭,此时,调用contextDestroyed(ServletContextEvent args),关闭Web应用时,系统调用Listener的该方法。 因此结合第一步,我们就会将游戏逻辑启动起来 接着,容器会读取filter,根据指定的类路径来实例化过滤器。 以上都是在WEB项目还没有完全启动起来的时候就已经完成了的工作。如果系统中有Servlet,则Servlet是在第一次发起请求的时候被实例化的,而且一般不会被容器销毁,它可以服务于多个用户的请求。所以,Servlet的初始化都要比上面提到的那几个要迟。 由于游戏项目中需要一些后台功能提供给运营后台来使用,因此游戏项目中也需要定义几个servlet servlet代码如下: 通过上面的两部将可以简单的搭建起一个最基本的游戏项目。大家可以行动起来搭建看看。 下一节的内容预告如下
Java服务器开发之搭建游戏基础框架
最开始的项目是一个Maven构建的Java Web项目,使用Tomcat作为Web容器来提供服务。
上图是游戏的一个最基础架构的脑图,下面是对应搭建好项目的目录组织下面讲解这基础的项目中最最最重要的一个文件:web.xml文件
<welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <listener> <listener-class>com.server.core.boot.GameStartListener</listener-class> </listener> <servlet> <servlet-name>CheckTokenServlet</servlet-name> <servlet-class>com.server.core.login.CheckTokenServlet</servlet-class> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>CheckTokenServlet</servlet-name> <url-pattern>/login/CheckToken</url-pattern> </servlet-mapping> <servlet> <servlet-name>BackgroundManager</servlet-name> <servlet-class>com.server.game.backstage.BackgroundManager</servlet-class> </servlet> <servlet-mapping> <servlet-name>BackgroundManager</servlet-name> <url-pattern>/background/*</url-pattern> </servlet-mapping>
public class GameStartListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent arg0) { GameServer.start(); } @Override public void contextDestroyed(ServletContextEvent arg0) { GameServer.stop(); } }
public class BackgroundManager extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { BackgroundService.getInstance().handle(req, resp); } }
总结
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算