自己搭建一个联网题库系统(java SERVER)

ssh三层构架,控制层依赖于业务逻辑层,但绝不与任何具体的业务逻辑组件耦合,只与接口耦合;同样,业务逻辑层依赖于DAO层,也不会与任何具体的DAO组件耦合,而是面向接口编程。

导语

在线题库系统是很多企业及学校必备的一个软件,它兼具考核,评估,诊断等多种功能,方便了企业和高校对于学生或员工的考核管理,因此,在线题库系统在如今已经占有一个举足轻重的地位,所以,做好题库系统不仅决定了工作的本身,更是公司企业能否成功的最重要的一环。我们必须有能力,有必要完成好这项任务,下面,我们开始一步一步搭建在线题库系统

架构选择

架构的比较

两种选择

SSH 通常指的是 做控制器(), 管理各层的组件, 负责持久化层。

SSM 则指的是 做控制器(), 管理各层的组件, 负责持久化层。

的实现原理

针对于控制器的选择

1.和-MVC都是负责取转发的,但是两者针对的请求上面区别很大,是针对一个类来进行请求的,即一个类对应于一个请求,所以对应得失类拦截器,请求的数据类共享。而-MVC则是针对于方法级别的请求的,也就是一个方法对应于一个请求,属于方法拦截,请求的数据方法不共享。

2.-MVC的配置文件相对来说较容易上手,可以提高软件开发的效率。

3.-MVC是基于级别的而的级别是级别的。

拦截器

1. 拦截器是在访问某个或的某个方法,字段之前或之后实施拦截,并且拦截器是可插拔的,拦截器是AOP的一种实现,而是责任链的一种实现.

2. 拦截器栈( Stack)。拦截器栈就是将拦截器按一定的顺序联结成一条链。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。

二、 拦截器接口实现:

规定用户自定义拦截器必须实现com….接口。该接口声明了3个方法,其中,init和方法会在程序开始和结束时各执行一遍,不管使用了该拦截器与否,只要在.xml中声明了该拦截器就会被执行。方法就是拦截的主体了,每次拦截器生效时都会执行其中的逻辑。

说到这里,可能有的人会不懂,拦截器和过滤器有什么区别?

(1)过滤器:

依赖于容器。在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次。使用过滤器的目的是用来做一些过滤操作,获取我们想要获取的数据基于java的停车场管理系统,比如:在过滤器中修改字符编码;在过滤器中修改的一些参数,包括:过滤低俗文字、危险字符等

(2)拦截器:

依赖于web框架,在中就是依赖于依赖框架。在实现上基于Java的反射机制基于java的停车场管理系统,属于面向切面编程(AOP)的一种运用。由于拦截器是基于web框架的调用,因此可以使用的依赖注入(DI)进行一些业务操作,同时一个拦截器实例在一个生命周期之内可以多次调用。但是缺点是只能对请求进行拦截,对其他的一些比如直接访问静态资源的请求则没办法进行拦截处理

ssh框架的好处

1. 典型的三层构架体现MVC实现,可以让开发人员减轻重新建立解决复杂问题方案的负担和精力。便于敏捷开发出新的需求,降低开发时间成本。

2. 良好的可扩展性,ssh主流技术有强大的用户社区支持它,所以该框架扩展性非常强,针对特殊应用时具有良好的可插拔性,避免大部分因技术问题不能实现的功能。

3. 良好的可维护性,业务系统经常会有新需求,三层构架因为逻辑层和展现层的合理分离,可使需求修改的风险降低到最低。随着新技术的流行或系统的老化,系统可能需要重构,ssh构架重构成功率要比其他构架高很多。

4. 优秀的解耦性,提高了内聚,降低了耦合,很少有软件产品的需求从一开始就完全是固定的。客户对软件需求,是随着软件开发过程的深入,不断明晰起来的。因此,常常遇到软件开发到一定程度时,由于客户对软件需求发生了变化,使得软件的实现不得不随之改变。ssh三层构架,控制层依赖于业务逻辑层,但绝不与任何具体的业务逻辑组件耦合,只与接口耦合;同样,业务逻辑层依赖于DAO层,也不会与任何具体的DAO组件耦合,而是面向接口编程。采用这种方式的软件实现,即使软件的部分发生改变,其他部分也不会改变。

所以我们选择ssh框架

搭建ssh框架

流程图

请求流程图

2、的流程图:

解析:上图是在结构图的基础上加入了流程图,在web.xml配置文件中加入了的监听器,在.xml配置文件中添加“”是告知运行时使用来创建对象,在其中主要做的就是注入实例,将所有需要类的实例都由管理。

2、的核心架构和执行流程图:

搭建一个完整的SSH框架项目

(1) 基于配置文件的整合:

我们需要在web.xml中定义一个的:

第三步:在web.xml中配置一个监听器,因为如果我们要加载.xml,然而是多实例的,如果每请求一次就要加载一次xml的话,这会使得你的整个项目效率十分低 下,因此,我的想法是把.xml文件放在中,只加载一次,因此我们就需要配置一个的监听器。

第四步:先开始与的整合:先把,dao,,这些层次建好

自己管理的方式:

交给管理:

交给管理的话,.xml文件里的class不应该写全类名,只需要写里的id名即可,并且 要设置scope=””,因为是多例的!!

传统方式要通过类来获取,而这里只需要配置一下常量就可以在里不需要通过注解或者配置 文件就可以对直接进行调用,只需要设置一下方法即可!!

第五步:与的整合:

有两种方式:

二、要配置事务管理哦!!

之所以直接注入就可以调用模板,你打开类,可以发现,在里面有个方法里,创建了

同时要再业务层(层,用以控制事务)加上:

(2)无配置文件形式

在中就要配置好的一些属性:

1.c3p0连接池的信息:

2.常用属性:

3.映射关系:

关于在dao层查询出来的,如果要传到web层的话,可能在层就已经将事务关闭,因此在web层不能及时的接收到要获取的对象,因此我们要在web层开启事务!!

(2) 基于注解的整合:

第1-3步:前三步和上面的xml形式整合是一样的,就不细说了!

第四步:创建一个处理请求的

第五步:注册处理请求实体:

第六步:之后就是事务管理器的注册和模板注入。

本文到此结束,希望对大家有所帮助。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至81118366@qq.com举报,一经查实,本站将立刻删除。发布者:简知小编,转载请注明出处:https://www.jianzixun.com/93484.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫

相关推荐

软文友链广告合作联系站长qq81118366