基于JSP和Servlet的课程管理系统设计
- 格式:doc
- 大小:15.00 KB
- 文档页数:3
基于Servlet、JSP的学⽣管理系统(附完整源码)起因最近重温servlet,想到了⼤学时期⽤同⼀个“学⽣管理系统”⽔了⼏门课的课程设计,不免感慨万千。
周末简单的写了个界⾯,建了⼏张表,做了⼀个⼩系统(试图找⼀找当年划⽔的感觉,可惜没找到)。
写的⽐较简单,不过做个普通的课程设计应该够了,需要的可以⾃取。
源码地址界⾯截图主界⾯管理员界⾯学⽣管理(管理员视⾓)添加系统⽤户(管理员视⾓)学⽣主页学⽣个⼈信息⽬录结构运⾏环境tomcat9jdk1.8其他依赖jar包见WEB-INF下⾯的lib⽂件夹。
涉及技术:Servlet、JSP、BootStrap、Jquery(较少)主要功能系统有两个⾓⾊,管理员和学⽣。
做的⽐较简单,没有建额外的⾓⾊表、权限表,仅仅⽤了⼀个字段区分。
管理员可以管理学⽣信息、教师信息、可以添加系统⽤户,录⼊成绩,具有增删改查的⼀切权限。
学⽣只能查看⾃⼰的分数,个⼈档案等。
代码分析⾸页数据统计系统运⾏时常、当前在线⼈数,这两个功能⽤到了servlet的组件,监听器。
通过继承ServletContextListener, HttpSessionListener, HttpSessionAttributeListener等接⼝,可以完成对servlet上下⽂、session的创建销毁等关键节点的监听。
在线⼈数,必然是登录成功的⼈数。
⽽session是有⼈访问页⾯就会创建,所以我们不能根据session的创建和销毁来统计在线⼈数。
在登陆成功后,会在session⾥添加⼀个变量,我们可以监听这⼀⾏为。
当设置session变量的时候,在线⼈数+1移除session变量的时候,在线⼈数-1。
当然这种做法还是有问题的,⽐如直接关闭浏览器,不点注销,数据统计就会失效,这⾥不做深⼊探究。
再来说说系统运⾏时长,我的思路是servlet上下⽂创建的时候,记录下那个时刻的时间戳。
后⾯⽤到的时候,直接⽤当前的时间戳减去保存的时间戳,就可以计算出相隔的毫秒数,也就可以得到天数。
jsp学生管理系统课程设计一、课程目标知识目标:1. 掌握JSP基本语法和常用内置对象,理解JSP与Java Servlet的关系;2. 学会使用JDBC连接数据库,掌握基本的数据库操作;3. 了解学生管理系统的功能模块,能运用所学知识实现学生信息的增删改查功能。
技能目标:1. 培养学生运用JSP技术进行Web开发的能力;2. 培养学生独立分析问题、解决问题的能力;3. 培养学生团队协作、沟通表达的能力。
情感态度价值观目标:1. 培养学生对编程的兴趣和热情,提高对计算机科学的认识;2. 培养学生严谨、细心的学习态度,养成良好的编程习惯;3. 培养学生具备一定的项目意识和实际操作能力,为以后从事相关工作打下基础。
本课程针对高年级学生,具有较强的实践性和应用性。
结合学生特点,课程目标注重知识技能与实际操作相结合,培养学生具备实际项目开发的能力。
教学要求强调理论与实践相结合,注重学生的主动参与和实际操作,以达到课程目标的实现。
通过本课程的学习,学生能够掌握JSP学生管理系统开发的基本技能,为以后从事相关工作奠定基础。
二、教学内容1. JSP基本概念与语法:包括JSP简介、JSP运行原理、JSP内置对象、JSP基本语法结构等内容,对应教材第1章和第2章。
2. 数据库连接与操作:介绍JDBC技术,实现与数据库的连接,掌握基本的SQL语句,实现学生信息的增删改查操作,对应教材第3章和第4章。
3. 学生管理系统功能模块设计:分析学生管理系统的需求,设计系统功能模块,包括学生信息管理、成绩管理、课程管理等,对应教材第5章。
4. JSP页面设计与实现:利用JSP技术,结合HTML、CSS等前端技术,实现学生管理系统的页面设计,对应教材第6章。
5. 学生管理系统综合实践:将所学知识运用到实际项目中,分组完成学生管理系统的开发,实现系统的基本功能,并进行测试与优化,对应教材第7章。
教学内容安排和进度如下:1. 第1周:JSP基本概念与语法;2. 第2周:数据库连接与操作;3. 第3周:学生管理系统功能模块设计;4. 第4周:JSP页面设计与实现;5. 第5-6周:学生管理系统综合实践。
jsp课程设计学生管理系统一、教学目标本课程的教学目标是使学生掌握JSP技术,能够设计并实现一个学生管理系统。
具体包括以下三个方面的目标:1.知识目标:学生需要了解JSP的基本概念、原理和语法,掌握JSP页面的编写和调试方法,熟悉Java语言基础。
2.技能目标:学生能够运用JSP技术开发一个功能完善的学生管理系统,包括学生的增删改查等基本操作,具备一定的实际项目经验。
3.情感态度价值观目标:学生通过课程学习,能够培养团队协作精神,增强解决问题的能力,培养对编程技术的热情和持续学习的动力。
二、教学内容本课程的教学内容主要包括JSP技术的基本概念、语法和应用,具体包括以下几个部分:1.JSP概述:介绍JSP的定义、特点和应用场景。
2.JSP基本语法:讲解JSP页面的基本结构、指令、脚本语言、内建对象等。
3.JSP常用标签:介绍常用的JSP标签,如、表单、按钮等。
4.JSP与数据库的交互:讲解如何使用JSP技术实现与数据库的连接和数据操作。
5.学生管理系统实战:通过一个具体的学生管理系统项目,让学生综合运用所学知识解决问题。
三、教学方法为了达到课程目标,我们将采用以下几种教学方法:1.讲授法:讲解JSP基本概念、语法和应用,让学生掌握基础知识。
2.案例分析法:分析实际项目案例,让学生了解JSP在实际项目中的应用。
3.实验法:让学生动手实践,完成学生管理系统项目,提高实际操作能力。
4.讨论法:学生进行小组讨论,培养团队协作和解决问题的能力。
四、教学资源为了支持课程教学,我们将准备以下教学资源:1.教材:选择权威、实用的JSP教材,为学生提供系统的学习资料。
2.参考书:提供一些与JSP相关的参考书籍,丰富学生的知识体系。
3.多媒体资料:制作课件、视频等多媒体资料,增强课堂教学的趣味性和生动性。
4.实验设备:提供计算机、服务器等实验设备,确保学生能够进行实际操作。
五、教学评估本课程的教学评估将采用多元化的评估方式,全面客观地评价学生的学习成果。
jsp学生管理系统的课程设计一、课程目标知识目标:1. 理解JSP技术的基本原理,掌握JSP页面的基本结构和语法。
2. 学会使用JDBC连接数据库,实现数据的增、删、改、查功能。
3. 掌握学生管理系统中常用的功能模块,如学生信息管理、成绩管理和课程管理。
技能目标:1. 能够独立设计并实现一个基于JSP的学生管理系统。
2. 能够运用所学知识解决实际编程问题,具备一定的编程调试能力。
3. 能够通过小组合作,进行项目分工与协作,提高团队沟通与协作能力。
情感态度价值观目标:1. 培养学生对计算机编程的兴趣,激发学生学习Java技术的热情。
2. 增强学生的自信心,让他们相信自己具备解决实际问题的能力。
3. 培养学生严谨、踏实的编程态度,提高他们面对挫折和困难时的心理承受能力。
课程性质:本课程为实践性较强的课程,注重培养学生的动手能力和实际操作技能。
学生特点:学生已具备一定的Java基础,了解基本的编程概念,对JSP技术有一定了解。
教学要求:结合学生特点和课程性质,将课程目标分解为具体的学习成果,注重实践操作,提高学生的实际编程能力。
在教学过程中,关注学生的个体差异,鼓励学生积极参与,培养他们的团队协作精神。
通过本课程的学习,使学生能够掌握JSP学生管理系统的设计与实现,为后续项目开发打下坚实基础。
二、教学内容1. JSP基本原理与页面结构:介绍JSP技术的基本概念、工作原理和页面结构,包括JSP生命周期、指令、脚本语言和标准标签库的使用。
教材章节:第1章 JSP技术概述,第2章 JSP页面元素2. 数据库连接与操作:讲解JDBC的使用,实现与数据库的连接、数据的增删改查等操作。
教材章节:第3章 数据库连接与JDBC,第4章 数据库操作3. 学生管理系统功能模块设计:- 学生信息管理:实现学生信息的添加、修改、删除和查询功能。
- 成绩管理:实现学生成绩的添加、修改、删除和查询功能。
- 课程管理:实现课程的添加、修改、删除和查询功能。
基于JSP的教务管理系统的设计与实现一、本文概述随着信息技术的飞速发展,教务管理作为学校日常运营的重要组成部分,正面临着从传统手工操作向数字化、智能化的转变。
教务管理系统作为学校信息化的重要体现,旨在提高教务工作的效率,优化资源配置,实现教学管理的现代化。
本文旨在探讨基于Java Server Pages(JSP)技术的教务管理系统的设计与实现。
JSP作为一种成熟的Web开发技术,具有跨平台、易扩展、性能稳定等优点,广泛应用于Web应用系统的开发中。
通过JSP技术,我们可以构建一个功能强大、界面友好的教务管理系统,实现课程管理、教师管理、学生管理、成绩管理等功能,提高教务工作的透明度和效率。
本文首先介绍教务管理系统的背景和意义,阐述采用JSP技术进行开发的可行性和优势。
接着,详细分析系统的需求,包括功能需求、性能需求和非功能需求。
然后,重点介绍系统的设计与实现过程,包括系统架构设计、数据库设计、主要功能模块的设计和实现等。
对系统进行测试,并对测试结果进行分析和总结。
通过本文的研究,我们期望能够为学校教务管理提供一套高效、稳定、易用的解决方案,推动学校信息化建设的进一步发展。
也为其他领域的Web应用系统开发提供一定的参考和借鉴。
二、系统需求分析教务管理系统作为学校日常运作的核心组成部分,其主要目标是提高教务工作的效率,实现教学资源的合理配置,以及提供便捷的信息查询和决策支持。
基于JSP的教务管理系统旨在通过Web技术,为教务人员、教师、学生和管理者提供一个统一的、交互式的操作平台。
系统需求分析是教务管理系统设计与实现过程中的关键步骤,它涉及到对系统功能的深入理解和细化。
教务管理系统需要支持课程管理,包括课程信息的录入、修改、查询和删除等功能,以满足教务人员对课程信息的日常维护需求。
学生信息管理也是必不可少的,系统需要能够处理学生的基本信息、成绩信息、考勤信息等,以便为学生提供个性化的学习支持。
另外,考试管理也是教务管理系统的重要功能之一。
jsp课程设计班级管理系统一、课程目标知识目标:1. 理解JSP技术的基本原理,掌握其在Web开发中的应用;2. 学会使用JSP结合JavaBean和Servlet技术构建班级管理系统;3. 掌握班级管理系统中数据库的连接、查询、更新和删除操作;4. 了解HTML、CSS和JavaScript等前端技术在JSP中的应用。
技能目标:1. 能够运用所学知识独立设计并实现一个班级管理系统;2. 学会使用JSP内置对象和EL表达式进行数据传递和处理;3. 掌握利用JavaBean封装和管理数据的方法;4. 提高问题分析、程序设计和团队协作能力。
情感态度价值观目标:1. 培养对计算机编程和Web开发的兴趣,激发主动学习和探究的精神;2. 树立正确的价值观,认识到班级管理系统在现代教育管理中的重要性;3. 增强团队合作意识,学会倾听、沟通和协作;4. 培养勇于克服困难、积极解决问题的态度。
本课程针对高年级学生,结合学科特点和教学要求,以实用性为导向,旨在帮助学生掌握JSP技术及其在班级管理系统中的应用。
通过本课程的学习,学生将能够具备实际开发Web应用的能力,并培养良好的情感态度和价值观。
课程目标具体、可衡量,为后续教学设计和评估提供依据。
二、教学内容1. JSP技术基础- JSP页面结构及生命周期- JSP内置对象及作用域- JSP脚本及注释的使用2. JavaBean和Servlet技术- JavaBean的概念及其在JSP中的应用- Servlet的生命周期、配置和请求处理- JSP、JavaBean和Servlet的整合3. 数据库连接与操作- JDBC概述及其使用方法- 连接池技术- SQL语句编写与数据库操作4. 班级管理系统功能模块设计- 系统需求分析- 功能模块划分- 数据库表结构设计5. 前端技术基础- HTML标签及其应用- CSS样式表的使用- JavaScript基础及事件处理6. 系统实现与测试- 系统功能实现- 用户界面设计- 系统测试与优化教学内容根据课程目标进行选择和组织,涵盖JSP技术、数据库、前端技术等多个方面,确保内容的科学性和系统性。
教务管理系统jsp课程设计一、课程目标知识目标:1. 学生能够掌握JSP基本语法和结构,理解JSP与Java Servlet的关系,并能够运用JSP技术开发简单的Web应用。
2. 学生能够了解教务管理系统的功能需求和业务流程,运用JSP技术实现系统中的关键功能模块。
3. 学生掌握数据库连接、SQL语句执行、页面跳转等基本操作,能运用JSP进行数据的增、删、改、查操作。
技能目标:1. 学生能够运用HTML、CSS、JavaScript等技术进行页面设计和布局,提高页面交互性。
2. 学生能够使用JDBC技术连接数据库,掌握数据库操作方法,为教务管理系统提供数据支持。
3. 学生通过课程学习,具备分析、设计、实现和测试教务管理系统的能力。
情感态度价值观目标:1. 学生在学习过程中,培养对编程的兴趣和热情,提高自主学习和解决问题的能力。
2. 学生通过团队协作完成课程设计,培养沟通、协作、共享和敬业的精神。
3. 学生了解教务管理系统在实际应用中的价值,认识到编程技术对于社会发展的重要性,增强社会责任感。
课程性质:本课程为高年级计算机专业课程,要求学生具备一定的Java基础和Web开发知识。
学生特点:学生具备一定的编程基础,但实际项目经验不足,需要通过课程设计提高实践能力。
教学要求:教师需结合实际案例进行讲解,引导学生运用所学知识解决实际问题,注重培养学生的动手能力和团队协作精神。
通过课程设计,使学生能够将理论知识与实际应用相结合,提高综合运用能力。
二、教学内容1. JSP技术基础:JSP语法、指令、脚本元素、隐式对象、页面跳转与重定向。
2. 数据库操作:JDBC技术,数据库连接,SQL语句编写,结果集处理。
3. 教务管理系统功能模块设计:学生信息管理、课程信息管理、成绩信息管理。
4. 页面设计与布局:HTML、CSS、JavaScript技术应用,提升页面交互体验。
5. 教务管理系统实现:运用JSP技术实现功能模块,数据库操作,页面设计与实现。
jsp servlet课程设计一、课程目标知识目标:1. 掌握JSP和Servlet的基础知识,理解Web应用的基本原理;2. 学会使用JSP的内置对象,了解其作用和用法;3. 学会使用Servlet处理客户端请求,实现动态网页的生成;4. 了解JSP和Servlet的会话管理机制,掌握Session和Cookie的使用;5. 掌握JSP和Servlet的文件上传与下载功能。
技能目标:1. 能够独立搭建JSP和Servlet的开发环境;2. 能够编写简单的JSP页面和Servlet程序,实现基本的数据处理功能;3. 能够运用JSP和Servlet解决实际问题,如实现用户登录、数据查询等;4. 能够分析并解决JSP和Servlet程序中可能出现的问题;5. 能够对JSP和Servlet程序进行调试和优化。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学生的学习热情;2. 培养学生的团队协作精神,学会与他人共同解决问题;3. 培养学生面对困难时勇于挑战、积极进取的精神;4. 培养学生遵守编程规范,养成良好的编程习惯;5. 增强学生的网络安全意识,了解Web应用的安全问题。
本课程针对具有一定编程基础的学生,结合JSP和Servlet的实际应用,注重知识与实践的结合。
课程目标旨在使学生掌握JSP和Servlet的基本知识,具备实际开发能力,并在学习过程中培养良好的情感态度价值观。
通过本课程的学习,学生将能够独立完成简单的Web应用项目,为后续学习Java Web开发打下坚实基础。
二、教学内容1. JSP和Servlet基础:介绍JSP和Servlet的概念、工作原理及关系,分析Web应用的基本架构。
- 章节内容:JSP概述、Servlet概述、Web应用架构。
2. JSP内置对象:讲解JSP内置对象的定义、作用和用法,通过实例演示如何使用内置对象。
- 章节内容:内置对象概述、四大作用域、内置对象应用。
基于JSP的信息管理系统设计与实现信息管理系统是一种用于管理和处理各种信息的软件系统,它可以帮助用户高效地组织、存储、检索和分析信息。
随着互联网的发展,信息管理系统在各个领域得到了广泛的应用,如学校教务管理系统、企业人事管理系统、图书馆借阅管理系统等。
本文将介绍基于JSP (JavaServer Pages)技术的信息管理系统的设计与实现过程。
一、系统需求分析在设计信息管理系统之前,首先需要进行系统需求分析,明确系统的功能和性能需求。
一般来说,信息管理系统需要具备以下基本功能:用户管理:包括用户注册、登录、权限管理等功能。
信息录入:用户可以录入各种类型的信息,如学生信息、员工信息、图书信息等。
信息查询:用户可以根据条件查询所需的信息。
信息统计:系统可以对录入的信息进行统计分析,并生成报表。
界面友好:系统界面应该简洁美观,操作方便。
二、系统设计1. 技术选型在本文中,我们选择使用JSP作为开发技术,JSP是一种动态网页开发技术,它可以将Java代码嵌入到HTML页面中,实现页面动态生成。
同时,我们还会使用Servlet作为控制器,负责处理用户请求和调用业务逻辑。
2. 数据库设计在设计信息管理系统时,数据库设计是至关重要的一环。
我们需要根据系统需求设计合理的数据库表结构,保证数据存储的有效性和完整性。
以学生信息管理系统为例,可能涉及到学生表、课程表、成绩表等。
3. 系统架构基于JSP的信息管理系统通常采用MVC(Model-View-Controller)架构模式。
其中,Model负责数据处理和业务逻辑,View负责页面展示,Controller负责接收用户请求并调度Model和View。
三、系统实现1. 环境搭建首先,我们需要搭建开发环境,包括安装JDK(Java Development Kit)、Tomcat服务器以及数据库(如MySQL)。
然后创建一个Web项目,并配置好相关环境。
2. 编码实现接下来,我们开始编写代码实现系统功能。
教务管理系统的设计与实现摘要教务管理是学校的教务工作的主要内容,其信息量大、信息变动频繁历来是各学校的头疼问题,随着人们对用计算机的使用越来越广泛以及互联网络普及,教务管理也已经基本形成了多元的网络化管理,极大的方便了广大师生,也方便了学校对教务工作的管理,大大的提高了教学质量.本系统采用FlexBuilder、MyEclipse结合MySQL数据库进行设计,从管理和使用的角度分为两个部分:学校教务管理端和学生使用端。
前者主要有系统管理员及任课教师使用,后者则是主要面对在校学生.本文首先作教务管理系统的功能需求分析,然后对数据库进行需求分析,再在数据库中建立相应的表,并弄清楚数据库中各个表的逻辑关系,接着编写代码,最后调试网站,直到形成用户满意的可以使用的完整系统。
关键词:教务管理系统;FlexBuilder;MyEclipse;MySQLThe Design and Implementation ofEducational Administration SystemAbstractAcademic Senate, the school management is the main content, it is informative, information has always been the frequent changes in schools of headache problems,as people used more and more extensive use of computers and the popularization of the Internet, educational administration has been basically formed a multi-network management,a great convenience to teachers and students,but also on the Senate to facilitate the work of the school management, greatly increased the quality of teaching.The system uses a FlexBuilder, MyEclipse combination of MySQL database design, from the perspective of management and use is divided into two parts:School of Educational Administration and students to use the client side. The former are mainly system administrators and classroom teachers to use, while the latter is the major problems encountered in school.In this paper,first of all, make the functions of educational management system needs analysis, then the database needs analysis, and then in the database corresponding table,and each database table to clarify the logic of relations, and then write code,debug the final site,until the formation of customer satisfaction The complete system can be used。
实验六利用Servlet和JSP设计并实现简单的图书管理系统1、实验目的1)掌握对JDBC基本操作步骤的简单封装2)掌握Servlet和JSP结合使用3)掌握MVC设计模式4)掌握监听器、过滤器的使用2、实验设备与环境硬件:安装有Windows XP系统的微机一台。
软件:JDK1.6、MyEclipse 6.0以上、Oracle或者SQL Server2000(2005、2008)和Tomcat 6。
3、实验内容设计一个通用的基于浏览器/服务器的简单的图书管理系统。
系统包括用户登录、图书基本信息维护(图书的增删改查)等简单功能。
4、实验要求1)用户、图书的基本信息采用数据库存放2)使用Servlet作为业务流程控制器3)使用session、JavaBean进行数据传递5、实验要求1)实验前充分预习实验指导书内容及相关理论知识内容;实验时提交本次实验的预习报告。
2)实验中严格遵守实验室规范和制度,调试程序出现的问题并给出解决方法。
认真完成实验内容并做好实验纪录3)实验后必须按照要求独立完成实验报告4)打印的源程序清单和测试结果附在实验报告的后面。
源程序必须有注释以及必要的测试数据和运行结果数据6、实验程序<1>登录界面package com.imut.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import er;import erDBAccess;public class LoginServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {HttpSession session=request.getSession();request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");String name=request.getParameter("name");String passwd=request.getParameter("password");UserDBAccess dbAccess=new UserDBAccess();User user=dbAccess.login(name,passwd);if(user!=null){session.setAttribute("user",user);response.sendRedirect("http://localhost:8081/book/index.jsp");}else{session.setAttribute("message","登录信息有误,请重新登录!!!");response.sendRedirect("http://localhost:8081/book/login.jsp");}}}<2>添加package com.imut.servlet;import java.io.IOException;import java.util.Date;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.imut.javabean.Book;import com.imut.javabean.BookDBAccess;import er;import erDBAccess;public class AddBookServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {HttpSession session=request.getSession();request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");String bookName=request.getParameter("bookName");String ISBN=request.getParameter("ISBN");String author=request.getParameter("author");String publishCom=request.getParameter("publishCom");String strPrice=request.getParameter("price");String publishDate=request.getParameter("publishDate");String remark=request.getParameter("remark");float price=Float.parseFloat(strPrice);BookDBAccess dbAccess=new BookDBAccess();Book book=new Book(dbAccess.getBookId(),bookName,ISBN,author,publishCom,price,publishDate,remark);dbAccess.addBook(book);session.setAttribute("message", "图书信息添加成功!");request.getRequestDispatcher("/listAllBookServlet").forward(request, response);}}<3>删除package com.imut.servlet;import java.io.IOException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.imut.javabean.Book;import com.imut.javabean.BookDBAccess;import er;import erDBAccess;public class DeleteBookServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {HttpSession session=request.getSession();request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");String id=request.getParameter("bookId");int bookId=Integer.parseInt(id);BookDBAccess dbAccess=new BookDBAccess();dbAccess.delBookById(bookId);session.setAttribute("message", "删除图书信息成功!");request.getRequestDispatcher("/listAllBookServlet").forward(request, response);}}<4>更新package com.imut.servlet;import java.io.IOException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.imut.javabean.Book;import com.imut.javabean.BookDBAccess;import er;import erDBAccess;public class UpdateBookServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {HttpSession session=request.getSession();request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");String id=request.getParameter("bookId");String bookName=request.getParameter("bookName");String ISBN=request.getParameter("ISBN");String author=request.getParameter("author");String publishCom=request.getParameter("publishCom");String strPrice=request.getParameter("price");String publishDate=request.getParameter("publishDate");String remark=request.getParameter("remark");int bookId=Integer.parseInt(id);float price=Float.parseFloat(strPrice);BookDBAccess dbAccess=new BookDBAccess();Book book=dbAccess.findBookById(bookId);book.setAuthor(author);book.setBookName(bookName);book.setISBN(ISBN);book.setPrice(price);book.setPublishCom(publishCom);book.setPublishDate(publishDate);book.setRemark(remark);dbAccess.updateBook(book);session.setAttribute("message", "修改图书信息成功!");request.getRequestDispatcher("/listAllBookServlet").forward(request, response);}}<5>书籍管理界面package com.imut.servlet;import java.io.IOException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.imut.javabean.Book;import com.imut.javabean.BookDBAccess;import er;import erDBAccess;public class ShowBookServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");String id=request.getParameter("bookId");int bookId=Integer.parseInt(id);BookDBAccess dbAccess=new BookDBAccess();Book book=dbAccess.findBookById(bookId);request.setAttribute("book",book);request.getRequestDispatcher("/bookShow.jsp").forward(request, response);}}<6>检索package com.imut.servlet;import java.io.IOException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.imut.javabean.BookDBAccess;import er;import erDBAccess;public class CheckBookServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");String bookName=request.getParameter("bookName");String ISBN=request.getParameter("ISBN");String author=request.getParameter("author");String publishCom=request.getParameter("publishCom");request.setAttribute("bookName", bookName);request.setAttribute("ISBN", ISBN);request.setAttribute("author", author);request.setAttribute("publishCom", publishCom);BookDBAccess dbAccess=new BookDBAccess();List list=dbAccess.findAllBookByMostCon(bookName, ISBN, author, publishCom);request.setAttribute("list", list);request.getRequestDispatcher("/bookList.jsp").forward(request, response);}}<7>显示图书清单package com.imut.servlet;import java.io.IOException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.imut.javabean.BookDBAccess;import er;import erDBAccess;public class ListAllBookServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");BookDBAccess dbAccess=new BookDBAccess();List list=dbAccess.findAllBook();request.setAttribute("list", list);request.getRequestDispatcher("/bookList.jsp").forward(request, response);}}<8>用户定义package com.imut.javabean;public class User {private int userId;private String name;private String password;private String sex;private String feature;private String privence;private String author;private int userType;public User() {}public User(int userId,String name, String password, String sex, String feature,String privence, String author,int userType) {erId = userId; = name;this.password = password;this.sex = sex;this.feature = feature;this.privence = privence;this.author = author;erType = userType;}public int getUserId() {return userId;}public void setUserId(int userId) {erId = userId;}public String getName() {return name;}public void setName(String name) { = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getFeature() {return feature;}public void setFeature(String feature) {this.feature = feature;}public String getPrivence() {return privence;}public void setPrivence(String privence) { this.privence = privence;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public int getUserType() {return userType;}public void setUserType(int userType) {erType = userType;}}<9>用户数据库package com.imut.javabean;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import mmon.ConnectionFactory;import mmon.ResourceClose;public class UserDBAccess {public User login(String name,String password) { User user=null;Connection conn=null;PreparedStatement pstmt=null;ResultSet rs=null;try{conn=ConnectionFactory.getConnection();String sql="select * from usertbl1 where name=? and password=?";pstmt=conn.prepareStatement(sql);pstmt.setString(1, name);pstmt.setString(2, password);rs=pstmt.executeQuery();if(rs.next()){user=new User();user.setUserId(rs.getInt(1));user.setName(rs.getString(2));user.setPassword(rs.getString(3));user.setSex(rs.getString(4));user.setFeature(rs.getString(5));user.setPrivence(rs.getString(6));user.setAuthor(rs.getString(7));user.setUserType(rs.getInt(8));}}catch (SQLException e) {e.printStackTrace();}finally{ResourceClose.close(rs, pstmt, conn);}return user;}}<10>图书定义package com.imut.javabean;public class Book {private int bookId;private String bookName;private String author;private String ISBN;private String publishCom;private float price;private String publishDate;private String remark;public Book() {}public Book(int bookId, String bookName, String isbn, String author, String publishCom, float price, String publishDate, String remark) {this.bookId = bookId;this.bookName = bookName;ISBN = isbn;this.author = author;this.publishCom = publishCom;this.price = price;this.publishDate = publishDate;this.remark = remark;}public int getBookId() {return bookId;}public void setBookId(int bookId) {this.bookId = bookId;}public String getBookName() {return bookName;}public void setBookName(String bookName) { this.bookName = bookName;}public String getISBN() {return ISBN;}public void setISBN(String isbn) {ISBN = isbn;}public String getAuthor() {return author;}public void setAuthor(String author) { this.author = author;}public String getPublishCom() {return publishCom;}public void setPublishCom(String publishCom) { this.publishCom = publishCom;}public float getPrice() {return price;}public void setPrice(float price) {this.price = price;}public String getPublishDate() {return publishDate;}public void setPublishDate(String publishDate) {this.publishDate = publishDate;}public String getRemark() {return remark;}public void setRemark(String remark) {this.remark = remark;}}<11>图书数据库package com.imut.javabean;import java.sql.Connection;import java.sql.Date;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;import mmon.ConnectionFactory;import mmon.ResourceClose;public class BookDBAccess {public void addBook(Book book) {Connection conn=null;PreparedStatement pstmt=null;ResultSet rs=null;try{conn=ConnectionFactory.getConnection();String sql="insert into book values(?,?,?,?,?,?,?,?)";pstmt=conn.prepareStatement(sql);pstmt.setInt(1, book.getBookId());pstmt.setString(2, book.getBookName());pstmt.setString(3, book.getAuthor());pstmt.setString(4, book.getISBN());pstmt.setString(5, book.getPublishCom());pstmt.setFloat(6, book.getPrice());pstmt.setString(7, book.getPublishDate());pstmt.setString(8, book.getRemark());pstmt.executeUpdate();}catch (SQLException e) {e.printStackTrace();}finally{ResourceClose.close(rs, pstmt, conn);}}public void delBookById(int bookId){Connection conn=null;PreparedStatement pstmt=null;ResultSet rs=null;try{conn=ConnectionFactory.getConnection();String sql="delete from book where bookId=?";pstmt=conn.prepareStatement(sql);pstmt.setInt(1, bookId);pstmt.executeUpdate();}catch (SQLException e) {e.printStackTrace();}finally{ResourceClose.close(rs, pstmt, conn);}}public void updateBook(Book book) {Connection conn=null;PreparedStatement pstmt=null;ResultSet rs=null;try{conn=ConnectionFactory.getConnection();String sql="update book setbookId=?,bookName=?,author=?,ISBN=?,"+"publishCom=?,price=?,publishDate=?,remark=? where bookId=?";pstmt=conn.prepareStatement(sql);pstmt.setInt(1, book.getBookId());pstmt.setString(2, book.getBookName());pstmt.setString(3, book.getAuthor());pstmt.setString(4, book.getISBN());pstmt.setString(5, book.getPublishCom());pstmt.setFloat(6, book.getPrice());pstmt.setString(7, book.getPublishDate());pstmt.setString(8, book.getRemark());pstmt.setInt(9, book.getBookId());pstmt.executeUpdate();}catch (SQLException e) {e.printStackTrace();}finally{ResourceClose.close(rs, pstmt, conn);}}public List findAllBook(){Book book=null;ArrayList list=new ArrayList();Connection conn=null;PreparedStatement pstmt=null;ResultSet rs=null;try{conn=ConnectionFactory.getConnection();String sql="select * from book order by bookId";pstmt=conn.prepareStatement(sql);rs=pstmt.executeQuery();while(rs.next()){book=new Book();book.setBookId(rs.getInt(1));book.setBookName(rs.getString(2));book.setAuthor(rs.getString(3));book.setISBN(rs.getString(4));book.setPublishCom(rs.getString(5));book.setPrice(rs.getFloat(6));book.setPublishDate(rs.getString(7));book.setRemark(rs.getString(8));list.add(book);}}catch (SQLException e) {e.printStackTrace();}finally{ResourceClose.close(rs, pstmt, conn);}return list;}public Book findBookById(int bookId){Book book=null;Connection conn=null;PreparedStatement pstmt=null;ResultSet rs=null;try{conn=ConnectionFactory.getConnection();String sql="select * from book where bookId=?";pstmt=conn.prepareStatement(sql);pstmt.setInt(1, bookId);rs=pstmt.executeQuery();while(rs.next()){book=new Book();book.setBookId(rs.getInt(1));book.setBookName(rs.getString(2));book.setAuthor(rs.getString(3));book.setISBN(rs.getString(4));book.setPublishCom(rs.getString(5));book.setPrice(rs.getFloat(6));book.setPublishDate(rs.getString(7));book.setRemark(rs.getString(8));}}catch (SQLException e) {e.printStackTrace();}finally{ResourceClose.close(rs, pstmt, conn);}return book;}public List findAllBookByMostCon(String bookName,String ISBN,String author,String publishCom){Book book=null;ArrayList list=new ArrayList();Connection conn=null;PreparedStatement pstmt=null;ResultSet rs=null;String sql="select * from book where 1=1 ";/*if(bookName!=null&&!bookName.equals("")){sql+=" and bookName='"+bookName+"'";}if(ISBN!=null&&!ISBN.equals("")){sql+=" and ISBN='"+ISBN+"'";}if(author!=null&&!author.equals("")){sql+=" and author='"+author+"'";}if(publishCom!=null&&!publishCom.equals("")){sql+=" and publishCom='"+publishCom+"'";}sql+=" order by bookId";*/if(bookName!=null&&!bookName.equals("")){sql+=" and bookName like '%"+bookName+"%'";}if(ISBN!=null&&!ISBN.equals("")){sql+=" and ISBN like '%"+ISBN+"%'";}if(author!=null&&!author.equals("")){sql+=" and author like '%"+author+"%'";}if(publishCom!=null&&!publishCom.equals("")){ sql+=" and publishCom like '%"+publishCom+"%'";}sql+=" order by bookId";try{conn=ConnectionFactory.getConnection();pstmt=conn.prepareStatement(sql);rs=pstmt.executeQuery();while(rs.next()){book=new Book();book.setBookId(rs.getInt(1));book.setBookName(rs.getString(2));book.setAuthor(rs.getString(3));book.setISBN(rs.getString(4));book.setPublishCom(rs.getString(5));book.setPrice(rs.getFloat(6));book.setPublishDate(rs.getString(7));book.setRemark(rs.getString(8));list.add(book);}}catch (SQLException e) {e.printStackTrace();}finally{ResourceClose.close(rs, pstmt, conn);}return list;}public int getBookId(){Connection conn=null;PreparedStatement pstmt=null;ResultSet rs=null;int i=0;try{conn=ConnectionFactory.getConnection();String sql="select max(bookId) from book";pstmt=conn.prepareStatement(sql);rs=pstmt.executeQuery();if(rs.next()){i=rs.getInt(1);}}catch (SQLException e) {e.printStackTrace();}finally{ResourceClose.close(rs, pstmt, conn);}return i+1;}}<12>用户访问权限控制package com.imut.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import er;public class LoginFilter implements Filter{public void init(FilterConfig arg0) throws ServletException { }public void doFilter(ServletRequest request, ServletResponseresponse,FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request;HttpServletResponse res = (HttpServletResponse) response;HttpSession session = req.getSession();User user =(User) session.getAttribute("user");if (user!=null) {chain.doFilter(req, res);} else {session.setAttribute("message","只有登录后才能访问系统!");res.sendRedirect(req.getContextPath() + "/login.jsp");}}public void destroy() {}}<13>管理级别package com.imut.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import er;public class AdminFilter implements Filter{public void init(FilterConfig arg0) throws ServletException { }public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request;HttpServletResponse res = (HttpServletResponse) response;HttpSession session = req.getSession();User user =(User) session.getAttribute("user");if (user!=null&&user.getUserType()==0) {chain.doFilter(req, res);} else if(user!=null&&user.getUserType()==1){session.setAttribute("message","您没有操作该功能的权限!");res.sendRedirect(req.getContextPath() +"/listAllBookServlet");} else{session.setAttribute("message","只有登录后才能访问系统!");res.sendRedirect(req.getContextPath() + "/login.jsp");}}public void destroy() {}}。
jsp 课程设计学生管理系统一、课程目标知识目标:1. 学生能理解JSP技术的基本原理,掌握其基本语法和常用标签。
2. 学生能运用JSP结合JavaBean和Servlet技术开发动态Web应用。
3. 学生能掌握学生管理系统的功能需求,理解其数据库设计。
技能目标:1. 学生能运用HTML、CSS和JavaScript实现用户界面的设计与布局。
2. 学生能通过JSP实现数据的显示、查询和更新操作。
3. 学生能利用JavaBean和Servlet进行业务逻辑处理和页面控制。
情感态度价值观目标:1. 培养学生的团队协作意识,提高沟通与协作能力。
2. 培养学生勇于尝试、积极探究的学习态度,增强解决问题的信心。
3. 培养学生关注实际应用,认识到编程技术在现实生活中的重要作用。
课程性质:本课程为实践性较强的课程,结合课本知识,注重培养学生的动手能力和实际应用能力。
学生特点:学生具备一定的Java基础,熟悉Web开发基本概念,但对JSP技术及其应用尚不熟悉。
教学要求:通过本课程的学习,使学生能够将所学知识应用于实际项目中,提高编程实践能力,培养解决实际问题的能力。
教学过程中,注重引导学生主动探究、团队合作,实现课程目标的分解与达成。
二、教学内容1. JSP技术基础- JSP基本语法和结构- JSP内置对象和常用标签- JSP与JavaBean结合使用2. Servlet技术- Servlet的生命周期和基本方法- 使用Servlet处理请求和响应- Servlet与JSP的交互3. 数据库设计与连接- 学生管理系统数据库设计- JDBC连接数据库- 数据库操作实现学生信息管理4. 前端技术- HTML/CSS布局与设计- JavaScript实现动态效果- 前端与JSP的交互5. 学生管理系统功能实现- 学生信息添加、删除、修改和查询- 用户登录与权限管理- 班级与学生信息管理6. 项目实践- 功能模块划分与分工- 团队协作开发- 项目测试与优化教学内容安排与进度:1-2周:JSP技术基础学习与实践3-4周:Servlet技术学习与实践5-6周:数据库设计与连接学习与实践7-8周:前端技术学习与实践9-10周:学生管理系统功能实现11-12周:项目实践、测试与优化本教学内容与课本关联性紧密,涵盖JSP技术、Servlet技术、数据库设计和前端技术等方面,旨在帮助学生掌握Web应用开发的核心知识,提高实际项目开发能力。
jsp管理系统课程设计一、课程目标知识目标:1. 学生能掌握JSP技术的基本原理,了解其在管理系统开发中的应用。
2. 学生能理解数据库连接、查询及更新操作在JSP中的应用,掌握SQL语句的基本使用。
3. 学生了解HTML、CSS和JavaScript在JSP页面设计中的作用,能综合运用这些技术设计友好的用户界面。
技能目标:1. 学生能够运用JSP技术独立开发简单的管理系统,实现数据的增删改查功能。
2. 学生能够运用所学知识解决实际开发过程中遇到的问题,具备一定的调试和优化能力。
3. 学生能够通过小组合作,发挥团队精神,共同完成一个完整的JSP管理系统项目。
情感态度价值观目标:1. 学生对JSP技术产生兴趣,增强学习编程的自信心,培养主动探究和解决问题的能力。
2. 学生在项目实践中,体验团队协作的重要性,培养良好的沟通能力和团队精神。
3. 学生能够认识到编程技术在现实生活中的应用,激发他们对信息科学的热爱和为社会发展贡献力量的责任感。
二、教学内容1. JSP技术原理与基础:介绍JSP的概念、工作原理,以及与Servlet的关系;讲解JSP的页面生命周期、内置对象和指令的使用。
相关教材章节:第1章 JSP技术概述,第2章 JSP页面生命周期与内置对象。
2. 数据库连接与操作:讲解JDBC技术,实现数据库的连接、查询、更新操作;介绍SQL语句的基本用法。
相关教材章节:第3章 数据库连接与JDBC,第4章 SQL语句及其应用。
3. JSP页面设计与实现:讲解HTML、CSS和JavaScript在JSP页面中的应用,设计友好的用户界面;介绍表单处理、验证及数据展示。
相关教材章节:第5章 HTML与CSS在JSP中的应用,第6章 JavaScript 在JSP中的应用。
4. 管理系统功能实现:讲解如何使用JSP技术实现管理系统的基本功能,如用户登录、数据增删改查、权限控制等;指导学生进行项目实践。
相关教材章节:第7章 管理系统功能设计,第8章 管理系统实现案例。
jsp代码学生管理系统课程设计一、课程目标知识目标:1. 学生能够掌握JSP基本语法和常用内置对象,理解其运行原理;2. 学生能够运用JavaBean和SQL技术,实现对数据库的增、删、改、查操作;3. 学生了解学生管理系统的功能需求,能够根据需求设计合理的数据库表结构。
技能目标:1. 学生能够独立完成学生管理系统的前端和后端代码编写,实现用户登录、学生信息管理、成绩管理等功能;2. 学生能够运用所学知识解决实际编程问题,具备一定的编程调试能力;3. 学生能够运用合适的软件工具进行项目开发,如Eclipse、MySQL等。
情感态度价值观目标:1. 学生通过本课程的学习,培养对编程的兴趣和热情,树立正确的计算机应用观念;2. 学生能够认识到团队合作的重要性,培养良好的团队协作精神;3. 学生能够遵循编程规范,养成良好的编程习惯,提高自身的职业素养。
课程性质:本课程为信息技术课程,旨在让学生掌握JSP技术,结合数据库知识,实现一个实用的学生管理系统。
学生特点:学生具备一定的Java基础,对Web编程有一定了解,对数据库知识有一定掌握。
教学要求:教师需结合学生实际情况,采用案例教学、任务驱动等方法,引导学生掌握JSP技术,培养学生编程实践能力和团队协作精神。
同时,注重培养学生的编程规范意识和职业素养。
通过本课程的学习,使学生在知识、技能和情感态度价值观方面均取得具体的学习成果。
二、教学内容1. JSP基本语法与内置对象:介绍JSP页面的基本结构,讲解常用内置对象(如request、response、session等)的作用和使用方法,结合实例使学生理解其工作原理。
相关教材章节:第2章 JSP基本语法与内置对象。
2. JavaBean技术:讲解JavaBean的定义、编写规范以及如何在JSP页面中调用JavaBean,使学生掌握JavaBean在Web编程中的应用。
相关教材章节:第3章 JavaBean技术。
基于JSP和Servlet的课程管理系统设计
作者:吴健余伟江
来源:《科学与财富》2016年第22期
摘要:随着信息化时代的来临,计算机应用使人们生活变得更加便利。
但课堂上,仍采用邮箱或网盘收取作业,教师逐一核对提交情况的方式。
本文设计一款课程管理系统,通过解析教师上传的学生编号,并存储在开源关系型数据库MySQL中,学生进入系统上传作业,系统将自动统计提交情况并反馈教师,教师可以打包下载学生作业。
关键词:课程管理;上传作业;自动统计;打包下载
一、前言
随着信息化时代的来临,计算机技术的应用被更多人接受并且逐渐运用到了生活的各个领域,使人们生活的效率大大提高。
但发现在教学上,仍存在大量采用传统的收发纸质作业,教师逐一核对提交情况的方式。
这样不但教师收取作业的难度,还会耗费大量时间在整理作业和核对学生信息上,甚至可能造成学生作业的丢失。
为了解决这个问题,设计并开发了一种课程管理系统,教师可以添加课程和发布课程作业,学生则可以提交某一门课程的作业,系统会自动解析学生的编号,将学生该门课记录为“已提交”,教师最后可以通过下载学生作业进行批改。
整个流程都在线上完成,减少了作业收发、核对的流程,节省了许多人力物力[1]。
二、设计原理
(一)导入学生信息(LoadExcelServlet)
系统运用了Apache POI对学生信息进行导入,Apache POI是Apache软件基金会的开源项目,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。
利用Apache POI,教师通过上传该门课程的学生编号EXCEL文件,利用Apache POI对EXCEL文件进行解析读取,存入该课程的MySQL数据库表中。
MySQL 是一个开放源码的关联式数据库管理系统,性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在 Internet上的中小型网站中[2]。
(二)上传作业(UploadServlet)
系统运用了Apache fileupload实现作业上传的功能,fileupload是Apache commons下面的一个子项目,用来实现Java环境下面的文件上传功能。
服务器创建以课程ID为文件名的文件
夹,对学生上传的作业进行保存。
学生上传的作业必须以学生编号命名,服务器接收文件的同时对MySQL数据库中该课程的数据表进行登记。
(三)信息反馈
JSP全名为Java Server Pages,JSP是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段和JSP标记,从而形成 JSP 文件。
JSP是用于开发服务器端 Web 应用程序的一种技术[3],通过JSP技术生成课程信息的动态页面,读取MySQL中对应课程的数据表,生成表格,显示学生作业提交情况。
(四)作业下载(DownloadServlet)
教师可以把服务器端的文件下载至客户端,Servlet能够向客户端发送任意格式的文件数据。
通过ServletContext()的getResourceAsStream()方法,获取到一个读取课程作业目录下的输入流,再利用response.getOutputStream(),得到用于将文件输出至客户端的输出流。
简而言之,DownloadServlet的工作是根据客户端的请求(需要下载作业的课程),获取输入流读取所需文件,并通过输出流发送至客户端。
(五)其他模块
非核心Servlet包括登陆模块LoginServlet、注册模块RegisterServlet、新建课程NewCourseServlet和新建作业NewHomeworkServlet等,它们实现了系统的基本功能,如登陆注册。
限于篇幅不一一详细介绍。
三、设计成果
(一)教师作业发布
注册一个“教师”类型账号,添加一门名称为“Java程序设计”的课程后,在“发布作业”页面可选科目里面出现了该账号所添加的科目(如图1所示),填写“作业名称”,并提交学生名单EXCEL文件后,转至“作业下载”页面(如图2所示),选择“Java程序设计”,查看各学生的提交情况。
(二)学生上传作业
注册三个“学生”类型账号,姓名在“作业上传”页面,分别上传“Java程序设计”的作业。
(三)教师查看
返回教师的“作业下载”页面,对应的3位学生的作业提交情况显示“是”。
右侧的“下载”可下载学生的作业。
四、总结
本系统为学校教学提供了便利,功能实用,但距离实际产品仍有不足。
总体而言,本课程管理系统效果良好,同时存在它的使用价值,可在其基础上继续改进,设计出更加完善的系统。
参考文献
[1] 马骁.基于JSP的学生就业信息管理系统设计与实现[D].吉林大学,2015.
[2] 吴小青.JSP+TOMCAT+MYSQL 开源软件整合配置初探[J].齐齐哈尔大学学报. 2012,28(4):66-69 .
[3] 刘佳.基于JSP_Servlet图书信息管理系统的设计与实现[D].天津大学,2012.
作者简介:吴健(1993——)男,汉族,广东茂名人,华南师范大学大学物理与电信工程学院,2013级本科生,通信工程专业。