学士学位论文基于java的精品课程网站设计Word文档格式.docx
《学士学位论文基于java的精品课程网站设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《学士学位论文基于java的精品课程网站设计Word文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
关键词:
精品课程;
网站;
JSP;
JavaBean;
Servlet;
Access
0前言
人类社会的发展与知识的传递有着一种必然的联系,教育是人类传递知识的最直接最有效的方式。
在21世纪这个信息高度发达,并且高速流通的时代,计算机的普及以及计算机网络技术的应用,让大量普通人能够有机会接触到比以往更多的知识。
作为一个以传播知识为主要职能的机构——学校建立一个自己的精品课程网站是十分必要的事情,这不仅是能使更多的人享用宝贵的教育资料源,同时也对于提升学校自身的知名度,提高学生自学能力,有相当大的帮助。
在世界范围内来看,有关精品课程网站研究一直都在进行并且不断取得进步,特别是西方发达国家,他们在精品课程的理论研究与实际运用方法积累了大量的经验,虽然我们中国国内在精品课程网站这一方面的研究起步较晚,但我们同样也取得了大量丰硕的成果。
各个高校相继创建了各自的精品课程网站,清华大学、人民大学、北京大学等一大批知名学府利用自身的资源优势,引领中国国内精品课程网站的发展方面。
政府的大力支持,各高等学府的积极配合,使得我们国内精品课程网站的研究取得了不俗的成就。
1系统所用软件简介
1.1MyEclipse简介
1.1.1MyEclipse简介
MyEclispe企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是一个十分优秀的用于开发Java,J2EE的Eclispe插件集合。
在MyEclispe6.0以前版本需要先安装Eclipse,以后的版本安装时则不需安装。
其功能非常强大,支持也十分广泛,利用它我们可以在数据库和JavaEE的开发,发布以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的Java集成开发环境,包括了完备的编码调试测试和发布功能,完整的支持HTML,Struts,JSP,CSS,JavaScript,JDBC,Servlet,AJAX等多项功能。
1.1.2MyEclipse分类
在结构上,MyEclipse的特征可以被分为7类:
(1)JavaEE模型
(2)WEB开发工具
(3)EJB开发工具
(4)应用程序服务器的连接器
(5)JavaEE项目部署服务
(6)数据库服务
(7)MyEclipse整合帮助
对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。
MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。
1.2MySQL简介
MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQLAB公司。
目前属于Oracle公司。
MySQL被广泛地应用在Internet上的中小型网站中。
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
1.3Tomcat简介
1.3.1Tomcat基本简介
Tomcat服务器是一个免费的开放源代码的Web应用服务器,是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。
由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现。
因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。
目前最新版本是7.0。
Tomcat是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
其运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能,更是受到广大程序员的喜欢。
1.3.2Tomcat常用目录结构
/bin:
存放windows或Linux平台上启动或关闭Tomcat的脚本文件。
/conf:
存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和web.xml。
/webapps:
Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录。
/src:
存放Tomcat的源代码。
/work:
存放JSP编译后产生的class文件。
/server/lib:
存放Tomcat服务器所需的各种JAR文件。
1.3.3Tomcat与MyEclipse的连接问题
MyEclipse自带一个Tomcat插件,但性能不好,一般自己配置Tomcat。
配置方法为:
在MyEclipse中选择Window,然后点击preference,在列表中选择MyEclipse,继续选择Servers,点击Tomcat,按照你的Tomcat版本选择目录,添加路径后,点击Tomcatserver中的Enable。
如图1-1所示。
图1-1Tomcat连接图
1.4JDK简介
1.4.1JDK简介
JDK(JavaDevelopmentKit)是SunMicrosystems针对Java开发员的产品。
自从Java推出以来,JDK已经成为使用最广泛的JavaSDK。
JDK是整个Java的核心,包括了Java运行环境、Java工具和Java基础类库。
JDK是学好Java的第一步。
从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。
如果没有JDK,就无法编译Java程序[1]。
1.4.2JDK基本组件
用到的JDK基本组件:
Javac-编译器,将源程序转成字节码;
jar–打包工具,将相关的类文件打包成一个文件;
java–运行编译后的java程序(.class后缀的);
Javap:
Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
2系统所用语言简介
2.1Java基础简介
2.1.1Java简介
Java是由SunMicrosystems公司于1995年5月推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。
Java语言被特意设计用于互联网的分布式环境。
Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。
使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。
Java平台就是基于Java语言的平台[2]。
2.1.2Java特性
Sun公司对Java编程语言的解释是:
Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言[3]。
Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。
另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。
特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制。
Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。
总之,Java语言是一个纯的面向对象程序设计语言[4]。
Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。
因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。
Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。
对指针的丢弃是Java的明智选择。
Java的安全检查机制使得Java更具健壮性。
Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。
除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。
Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。
这种途径适合于异构的网络环境和软件的分发。
可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。
Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSIC实现的。
即Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。
在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
与那些解释型的高级脚本语言相比,Java的确是高性能的。
事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。
在Java语言中支持多线程,多线程功能使得在一个程序里可同时执行多个小任务。
线程,有时也称小进程,是一个大进程里分出来的小的独立的进程。
Java的动态特性是其面向对象设计方法的发展。
它允许程序动态地装入运行过程中所需要的类,这是C++语言进行面向对象程序设计所无法实现的。
Java编译器不是将对实例变量和成员函数的引用编译为数值引用,而是将符号引用信息在字节码中保存下传递给解释器,再由解释器在完成动态连接类后,将符号引用信息转换为数值偏移量[5]。
2.2JSP简介
2.2.1JSP简介
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易[6]。
2.2.2JSP技术简述
JSP和客户端的交互是通过HTTP协议实现的,这个过程主要分为以下4个步骤。
客户端和服务器建立连接;
客户端发送请求;
服务器发出响应;
关闭连接;
所有的JSP程序在首次载入时都被翻译成Servlet文件,然后在运行,这个工作主要有JSP引擎来完成。
当第一次运行一个JSP页面时,JSP引擎会完成以下操作:
(1)将JSP文件翻译成Servlet文件(以.Java为后缀),它是一个完整的Java应用程序。
(2)JSP引擎调用Java编译器编译Servlet文件得到可执行的代码文件(以.class为后缀)。
(3)JSP引擎调用Java虚拟机解释执行class文件,并将运行结果返回给客户端浏览器。
(4)服务器将运行结果以HTML形式作为响应返回给客户端浏览器。
2.3Servlet简介
Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面。
它担当Web浏览器或其他Http客户程序发出请求,与HTTP服务器上的数据库或应用程序之间的中间层[7]。
Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
2.4JavaScript简介
JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。
同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作[8]。
它最初由网景公司(Netscape)的BrendanEich设计,是一种动态、弱类型、基于原型的语言,内置支持类。
JavaScript是Sun公司的注册商标。
Ecma国际以JavaScript为基础制定了ECMAScript标准。
JavaScript也可以用于其他场合,如服务器端编程。
完整的JavaScript实现包含三个部分:
ECMAScript,文档对象模型,字节顺序记号。
3系统需求分析
3.1系统的性能要求分析
(1)磁盘容量要求:
本系统属于B/S模式构架,因此存储容量较小,数据库系统也不是很大,系统文件估计占30M的磁盘空间,数据库文件占用空间也不是很大。
不过该精品课程网站中的资源管理模块将会占用很大的空间。
一些管理员的课件资源在文件中将会占用很大的空间。
而本机器有320G的空间,足够放入一些视频,如果空间不够,这个就要管理员及时的清空系统中的过期文件[9]。
(2)适应性要求:
要求界面友好,菜单清楚,学生和老师都能很快熟悉网站。
对于部分文章、课件的发布要求达到所见即所得的效果。
3.2系统功能需求分析
本系统需要采用B/S模式设计开发,可以作为一般高等院校的精品发布系统。
教师可需要拥有发表、查看、删除、修改课程权限,游客需要可以查看课程,管理员则需要可以查看注册用户信息等[10]。
4系统设计
4.1运行环境设计
操作系统:
MicrosoftWindowsXP
开发工具:
MyEclipse6.0
运行环境:
Tomcat6.0
数据库:
MySQL
4.2功能模块设计
系统功能模块图如下图4-1所示:
图4-1功能模块图
用户进入首页后,如未登录,可以进行搜索课程、查看课程、查看作者等操作。
如选择登录,则可以进入个人中心页面,在该页面可以进行修改个人信息、发表课程、修改课程、删除课程等操作。
如果是以管理员账号(账号:
admin,密码:
admin)登录,则在个人中心多出查看注册用户选项。
4.3数据库设计
数据库概念结构(E-R图)如图4-2所下:
图4-2E-R图
根据需求分析,一共设计四张表:
(1)用户表(用户ID、用户姓名、用户密码、用户性别、用户职位、用户所属学院、用户籍贯、用户头像)。
(2)课程内容表(课程ID、课程的主要负责人、课程名、课程类型、课程发布日期、教师队伍简介、队伍职位结构、队伍学历结构、队伍年龄结构、负责人近五年来讲授的主要课程、负责人在国内外发行刊物发表的论文、负责人承担的实践性教学、负责人获得的学术研究奖励、课程简介、教学大纲、理论教学内容、实践教学内容、专家评价、督导组评价、学生评价、教学特色介绍、教学研究、教学获奖、参考文献、网络资源)。
(3)学生作业表(ID、课程ID、学生作业)。
(4)历年考题表(ID、课程ID、历年考题)。
5系统实现
5.1首页模块
用户在地址栏中输入http:
//localhost:
8080/IBMproject/home.jsp,即可进入系统首页,如下图5-1所示:
图5-1首页展示图
首页主要有以下几点功能:
(1)点击左侧按钮可跳到各个页面,比如检索页面、登录页面、注册页面。
(2)最新作品部分可以展示最新发布的课程,点击可以进入该课程。
(3)右侧精品课程部分则可以查看优秀的课程,点击可以进入。
(4)著名老师部分可以查看老师信息。
(5)大学简介部分有关于河南大学的介绍,便于游客了解河南大学。
5.1.1注册页面
用户点击首页的注册,即可进入注册模块。
页面展示如5-2所下。
图5-2注册页面图
注册页面主要有以下几点功能:
(1)支持用户名汉字输入。
(2)支持密码确认,防止输出密码。
(3)支持籍贯选择,由动态选择框完成。
(4)支持头像图片上传。
(5)支持验证码确认,点击变化另一张图片。
用户提交表单后由RegisterServlet控制器跳转到ResponeTime控制器,该控制器主要实现自动跳转功能,三秒之后可以自动跳转到个人中心页面(index.jsp)。
如未跳转可点击进入。
部分代码如下:
response.setCharacterEncoding("
utf-8"
);
response.setContentType("
text/html;
chartset=utf-8"
response.setHeader("
refresh"
"
3;
url='
index3.jsp'
"
response.getWriter().write("
<
bodybackground='
images/register.jpg'
>
bodybackground=>
<
h1>
恭喜您注册成功,三秒后自动跳转。
/h1>
/br>
如未跳转请点击<
ahref='
userIndex3.jsp'
这里<
/a>
5.1.2登录页面
用户在首页点击登录,即可进入登录页面,页面如下图5-3所示:
图5-3登录页面图
输入用户名跟密码后,登录到个人中心(index.jsp)。
request.setCharacterEncoding("
Stringusername=EncodingUtil.getNewString(request.getParameter("
username"
));
Stringpassword=request.getParameter("
password"
try{
Class.forName("
com.mysql.jdbc.Driver"
Connectionconnection=DriverManager.getConnection("
jdbc:
mysql:
///test"
root"
Statementstmt=connection.createStatement();
ResultSetrst=stmt.executeQuery("
select*fromuserswhereusername='
+
username+"
'
andpassword='
+password+"
Useruser=newUser();
if(rst.next()){
user.setUserid(rst.getInt("
userid"
user.setUsername(rst.getString("
user.setPassword(rst.getString("
user.setSex(rst.getString("
sex"
user.setPostition(rst.getString("
postition"
user.setCollege(rst.getString("
college"
user.setPlace(rst.getString("
place"
user.setPic(rst.getString("
pic"
request.getSession().setAttribute("
user"
user);
request.getRequestDispatcher("
../right/index.html"
).forward(request,response);
response.sendRedirect("
../index3.jsp"
}else{
request.setAttribute("
error"
用户名或密码错误"
request.getRequestDispatcher("
../../login.jsp"
}
}catch(Exceptione){
//TODO:
handleexception
}
5.2个人中心模块
用户由登录或者注册都可进入该页面,页面展示如下图5-4所示:
图5-4个人中心页面图
点击各个菜单即可进入各个功能模块。
5.2.1个人信息页面
点击个人信息,进入个人信息页面。
页面展示如下图5-5所示:
图5-5个人信息页面图
该页面可以查看注册时候的信息,如想修改可以点击修改按钮,进入修改个人信息页面(userModify.jsp)。
页面展示如下图5-6所示:
图5-6个人信息修改页面
本页面自动填写旧密码,用户输入新密码即可。
该页面部分代码如下:
table>
formaction="
%=request.getContextPath()%>
/servlet/ModifyServlet"
method="
post"
enctype="
multipart/form-data"
inputtype="
hidden"
name="
value="
${user.userid}"
tr>
td>
h3>
fontcolor="
#0000EE"
用户姓名:
/font>
/h3>
/td>
font>
${user.username}<
/tr>
value="
${user.password}"
输入新密码<
newpassword"
td