以后地位:欧博娱乐网 > 欧博娱乐宝库 > 信息科技类 > 软件开辟 > 剖析及时信息数据Web零碎的设计注释

老葡京娱乐官网

泉源:UC欧博娱乐网2016-01-02 21:28

择要:

摘 要 :针对及时信息数据Web零碎的使用需求,本文给出了零碎设计方案和完成办法。在零碎的Web效劳器端运用MVC设计形式,视图层运用JSP技能,控制层运用Servlet技能,模子层运用的

摘 要:针对及时信息数据Web零碎的使用需求,本文给出了零碎设计方案和完成办法。在零碎的Web效劳器端运用MVC设计形式,视图层运用JSP技能,控制层运用Servlet技能,模子层运用的JavaBean技能。本文研讨效果在在线机车运转信息剖析零碎中失掉了精良地使用。

要害词:MVC;设计形式;视图层;控制层;模子层
 

  及时信息数据Web零碎提供的次要功用如图1所示。

  

  及时信息次要是提供对事先在线信息停止及时盘问,并能主动表现近来收到的数据。

  信息盘问次要是对接纳到的曾经拔出到数据的及时信息的汗青信息停止盘问。

  零碎设置次要提供零碎用到种种字典的设置,参数的设置,无线传输终真个设置装备摆设等。

  上面引见Web零碎次要完成进程。

  1 MVC形式

  MVC的描绘最早见于Xerox在19世纪80年月末宣布的少量文章。运用MVC的要害在于将逻辑别离为3个差别的单位:模子(Model)、视图(View)和控制器(Controller)。在一个效劳器使用中,通常将使用分别为以下局部,即业务逻辑、表现和恳求处置。业务逻辑用于表现对应数据的处置,如客户、产物和订单信息;表现是指使用数据怎样表现给用户,如,地位、字体和巨细;恳求处置则是怎样将业务逻辑和表现局部绑定在一同。接纳MVC的说法,模子对应为业务逻辑和数据,视图对应为表现,控制器则对应为恳求处置。

  1.1 零碎中运用的MVC形式

  在零碎中运用的是Servlet和JSP构成的MVC形式。

  Servlet与JSP联合,这种使用很容易维护,并且当呈现新的需求时也很容易扩展。由于Servlet是一个惯例Java类,可以充沛运用Java言语的弱小功用来完成恳求处置,在此可以运用规范Java开辟和调试东西。然后,零碎应用JSP最善于的方面:经过包括由Servlet所搜集或天生的信息来提供呼应。

  Servlet和JSP的罕见联合方法是运用一个Servlet作为使用的控制器,并用多个JSP页面作为视图。基于这种办法,可以接纳一种模块化的方法开辟使用,Servlet相称于一个网关,它将恳求分配至特定的处置组件,而且基于乐成与否呼应选择得当的JSP页面。

  运用Servlet和JSP的MVC形式,脚色分派如图2所示。

  

  一切恳求都发送至相称于控制器的Servlet,以提示需求做什么任务。此提示可以作为一个恳求参数,也可以作为URI途径的一局部。JavaBean用于表现模子。Servlet可以自行完成所恳求的举措,也可以将每个举措委托至相应的各个处置类。取决于处置的后果,控制器Servlet会选择得当的JSP页面来为用户天生呼应。

  1.2 零碎中MVC的完成

  在零碎中运用了一个类名为WebManager的Servlet作为一个相称于网关的控制器,它担任将各个恳求URI分发至对应的处置类。

  WebManagerTrainManager中的doPost办法和doGet办法都指向了自界说的process办法:

  public void doPost(

  HttpServletRequest request,

  HttpServletResponse response)

  ThrowsServletException, IOException {

  process(request,response);

  }

  public void doGet(

  HttpServletRequest request,

  HttpServletResponse response)

  ThrowsServletException, IOException {

  process(request,response);

  }

  WebManager中的process办法的作用是专门分发所都恳求到各个处置类的。process办法起首剖析URI,并取出本次URI要跳转到的模块的URI途径:

  String requestURI

  = StringUtil.extractPath(request.getRequestURI());

  取到requestURI后,开端与零碎现存的各个处置类婚配:

  if(requestURI.equals("logout")){

  responseURI="/html/index.jsp";

  }else if(requestURI.equals("trainstatus")){

  responseURI = trainAction.process(da,request,response);

  }else if(requestURI.equals("pointdata")){

  responseURI = pointDataAction.process(da,request,response);

  } else if(requestURI.equals("login")){

  responseURI = login.process(request,response);

  }else if(requestURI.equals("qcjl")){

  responseURI = recordAction.process(request, response);

  }else if(requestURI.equals("trainlist")){

  responseURI = fileAction.process(da, request, response);

  }

  ……

  当各个处置类前往responseURI后,判别能否是.jsp,假如是,则重定向到responseURI所指定的JSP页面:

  if (responseURI.endsWith(".jsp")) {

  request.getRequestDispatcher(responseURI).forward(request, response);

  }

  别的,在WebManager的init()的函数中,参加了需求启动的收发数据的线程和判别终端下线的义务线程,从而使这两个线程随零碎的启动而主动启动。

  零碎中本人界说了WebManager作为MVC的控制器,而没有接纳开源的两头件,次要出于以下几方面的思索:(1)开源的两头件普通功用弱小,同时完成较多功用,而零碎关于这局部的要求不高,运用不到开源两头件提供的功用,形成“糜费”;(2)开源的两头件普通会运用少量其他顺序组件,零碎引入这些顺序组件会给零碎形成潜伏的抵触;(3)开源软件能够存在未知的题目,假如呈现题目倒霉于零碎调试。

  2 及时信息的完成

  及时信息使用次要表现在线机车列表,静态更新在线机车列表,依据在线机车检查机车的及时信息数据,并能静态地添加表现该机车新收到的及时信息数据。客户检查机车信息及时信息的时序图如图3所示。

  

  客户在阅读器上点击表现及时信息的链接,该链接作为一个HTTP恳求发送到效劳器上,效劳器依据链接URL中的根底URI局部确定Web使用,并将恳求发送给Servlet处置。

  恳求起首发送到Servlet控制器,控制器依据除了URI根底局部剩下的URI确定处置及时信息处置类,并将Servlet控制器中的request工具和response工具传给该处置类。

  处置类接到request工具和response工具后,挪用request的getParameter()办法取出恳求参数,在顺序中取出机车上的终端号,由于背景数据构造是依照终端号停止构造,机车号作为表现信息;顺序中再取出一些盘问条件的参数。然后,处置类挪用及时信息东西JavaBean的办法停止数据库盘问,及时信息东西JavaBean的办法前往一个处置后果,普通是一个List工具,外面寄存着描绘及时信息的工具。处置类接到盘问后果后,挪用request的setAttribute办法将盘问后果放入request工具中,并前往一个用于表现后果的JSP页面。

  Servlet控制器接四处理类前往的JSP页面,间接挪用request的getRequestDispatcher办法,将request工具和response工具转发到JSP页面上。

  JSP页面挪用request的getAttribute获取盘问后果,逐一遍历盘问后果,表现后果。

  以上是在零碎中一个从客户端拜访数据库的根本流程。零碎中其他模块,如信息盘问,也是按这个流程处置,只不外是盘问数据库中终真个汗青信息,表现后果的JSP与及时信息纷歧样。

  3 零碎设置的完成

  零碎设置中,许多模块也是从客户端获取参数和数据,然后依据参数和数据对数据库停止相应地操纵。与及时信息模块差别的是,零碎设置中的各个模块不但是对数据库停止盘问操纵,还会对数据库停止添加数据(insert)操纵、修正(update)操纵、删除(delete)操纵。因而,关于零碎设置中的各个模块页面恳求时,在恳求串中参加了一个操纵义务的字段。比方,假如对数据停止添加操纵,则操纵义务恳求串写为“……&task=add&……”。在处置类中,要提取出操纵范例,并依据相应的操纵做差别的处置:

  String task=request.getParameter("task");

  if("displaydata".equals(task)){

  //停止表现数据操纵,盘问数据并把盘问后果前往到JSP上

  ……

  }else if("modifydata".equals(task)){

  //停止修正数据操纵,并把修正后果前往到JSP上

  ……

  }else if("addpage".equals(task)){

  //表现添加数据页面

  ……

  }else if("adddata".equals(task)){

  //添加数据操纵,并把添加后果表现到JSP上

  ……

  }else if("deletedata".equals(task)){

  //删除数据操纵,并把删除后果表现到JSP上

  ……

  }else{

  //默许操纵办法,盘问数据并把盘问后果集表现到JSP上。

  ……

  }

  下面最初一个操纵与第一个操纵——displaydata差别,displaydata操纵是盘问数据库数据表中的某一条数据,用于修正该条数据运用;而最初一个操纵是盘问数据库数据表中全部的数据,表现给客户端,用于客户端选择修正或删除数据。这局部次要有如下几个功用模块。

  (1)无线终端配属

  次要是设置零碎中曾经装置和未装置的无线终真个终端号,保管在数据库中的终端配属表。

  (2)近程设置装备摆设配属

  次要是设置零碎中曾经装置和未装置的无线终真个近程设置装备摆设,保管在数据库中的近程设置装备摆设配属表。

  (3)近程设置装备摆设终端配属

  次要是依据零碎中的无线终端配属和近程设置装备摆设配属,树立起终端与所装置在近程设置装备摆设上的干系,保管在数据库中的近程设置装备摆设终端配属表。只要在这个表中的终端,才会真正以为是正在运用中的终端,并会在零碎的内存中天生终端工具并保管在数据收发线程中。

  (4)字典表维护

  次要是维护一些字典表,如收到的数据中近程设置装备摆设型号是数字代码,在零碎中就需求树立字典表翻译代码成为客户运用职员熟习的笔墨以及其他一些相干的数据字典。

  以上这些零碎设置的次要功用模块次要是对数据库停止操纵,对相应的数据表停止添加,修正和删除操纵。但是,关于近程设置装备摆设终端配属绝对庞大一些,触及到终端操纵,在树立配属干系时,需求同时发生内存中的终端工具并放入数据收发线程中;在删除配属干系时,需求从数据收发线程中删除该内存工具,并开释失。

  4 结 语

  本文细致阐明了零碎中的Web零碎用到技能和完成的次要办法。在零碎的Web效劳器端运用MVC设计形式,视图层运用JSP技能,控制层运用Servlet技能,模子层运用JavaBean技能。文中运用UML次序图细致引见了及时信息,信息盘问和零碎设置的完成进程。


中心期刊引荐


宣布范例: 欧博娱乐宣布 欧博娱乐投稿
标题: *
姓名: *
手机: * (填写数值)
Email:
QQ: * (填写数值)
文章:
要求: