《基于java的精品课程网站设计-毕业(设计)论文论文.doc》由会员分享,可在线阅读,更多相关《基于java的精品课程网站设计-毕业(设计)论文论文.doc(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 河南大学物理与电子学院本科毕业论文目 录摘 要:10 前言11 系统所用软件简介11.1 MyEclipse简介11.2 MySQL简介21.3 Tomcat简介21.4 JDK简介42 系统所用语言简介42.1 Java基础简介42.2 JSP简介62.3 Servlet简介72.4 JavaScript简介73 系统需求分析73.1系统的性能要求分析73.2系统功能需求分析74 系统设计84.1 运行环境设计84.2 功能模块设计84.3 数据库设计85 系统实现95.1 首页模块95.2 个人中心模块135.3 管理员模块206 软件测试206.1 软件测试简介206.2 功能测试21
2、7 结论21参考文献2219基于JSP的精品课程网站设计与实现王帅(河南大学物理与电子学院,河南 开封,475004)摘 要: 本论文主要工作为精品课网站的设计及实现。通过本网站,可以使用户能够在线的查阅有关课程的最新信息,了解知识。使教学更加方便,方便学生在家或寝室自己学习,提高学生自学能力,也节省学生、老师的时间。关键词: 精品课程;网站; JSP;JavaBean; Servlet; Access0 前言人类社会的发展与知识的传递有着一种必然的联系,教育是人类传递知识的最直接最有效的方式。在21世纪这个信息高度发达,并且高速流通的时代,计算机的普及以及计算机网络技术的应用,让大量普通人能
3、够有机会接触到比以往更多的知识。作为一个以传播知识为主要职能的机构学校建立一个自己的精品课程网站是十分必要的事情,这不仅是能使更多的人享用宝贵的教育资料源,同时也对于提升学校自身的知名度,提高学生自学能力,有相当大的帮助。在世界范围内来看,有关精品课程网站研究一直都在进行并且不断取得进步,特别是西方发达国家,他们在精品课程的理论研究与实际运用方法积累了大量的经验,虽然我们中国国内在精品课程网站这一方面的研究起步较晚,但我们同样也取得了大量丰硕的成果。各个高校相继创建了各自的精品课程网站,清华大学、人民大学、北京大学等一大批知名学府利用自身的资源优势,引领中国国内精品课程网站的发展方面。政府的大
4、力支持,各高等学府的积极配合,使得我们国内精品课程网站的研究取得了不俗的成就。1 系统所用软件简介1.1 MyEclipse简介1.1.1 MyEclipse简介MyEclispe企业级工作平台(MyEclipse Enterprise Workbench,简称MyEclipse)是一个十分优秀的用于开发Java,J2EE的Eclispe插件集合。在MyEclispe 6.0以前版本需要先安装Eclipse,以后的版本安装时则不需安装。其功能非常强大,支持也十分广泛,利用它我们可以在数据库和JavaEE的开发,发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的Java集成开发环
5、境,包括了完备的编码 调试 测试和发布功能,完整的支持HTML,Struts,JSP,CSS,JavaScript,JDBC,Servlet,AJAX等多项功能。1.1.2 MyEclipse分类在结构上,MyEclipse的特征可以被分为7类: (1)JavaEE模型 (2)WEB开发工具 (3)EJB开发工具 (4)应用程序服务器的连接器 (5)JavaEE项目部署服务 (6)数据库服务 (7)MyEclipse整合帮助对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对
6、任一模块进行单独的扩展和升级。1.2 MySQL简介MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前属于Oracle公司。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。1.3 Tomcat简介1.3.1 Tomcat基本简介Tomcat服务器是一个免费的开放源代码的Web 应用服务器,是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Ap
7、ache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。目前最新版本是7.0。Tomcat是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。其运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能,更是受到广大程序员的喜欢。1.3.2 Tomcat常用目录结构 /bin:存
8、放windows或Linux平台上启动或关闭Tomcat的脚本文件。 /conf:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和web.xml。 /webapps:Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录。 /src:存放Tomcat的源代码。 /work:存放JSP编译后产生的class文件。 /server/lib:存放Tomcat服务器所需的各种JAR文件。1.3.3 Tomcat与MyEclipse的连接问题MyEclipse自带一个Tomcat插件,但性能不好,一般自己配置Tomcat。配置方法为:在MyEclipse中选
9、择Window,然后点击preference,在列表中选择MyEclipse,继续选择Servers,点击Tomcat,按照你的Tomcat版本选择目录,添加路径后,点击Tomcat server中的Enable。如图1-1所示。 图1-1 Tomcat连接图1.4 JDK简介1.4.1 JDK简介JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境、Java工具和Java基础类库。JDK是学好Java的第一步。从SUN
10、的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。如果没有JDK,就无法编译Java程序1。1.4.2 JDK基本组件用到的JDK基本组件: Javac-编译器,将源程序转成字节码; jar 打包工具,将相关的类文件打包成一个文件; java 运行编译后的java程序(.class后缀的); Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。2 系统所用语言简介2.1 Java基础简介2.1.1 Java简介Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言(以下简
11、称Java语言)和Java平台的总称。Java语言被特意设计用于互联网的分布式环境。Java具有类似于C+语言的“形式和感觉”,但它要比C+语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。Java 平台就是基于 Java 语言的平台2。2.1.2 Java特性Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言3。 Java语言的语法与C语言和C+语言很接近,使得大多数程序
12、员很容易学习和使用Java。另一方面,Java丢弃了C+中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制。Java语言全面支持动态绑定,而C+语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言4。Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。因此,Java应用程序可凭借URL打开并访问网络上的对象,
13、其访问方式与访问本地文件系统几乎完全相同。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。Java程序(后缀为java的文件)在Java平台上被编译为体
14、系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。即Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。与那些解释型的高级脚本语言相比,Java的确是高性能的
15、。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C+。在Java语言中支持多线程,多线程功能使得在一个程序里可同时执行多个小任务。线程,有时也称小进程,是一个大进程里分出来的小的独立的进程。 Java的动态特性是其面向对象设计方法的发展。它允许程序动态地装入运行过程中所需要的类,这是C+语言进行面向对象程序设计所无法实现的。Java编译器不是将对实例变量和成员函数的引用编译为数值引用,而是将符号引用信息在字节码中保存下传递给解释器,再由解释器在完成动态连接类后,将符号引用信息转换为数值偏移量5。2.2 JSP简介2.2.1 JSP简介JSP(Jav
16、a Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易6。
17、2.2.2 JSP技术简述JSP和客户端的交互是通过HTTP协议实现的,这个过程主要分为以下4个步骤。 客户端和服务器建立连接; 客户端发送请求; 服务器发出响应; 关闭连接;所有的JSP程序在首次载入时都被翻译成Servlet文件,然后在运行,这个工作主要有JSP引擎来完成。当第一次运行一个JSP页面时,JSP引擎会完成以下操作: (1) 将JSP文件翻译成Servlet文件(以.Java为后缀),它是一个完整的Java应用程序。 (2)JSP引擎调用Java编译器编译Servlet文件得到可执行的代码文件(以.class为后缀)。 (3)JSP引擎调用Java虚拟机解释执行class文件,
18、并将运行结果返回给客户端浏览器。 (4)服务器将运行结果以HTML形式作为响应返回给客户端浏览器。2.3 Servlet简介Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面。 它担当Web浏览器或其他Http客户程序发出请求,与HTTP服务器上的数据库或应用程序之间的中间层7。Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。2.4 JavaScript简介JavaScript是一种基于对象和事件
19、驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作8。它最初由网景公司(Netscape)的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。JavaScript是Sun公司的注册商标。Ecma国际以JavaScript为基础制定了ECMAScript标准。JavaScript也可以用于其他场合,如服务器端编程。完整的JavaScript实现包含三个部分:ECMAScript,文档对象模型,字节顺序记号。3 系统需求分析3.1系统的性能要求分析 (1)磁盘容量要求:本系统属于
20、B/S模式构架,因此存储容量较小,数据库系统也不是很大,系统文件估计占30M的磁盘空间,数据库文件占用空间也不是很大。不过该精品课程网站中的资源管理模块将会占用很大的空间。一些管理员的课件资源在文件中将会占用很大的空间。而本机器有320G的空间,足够放入一些视频,如果空间不够,这个就要管理员及时的清空系统中的过期文件9。 (2)适应性要求:要求界面友好,菜单清楚,学生和老师都能很快熟悉网站。对于部分文章、课件的发布要求达到所见即所得的效果。3.2系统功能需求分析 本系统需要采用B/S模式设计开发,可以作为一般高等院校的精品发布系统。教师可需要拥有发表、查看、删除、修改课程权限,游客需要可以查看
21、课程,管理员则需要可以查看注册用户信息等10。4 系统设计4.1 运行环境设计 操作系统:Microsoft Windows XP 开发工具:MyEclipse6.0 运行环境:Tomcat6.0 数据库: MySQL 4.2 功能模块设计系统功能模块图如下图4-1所示: 图4-1 功能模块图用户进入首页后,如未登录,可以进行搜索课程、查看课程、查看作者等操作。如选择登录,则可以进入个人中心页面,在该页面可以进行修改个人信息、发表课程、修改课程、删除课程等操作。如果是以管理员账号(账号:admin,密码:admin)登录,则在个人中心多出查看注册用户选项。4.3 数据库设计数据库概念结构(E-
22、R图)如图4-2所下: 图4-2 E-R图根据需求分析,一共设计四张表: (1)用户表(用户ID、用户姓名、用户密码、用户性别、用户职位、用户所属学院、用户籍贯、用户头像)。 (2)课程内容表(课程ID、课程的主要负责人、课程名、课程类型、课程发布日期、教师队伍简介、队伍职位结构、队伍学历结构、队伍年龄结构、负责人近五年来讲授的主要课程、负责人在国内外发行刊物发表的论文、负责人承担的实践性教学、负责人获得的学术研究奖励、课程简介、教学大纲、理论教学内容、实践教学内容、专家评价、督导组评价、学生评价、教学特色介绍、教学研究、教学获奖、参考文献、网络资源)。 (3)学生作业表(ID、课程ID、学生
23、作业)。 (4)历年考题表(ID、课程ID、历年考题)。5 系统实现5.1 首页模块用户在地址栏中输入http:/localhost:8080/IBMproject/home.jsp,即可进入系统首页,如下图5-1所示: 图5-1 首页展示图首页主要有以下几点功能: (1)点击左侧按钮可跳到各个页面,比如检索页面、登录页面、注册页面。 (2)最新作品部分可以展示最新发布的课程,点击可以进入该课程。 (3)右侧精品课程部分则可以查看优秀的课程,点击可以进入。 (4)著名老师部分可以查看老师信息。 (5)大学简介部分有关于河南大学的介绍,便于游客了解河南大学。5.1.1 注册页面 用户点击首页的注
24、册,即可进入注册模块。页面展示如5-2所下。 图5-2 注册页面图注册页面主要有以下几点功能: (1)支持用户名汉字输入。 (2)支持密码确认,防止输出密码。 (3)支持籍贯选择,由动态选择框完成。 (4)支持头像图片上传。 (5)支持验证码确认,点击变化另一张图片。用户提交表单后由RegisterServlet控制器跳转到ResponeTime控制器,该控制器主要实现自动跳转功能,三秒之后可以自动跳转到个人中心页面(index.jsp)。如未跳转可点击进入。部分代码如下: response.setCharacterEncoding(utf-8);response.setContentType
25、(text/html;chartset=utf-8);response.setHeader(refresh,3;url=index3.jsp);response.getWriter().write( );response.getWriter().write( );response.getWriter().write(恭喜您注册成功,三秒后自动跳转。如未跳转请点击这里);5.1.2 登录页面用户在首页点击登录,即可进入登录页面,页面如下图5-3所示: 图5-3 登录页面图输入用户名跟密码后,登录到个人中心(index.jsp)。部分代码如下:request. setCharacterEncodi
26、ng(utf-8); String username=EncodingUtil.getNewString(request.getParameter(username); String password=request.getParameter(password);try Class.forName(com.mysql.jdbc.Driver);Connection connection=DriverManager.getConnection(jdbc:mysql:/test,root,root);Statement stmt=connection.createStatement();Resul
27、tSet rst=stmt.executeQuery(select*from users where username=+username+ and password=+password+);User user=new User();if(rst.next()user.setUserid(rst.getInt(userid);user.setUsername(rst.getString(username);user.setPassword(rst.getString(password);user.setSex(rst.getString(sex);user.setPostition(rst.g
28、etString(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);elserequest.setAt
29、tribute(error,用户名或密码错误);request.getRequestDispatcher(././login.jsp).forward(request, response); catch (Exception e) / TODO: handle exception5.2 个人中心模块用户由登录或者注册都可进入该页面,页面展示如下图5-4所示: 图5-4 个人中心页面图点击各个菜单即可进入各个功能模块。5.2.1 个人信息页面点击个人信息,进入个人信息页面。页面展示如下图5-5所示: 图5-5 个人信息页面图该页面可以查看注册时候的信息,如想修改可以点击修改按钮,进入修改个人信息
30、页面(userModify.jsp)。页面展示如下图5-6所示: 图5-6 个人信息修改页面本页面自动填写旧密码,用户输入新密码即可。该页面部分代码如下:formaction=/servlet/ModifyServlet method=post enctype=multipart/form-data用户姓名:$user.username 输入新密码 再次输入新密码5.2.2 课程发表页面点击发表课程,进入课程发布页面。该页面可以选择课程类型,输入课程名称,如确定发表可点击下一步进入课程详细说明页面(curriculumMatter.jsp)。页面展示如下图5-7所示: 图5-7课程发布页面图该
31、页面主要用于添加课程的详细内容,共分六部分。 (1)队伍结构:由队伍简介、职位结构、学历结构、年龄结构、学缘结构组成,同时构成一个form表单,响应teamStructureServlet控制器,再传入数据库中。支持ckeditor插件,可设置字体大小颜色等。 (2)课程主讲人:由近五年来讲授的主要课程、在国内外发型刊物发表的论文、承担的实践性教学、获得的学术研究奖励组成,也构成一个form表单,响应curriculumManServlet控制器。 (3)教学内容:由课程简介、教学大纲、理论教学内容、实践性教学内容组成,也构成一个form表单,响应studyContentServlet控制器。
32、 (4)教学效果:由专家评价、督导组评价、学生评价组成,支持图片上传。该部分因为上传三种不同图片,所以响应三个控制器studyAchievementServlet1,studyAchievementServlet2,studyAchievementServlet3。 (5)教学特色:由特色介绍、教学研究、教学获奖组成。该部分有文本上传也有图片上传,整体构成一个from表单响应teachTraitServlet控制器。 (6)教学资源:由学生作业、历年考题、参考文献、网络资源组成。由于学生作业与历年考题涉及到多张图片上传问题,所以新建了两张表beforepaper与studentworkpic,
33、用于存放数据。部分代码如下:String troopsStructure=EncodingUtil.getNewString(request.getParameter(troopsStructure);String positionStructure=EncodingUtil.getNewString(request.getParameter(positionStructure);String educationStructure=EncodingUtil.getNewString(request.getParameter(educationStructure);String studyStr
34、ucture=EncodingUtil.getNewString(request.getParameter(studyStructure);String ageStructure=EncodingUtil.getNewString(request.getParameter(ageStructure);Curriculum curriculum=(Curriculum) request.getSession().getAttribute(curriculum); int curriculum_id=curriculum.getCurriculum_id(); try Class.forName(
35、com.mysql.jdbc.Driver);Connection connection=DriverManager.getConnection( jdbc:mysql:/test,root,root);Statement stmt=connection.createStatement(); String sql=update curriculumString sql=update curriculum set curriculum_troopsStructure=+troopsStructure+,curriculum_position Structure=+positionStructur
36、e+,curriculum_educationStructure=+educationStructure+,curriculum_ageStructure=+ageStructure+,curriculum_studyStructure=+studyStructure+ where curriculum_id=+curriculum_id; stmt.executeUpdate(sql); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace(); response.sendRedirect(./curri
37、culumMatter.jsp);5.2.3 搜素页面在个人中心点击搜索课程,进入课程搜索页面。如下图5-8所示: 图5-8 搜索页面图本页面支持多种查找方式,如作者姓名查找、课程名查找、发表类型查找。都为模糊查找,只要输入关键字就可以。该页面响应QueryServlet控制器,该控制器部分代码如下:request.setCharacterEncoding(utf-8);String queryusername=EncodingUtil.getNewString(request.getParameter(queryusername);String findCondition=EncodingU
38、til.getNewString(request.getParameter(findCondition);if(findCondition.equals(1)List curriculum=curriculumService.getCurriculumByUserName(queryusername);request.setAttribute(curriculum, curriculum);request.getRequestDispatcher(/table.jsp).forward(request,response);else if (findCondition.equals(2) Lis
39、t curriculum=curriculumService.getCurriculumByName(queryusername);request.setAttribute(curriculum, curriculum);request.getRequestDispatcher(/table.jsp).forward(request,response);else if (findCondition.equals(3) List curriculum=curriculumService.getCurriculumByType(queryusername);request.setAttribute
40、(curriculum, curriculum);request.getRequestDispatcher(/table.jsp).forward(request,response); elseSystem.out.println(错误);点击查找进入具体搜索页面(table.jsp),如下图5-9所示: 图5-9 课程检索页面图点击查看即可查看该课程。该部分主要设计原理为url传值,代码部分如下:a href=/servlet/checkServlet?id=查看本页面导航菜单对应具体信息,点击即可查看。页面展示如下图5-10所示: 图5-10课程查看页面图 部分代码如下:private C
41、urriculumService curriculumService=new CurriculumServiceImpl();private BeforePaperService beforePaperService=new BeforePaperServiceImpl();privateStudentWorkPICService studentWorkPICService=new StudentWorkPICServiceImpl();Overrideprotected void service(HttpServletRequest request, HttpServletResponse
42、response)throws ServletException, IOException String curriculum_id=request.getParameter(id);CurriculumAll curriculumAlls=curriculumService.getCurriculumAllById(Curriculum_id);List beforePaperPICs=beforePaperService.getBeforePaperPICById(curriculum_id);List studentWorkPICs=studentWorkPICService.getStudentWorkPICById(curriculum_id);request.getSession().setAttribute(beforePaperPIC,beforePaperPICs);request.getSession().setAttribute(studentWorkPIC, studentWorkPICs);request.setAttribute(curriculumAlls, curriculumAlls); request.get