该在线答疑系统采用了mvc模式进行开发,model层主要用于数据模型的建立以及与后台数据库的交互连接,view(视图层)主要有jsp构成,负责页面的动态显示,control层主要交由strtus框架来实现,用来处理业务逻辑和页面之间的跳转。并将Strtus中的action类交由spring来管理,可以很大程度上简化开发。

view层设计

在本系统中视图层主要采用jsp技术。Jsp页面在运行时,会先转成servlet在经过编译生成.java文件。所以jsp也就具有java语言的特性。因此,相较于静态的HTML语言,JSP具有运行效率高,跨平台性等优点。但是由于jsp页面在第一次打开时会先存在编译的过程,所以在第一次打开时可能比较慢,这也是由其自身特性决定的。
为了使本系统具有好的体验效果还采用了级联样式表(css)等技术对前端页面进行美化。

model层设计

模型表示数据和业务规则。在本系统中模型层主要采用jdbc技术来实现与数据库中数据的交互。Javabean对应本系统中所涉及到的对象,它地属性与数据库中表的字段相对应。在DBUTil类中将数据库中的数据封装进相应的对象中,在根据前端显示页面决定是否将封装好的对象放置到集合中。
在本项目中还用到了数据库连接池技术,当在tomcat启动时便创建好数据库连接的实例,这样便可以带来资源重用、更快的系统响应速度、避免数据库连接泄露等方面的好处。采用这种技术需要注意的是:如果要退出系统必须要先销毁两者之间的连接。

control层设计

本系统中控制层主要Struts框架实现,对于由客户端发出的请求全部交由Struts来管理,每一个请求对应一个action类。本系统中的所有业务逻辑、业务处理都在Struts中的action类中进行处理。配置Struts环境如下:
①在本web项目工程中添加所需的jar包;
②在web项目中的web.xml中进行配置。
③编写相应的action类,其中涉及到业务逻辑的处理等。
④配置action类,在strtus的配置文件中配置已经编写好的action类。

在该配置文件中可以有多个action,每一个action类中可以有多个方法,其中的result中的name对应着该类中的返回值。为一个字符串类型对应着相应的跳转页面。 !
在本系统中有着严格的权限控制,其主要功能是由***实现的,本系统通过自定义的***来实现权限控制。本系统的字符编码等是由filter***来实现的。
Filter***原理:所有来自浏览器的请求和服务器的响应都会先经过filter类的拦截,因此可以在该类中对request、response对象的属性进行相应的属性设置。
的运行原理:对于每一个来自页面的请求,都会被Struts的核心控制器截获进而转向相应的action类进行处理。在执行action类中的方法之前,strtus会创建一个代理类对象并将相应的对象添加到值栈中,在实例化该代理类时将相应的值赋给对象。这样在相应的展示页面就可以使用strtus提供的标签获得相应对象的属性值。
Struts与spring的整合:将上述编写好的action类交由spring来管理,具体的做法是在spring的配置文件中使用bean标签的id和class两个属性来指定其相对应的action和其所在的java类。这样就避免了手动new对象的过程。极大地提高开发的效率。

本系统的开发过程中用到了许多当前软件开发过程中的主流开发技术。
前台页面主要采用了html、jsp技术,页面整体采用div+css布局。采用该布局的好处在于:

①减少页面的代码量,能够提高页面的访问速度。
②样式表与代码分离,使页面看起来比较整洁。
③设计出的页面显示效果比较好
该项目中采用了现在开发过程中常用的strtus2框架技术,采用该技术的优点在于:
①页面之间参数的传递比较方便。
②提供了许多比较常用的***。
③易于测试。

本项目中还使用了spring技术,将编写好的action类统一交给spring来管理。其强大的依赖注入功能,避免了在编写代码时手动new对象的过程,极大的加快了开发的速度。
除上述技术之外还用到了数据库连接池技术、ajax技术、以及利用***来实现权限控制等当前主流的一些技术。