图2-2 JSP和Servlet协同工作原理
在单纯使用JSP进行开发的时候,由于是一个文件,当访问数据库或者取得表单数据的时候,对应的变量在整个页面范围内都适用,不用考虑变量的设置和获取问题,但是一旦引入了Servlet,就需要考虑这个问题[12]。数据从JSP到Servlet比较简单,通过表单提交的方式就可以。
但是在Servlet生成的需要在JSP中显示的数据要传递到JSP中,需要在session中设置对应的变量,然后从JSP中取得。但是这样有一个潜在的危险,如果在不同页面设置变量的时候不小心使用了同样的名字可能会造成冲突[13]。
还有一种方法就是在不同页面设置不同的页面存放区域,这样就能够在一定程度上减少变量冲突的可能性。
(4)MySQL数据库管理系统
MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。JAVA程序可通过JDBC方式与MySQL进行连接,MySQL官方提供了JDBC驱动程序[14]。将JDBC驱动(。jar文件)放到WEB-INF\lib下,ClassLoader找到字节码文件,然后加载到JVM的方法区中,变成一个对象。Tomcat都有自己的类加载器,会去WEB-INF下面lib中找字节码文件。因为jar包中都是字节码文件。编写JDBC代码,需要注意异常的处理[15]。
针对MySQL常用的管理工具有MySQL Workbench和Navicat,利用这些数据库管理工具可以完成数据的设计与实现。
(5)Bootstrap
Bootstrap是一组用于网站和网络应用程序开发的开源前端(所谓“前端”,指的是展现给最终用户的界面。与之对应的“后端”是在服务器上面运行的代码)框架,包括HTML、CSS及JavaScript的框架,提供字体排印、窗体、按钮、导航及其他各种组件及Javascript扩展,旨在使动态网页和Web应用的开发更加容易[16]。Bootstrap创造性地将栅格系统应用于网页中,满足了网站的响应式设计,以便于适配不同的屏幕[17]。利用Bootstrap可以实现清爽美观的界面设计,提供良好的用户体验。
(6)AJAX
AJAX即“Asynchronous JavaScript and XML”(异步的JavaScript与XML技术),指的是一套综合了多项技术的浏览器端网页开发技术。
传统的Web应用允许用户端填写表单(form),当提交表单时就向Web服务器发送一个请求。服务器接收并处理传来的表单,然后送回一个新的网页,但这个做法浪费了许多带宽,因为在前后两个页面中的大部分HTML码往往是相同的。由于每次应用的沟通都需要向服务器发送请求,应用的回应时间依赖于服务器的回应时间。这导致了用户界面的回应比本机应用慢得多。
与此不同,AJAX应用可以仅向服务器发送并取回必须的数据,并在客户端采用JavaScript处理来自服务器的回应。因为在服务器和浏览器之间交换的数据大量减少(大约只有原来的5%),服务器回应更快了。同时,很多的处理工作可以在发出请求的客户端机器上完成,因此Web服务器的负荷也减少了[18]。
类似于DHTML或LAMP,AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术。虽然其名称包含XML,但实际上数据格式可以由JSON代替,进一步减少数据量,形成所谓的AJAJ。而客户端与服务器也并不需要异步。一些基于AJAX的“派生/合成”式(derivative/composite)的技术也正在出现,如AFLAX。
(7)技术可行性分析结论
通过专业技术分析,发现具备开发该系统的各种技术。因此,本系统具有开发可行性。从系统特点的角度来说,要做一个在线选课系统并不复杂,但要作为一个完整的教务系统应用还需要进行扩充。