基于JSP实现的校园师生交流系统

基于JSP实现的校园师生交流系统 第1章 课设任务 1,1 课程题目 师生交流系统的设计与开发 1,2 课设目的 复习,巩固JavaWeb的基础知识

本文包含相关资料包-----> 点击直达获取<-------

基于JSP实现的校园师生交流系统

第1章 课设任务

1.1 课程题目

师生交流系统的设计与开发

1.2 课设目的

复习、巩固JavaWeb的基础知识,进一步加深对JavaWeb技术的理解和掌握;课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。 培养学生在项目开发中团队合作精神、创新意识及能力

1.3 开发环境

  • 操作系统:Windows

  • 开发工具:MyEclipse

  • Java中间件服务器:Tomcat

  • 数据库: MySQL

MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse可以支持Java Servlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

第2章 课设内容

师生交流系统是一个教学系统,主要是帮助学生和教师更好进行交流,更好地将若干课程更加紧密地结合起来,更好地达到学以致用;达到教、学结合的目的;让学生能够更加完整而系统地掌握相关知识和技能。

根据师生交流系统的基本需求,本系统需要完成以下任务:

  • 学生用户功能:学生登录之后可以对教学资料查询(可分页),教学视频播放和下载、试题下载

  • 教师用户功能:教师登录本系统可以上传教学资料、视频以及试题,另外可以对这些资料进行增删改查

  • 师生交流功能:学生可以向教师提问,教师可以对学生的提问进行答复

  • 管理用户功能:管理员登录系统之后可以分配学生和教师,对学生和教师进行管理

第3章 需求分析

从代码实现角度分析,该系统共包括以下几个部分:用户登录、信息的列表、信息的查询、信息的添加、信息的修改、信息的删除和退出登录。

3.1系统用户角色分析

用户分为学生用户、教师用户和管理员用户。

学生登录之后可以对教学资料、教学视频、试题进行查询和下载,还可以对教学视频进行播放;教师用户登录后可以上传教学资料、教学视频和试题,还可以对这些资料进行增删改查;管理员用户登录后可以分配学生和教师,对学生和教师信息进行增删改查。在论坛功能中,所有用户都可以发表帖子和回复,只有管理员可以对帖子信息进行删改。

3.2 功能需求分析

3.2.1 用户登录

功能描述 :根据用户输入的用户名和密码,并选择用户角色(学生、教师或管理员)进行登录验证,输入正确则提示“成功”并进入系统主界面。输入错误则提示“失败”,并返回登录界面。

功能约束 :用户登录必须输入用户名、密码,并选择用户角色。登录成功后会根据用户权限的不同,显示具有不同功能的系统主界面。

3.2.2 信息列表

功能描述 :在资料列表、视频列表、试题列表、学生管理、教师管理、论坛列表中,需要列出数据库中的数据。

功能约束 :需要按实际情况准确显示数据库表中的数据。

3.2.3 信息查询

功能描述 :在列表的上方,通常要有输入框用于查询某一条或某几条特定信息,比如根据标题查找资料,根据用户名查找学生等。

功能约束 :查询时不需要输入全部信息,只需输入部分信息。

3.2.4 信息添加

功能描述 :资料上传、视频上传、试题上传、用户添加、发表帖子、帖子回复等功能需要用到信息添加模块,添加时需按要求填写或选择信息,添加成功后会跳转到相应的列表界面。

功能约束 :添加信息时会自动获取当前时间并录入到数据表中,需要用到文件的上传。

3.2.5 信息修改

功能描述 :管理员可以学生和教师进行编辑,还可以对帖子进行编辑,编辑成功会更新数据表中相应的信息,跳转到对应的列表。

功能约束 :修改时也会自动修改数据表中的时间为当前时间。

3.2.6 信息删除

功能描述 :管理员和教师可以对资料、视频、试题进行删除,管理员可以对学生、教师的用户信息和帖子进行删除,删除成功会删除数据表中相应的信息并跳转到对应的列表。

功能约束 :删除数据会根据数据表的“id”进行删除。

3.2.7 退出登录

功能描述 :当用户点击“退出”按钮时,会清空登录时保存的信息,并跳转到用户登录界面。

3.3 相关技术简介

3.3.1 前端技术

在前端的开发设计上,使用了bootstrap和jquary进行辅助开发,提高了开发的效率。

Bootstrap,来自 Twitter,是目前很受欢迎的前端框架。Bootstrap是基于 HTML、CSS、JavaScript的,它简洁灵活,使得Web开发更加快捷。它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。国内一些移动开发者较为熟悉的框架,如WeX5前端开源框架等,也是基于Bootstrap源码进行性能优化而来。

jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。

3.3.2 后端技术

本系统采用了SpringMVC框架进行后台的开发,大大加快了开发速度,使后台代码更加简洁与清晰,利于后期拓展与维护。

Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。

Spring MVC框架提供了一个DispatcherServlet作用前端控制器来分派请求,同时提供灵活的配置处理程序映射、视图解析、语言环境和主题解析,并支持文件上传。Spring MVC还包含了多种视图技术,例如JSP、Velocity、Tiles、iText和POI等。Spring MVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

第4章 设计过程

4.1 总体设计

通过对用户需求和系统设计思想的分析,并根据界面展示需要,可以得出该系统可以分为六大模块:用户登录模块、教学资料模块、教学视频模块、试题资料模块、用户管理模块、论坛系统模块。

4.1.1 系统功能模块设计

经过分析,该系统要实现的是帮助学生和教师更好进行交流,达到辅助教学的目的。主要设计以下功能模块:

用户登录模块

用户在使用系统之前必须登录系统,登录时需要输入用户名、密码、验证码,选择用户角色进行登录。

教学资料模块

教学资料模块包括资料列表和资料上传两个部分,学生可以查看和下载资料,教师和管理员可以进行资料的增删改查。

教学视频模块

教学视频模块包括视频列表和视频上传两个部分,学生可以查看和下载视频,在线观看视频,教师和管理员可以进行视频的增删改查。

试题资料模块

试题资料模块包括试题列表和试题上传两个部分,学生可以查看和下载试题,教师和管理员可以进行试题的增删改查。

用户管理模块

管理员用户需要对学生用户和教师用户进行管理,包括学生列表、教师列表和用户添加三部分。用户添加功能需要首先选择角色,然后填写信息并提交。

论坛系统模块

论坛系统模块包括帖子列表和帖子发布两部分,所有用户都可以进行查看帖子列表和发表帖子,在帖子列表界面,点击帖子标题可以进入帖子详情,在帖子详情中用户可以查看回复内容及添加回复。

4.1.2 用户登录模块结构图

用户登录模块功能结构图,如图4.1所示:

4.1.3 管理员用户功能结构图

管理员用户功能结构图。如图4.2所示:

4.1.4 学生用户功能结构图

学生用户功能结构图,如图4.3所示:

4.1.5 教师用户功能结构图

教师用户功能结构图,如图4.4所示:

4.2 详细设计

4.2.1 系统主页面

系统主页面分为三部分,分别是头部,左侧菜单栏和右侧主内容区,在之前的设计中大多使用iframe标签进行布局,但我从网上了解到这个设计有很大的弊端,比如:

  • 页面样式调试麻烦,出现多个滚动条

  • 浏览器的后退按钮失效

  • 过多会增加服务器的HTTP请求

  • 小型的移动设备无法完全显示框架

  • 产生多个页面,不易管理

  • 不容易打印

  • 代码复杂,无法被一些搜索引擎解读

经过查阅资料,我了解到目前主流的应用都使用了ajax代替了iframe。把你本来想创建的iframe换成DIV。然后点击菜单的时候,调用ajax或者.load,调用后台,返回数据之后,直接填充到DIV里即可。

部分实现代码如下:

```html //左侧菜单代码

//AJAX部分代码 $("#nav .li").click(function(){ var current = $(this); target = current.find('a').attr('target'); //找到a的链接 $(".li").removeClass("active1"); current.addClass("active1"); $.get(target,function(data){ $("#navContent").html(data); }); }); ```

系统主界面如图4.5所示:

4.2.2 基本功能实现

用户登录模块

  • 功能描述:用户只有通过登录成功后才能进入系统,进行相应的操作。

  • 用户登录功能流程图,如图4.6所示

java //登录判断代码 @RequestMapping(value="/login") public void login(String role,String username,String password,String rem,HttpServletRequest request,HttpServletResponse response) throws IOException{ User auser=null; auser=new User(); auser.setPassword(password); auser.setUsername(username); auser.setRole(role); boolean flag=userService.login(auser); PrintWriter out = response.getWriter(); if(flag){//记住我 if("true".equals(rem)){ System.out.println(URLEncoder.encode(username,"utf-8")); System.out.println(URLEncoder.encode(role,"utf-8")); Cookie cook =new Cookie("username",URLEncoder.encode(username,"utf-8")); cook.setMaxAge(14*24*60*60); //两个星期 response.addCookie(cook); Cookie cook1 =new Cookie("role",URLEncoder.encode(role,"utf-8")); cook1.setMaxAge(14*24*60*60); //两个星期 response.addCookie(cook1); } HttpSession session=request.getSession(); session.setAttribute("username", username); session.setAttribute("role", role); out.print("1");//返回登录信息 }else{ out.print("0"); } out.flush(); out.close(); }

用户登录界面如图4.7所示:

教学资料模块

教学资料模块包括资料列表和资料上传两个部分。

  • 功能描述:教师和管理员进行教学资料的增删改查,学生可以对教学资料进行查看和下载。

java //资料列表功能代码 @RequestMapping(value="/list") public ModelAndView list(Integer currPage,String soukey){ ModelAndView mv=new ModelAndView(); String key="%%"; if(soukey!=null){ key="%"+soukey+"%"; } int pageSize=5; if(currPage==null||currPage==0){ currPage=1; } int index=(currPage-1)*pageSize; int totalCount=Integer.parseInt(dataService.findCount(key) .get(0).get("count(id)").toString()); Page page=new Page(); page.setPageSize(pageSize); page.setTotalCount(totalCount); page.setCurrPage(currPage); mv.addObject("page", page); List<Map<String,Object>> list=dataService.findAll(index,pageSize,key); mv.addObject("list", list); mv.addObject("key",soukey); mv.setViewName("list"); return mv; }

资料列表界面如图4.8所示:

资料上传界面如图4.9所示:

教学视频模块

教学视频模块分为视频列表和视频上传两部分。

  • 功能描述:教师和管理员可以进行教学视频的增删改查,学生用户可以在线播放视频和下载视频。

```java //视频上传功能代码 @RequestMapping(value="/upload") public ModelAndView upload(HttpServletRequest request,HttpServletResponse response) throws IOException{ multipartRequest=(MultipartHttpServletRequest)request; String title=""; String path=""; String author=""; String fname=""; response.setContentType("text/html;charset=utf-8"); try { //1.创建DiskFileItemFactory工厂对象 DiskFileItemFactory factory=new DiskFileItemFactory(); File f=new File("E:\temp"); if(!f.exists()) { f.mkdirs(); } //2.创建ServletFileUpload对象 ServletFileUpload fileupload=new ServletFileUpload(factory); fileupload.setHeaderEncoding("utf-8"); //3.解析request,得到上传文件的FileItem对象 List fileitems=fileupload.parseRequest(request); //获取字符流 PrintWriter writer=response.getWriter(); //遍历集合 for(FileItem fileitem:fileitems){ //判断是否为普通字段 if(fileitem.isFormField()){ //获得字段名和字段值 String name=fileitem.getFieldName(); if(name.equals("name")) { //如果name不为空,将其保存在value中 if(!fileitem.getString().equals("")) { String value=fileitem.getString("utf-8"); writer.print("上传者:"+value+"
"); author=value; }
} }else{ //获取上传文件名 String filename=fileitem.getName();

                //数据表标题
                title=filename;
                //处理上传文件
                if(filename!=null&&!filename.equals("")){
                    writer.print("上传的文件名称是:"+filename+"<br/>");
                    //截取出文件名
                    filename=filename.substring(filename.lastIndexOf("\\")+1);
                    //文件名需要唯一
                    filename=UUID.randomUUID().toString()+"_"+filename;
                    fname=filename;
                    //在服务器上创建同名文件
                    String webPath="/upload/";
                    //组合成完整的服务器路径
                    String filepath=request.getServletContext()

.getRealPath(webPath+filename); path=filepath; //创建文件 File file=new File(filepath); file.getParentFile().mkdirs(); file.createNewFile(); //获得上传文件流 InputStream in=fileitem.getInputStream(); //使用FileOutputStream打开服务器端的上传文件 FileOutputStream out=new FileOutputStream(file); //流的对拷 byte[] buffer=new byte[1024];//每次读取一个字节 int len; //上传文件的字节输出到服务器的上传文件输出流中 while((len=in.read(buffer))>0){ out.write(buffer,0,len); } //关闭流 in.close(); out.close(); //删除临时文件 fileitem.delete(); writer.print("上传成功!
"); } } } } catch (FileUploadException e) {
e.printStackTrace(); } Video video=new Video(); video.setTitle(title); video.setAuthor(author); video.setPath("upload\"+fname); System.out.println(fname); video.setTime(new Date()); videoService.add(video); return list(1,null); } ```

视频列表界面如图4.10所示:

视频上传界面如图4.11所示:

视频在线播放界面如图4.12所示:

试题资料模块

试题资料模块包括试题列表和试题上传两部分。

  • 功能描述:教师和管理员用户可以对试题进行增删改查,学生用户可以对试题进行查看和下载。

java //试题下载功能代码 @RequestMapping(value=("/download")) public void download(HttpServletRequest request,HttpServletResponse response) throws IOException{ /* * 获取下载地址,下载 */ //获取相对路径 String filename = request.getParameter("path"); //获取要下载的文件的物理路径 String filepath = request.getServletContext().getRealPath("/")+filename; int index = filename.lastIndexOf("/"); if(index!=-1) filename = filename.substring(index+1);//获取文件名 // 为了使下载框中显示中文文件名称不出乱码! String framename = filenameEncoding(filename, request); String contentType = request.getServletContext() .getMimeType(filename);//通过文件名称获取MIME类型 String contentDisposition = "attachment;filename=" + framename; //为了显示下载框 // 输入流 FileInputStream input = new FileInputStream(filepath); //设置头 response.setHeader("Content-Type", contentType); response.setHeader("Content-Disposition", contentDisposition); // 获取绑定了响应端的流(输出流) ServletOutputStream output = response.getOutputStream(); IOUtils.copy(input, output);//把输入流中的数据写入到输出流中。 input.close(); }

试题列表界面,如图4.13所示:

试题上传界面,如图4.14所示:

用户管理模块

学生和教师用户的账号需要由管理员用户来添加和分配,用户管理模块主要包括学生管理、教师管理和用户添加三部分。

  • 功能描述:管理员用户可以对学生和教师用户的用户信息进行增删改查。

java //用户信息添加和编辑代码 @RequestMapping(value="/edit") public ModelAndView edit(String id,String role,String username,String password,String sex,String email,String phone,String birthday) throws ParseException{ ModelAndView mv=new ModelAndView(); User auser=new User(); auser.setRole(role); auser.setUsername(username); auser.setPassword(password); auser.setSex(sex); auser.setEmail(email); auser.setPhone(phone); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); Date date = formatter.parse(birthday); auser.setBirthady(date); if(id==null||"".equals(id)){ userService.addUser(auser); }else{ auser.setId(Integer.parseInt(id)); userService.editUser(auser); } return list(role,1,null); }

学生用户管理界面,如图4.15所示:

教师用户管理界面,如图4.16所示:

用户添加界面,如图4.17所示:

论坛系统模块

论坛系统包括论坛列表和发表帖子两部分。

  • 功能描述:所有用户都可以进行帖子的发表、浏览和回复,管理员用户可以对帖子内容进行增删改查。

java //帖子回复功能代码 @RequestMapping(value="/replyAdd") public ModelAndView replyAdd(String forumid,String author,String lou,String content){ //敏感词过滤 content=KeyWordFilter.keyWordFilter(content); Reply areply=new Reply(); areply.setForumid(Integer.parseInt(forumid)); areply.setAuthor(author); areply.setContent(content); areply.setTime(new Date()); areply.setLou(Integer.parseInt(lou)); forumService.replyAdd(areply); return show(forumid,1); }

论坛列表界面,如图4.18所示:

论坛发帖界面,如图4.19所示:

帖子详情界面,如图4.20所示:

4.2.3 系统优势与特色

保存登录功能

  • 功能描述:用户在进行登录时,如果选中“记住我”复选框,系统会将用户信息保存到浏览器cookie中,保存时间为两周,在cookie生效时,用户进入系统时无需再次登录便可直接进入系统,极大地提升了用户体验,提高工作的效率。

java //保存用户信息到cookie中 if("true".equals(rem)){ Cookie cook =new Cookie("username",URLEncoder.encode(username,"utf-8")); cook.setMaxAge(14*24*60*60); //两个星期 response.addCookie(cook); Cookie cook1 =new Cookie("role",URLEncoder.encode(role,"utf-8")); cook1.setMaxAge(14*24*60*60); //两个星期 response.addCookie(cook1); } //从cookie中读取用户信息 Cookie cookies[] =request.getCookies(); if(cookies!=null){ for(int i=0;i<cookies.length;i++){ if(cookies[i].getName().equals("username")){ String username=cookies[i].getValue(); session.setAttribute("username", URLDecoder.decode(username, "utf-8")); } if(cookies[i].getName().equals("role")){ String role=cookies[i].getValue(); session.setAttribute("role", URLDecoder.decode(role, "utf-8")); } } }

用户登录界面如下:

AJAX动态验证功能

  • 功能描述:本系统使用AJAX技术进行用户名密码的验证,验证码的验证和用户添加时的用户名查重。实现了页面无刷新,在页面内与服务器通信,给用户的体验非常好。使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的响应能力。减轻服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,ajax的原则是“按需取数据”,可以最大程度的减少冗余请求,和响应对服务器造成的负担。

html //用户登录功能AJAX代码 $.ajax({ url:"user/login", data:{role:$("#role").val(),username:$("#username").val(),password:$("#password").val(),rem:$("#rem").is(':checked')}, dataType: 'text', type: 'post', scriptCharset: 'utf-8', success:function(result){ if(eval("("+result+")")=="0"){ $("#unerr").removeClass("text-success"); $("#unerr").addClass("text-danger"); $("#unerr").text("用户名或密码错误"); $("#username").focus(); }else if(eval("("+result+")")=="1"){ window.location.href = "user/success"; } } });

用户名密码验证和验证码验证界面如图4.22所示:

第5章 调试过程

5.1 遇到的问题

  • 登录时输入错误,并不会提示登录失败,而是网页直接报错

  • 提交表单时出现乱码

  • rs.next()不能正确获取数据库中的数据

  • 不知道什么时候使用post提交,什么时候使用get提交。

5.2 解决方法

  • 登录判断页面(login_do.jsp)中,登录信息session的保存没有放在判断是否为空的判断语句(if(list!=null))中,导致登录失败也会保存session,这时就无法正确获取登录信息,导致网页报错。将session放在判断语句中就可以解决

  • 表单提交时以get的请求发送到tomcat服务器后又会以默认的(ISO8859-1)解码,这时会出现中文乱码,改为post提交方式就解决了

  • ResultSet是一个结果集,即ResultSet存有一个表(通过执行查询数据库的语句生成),该表的当前行可以访问(当前行的初始位置是null),可以使用rs.next()方法移动到下一行(即表的第一行),如果新的当前行有效(即有值)就返回true,然后就可以使用get方法获取该行各列的值了,如果不存在下一行,则返回 false;因为这个方法会抛出一个SQLException,故要捕捉(try-catch)。直接使用rs.next()不能获取,前面要加上判断语句(if(rs.next)或while(rs.next))

  • get方法传输数据会在地址栏显示,并且数据不能过长,但会优先读取本地缓存,很多时候会加速用户访问。一般获取数据用get,进行数据更改用post。

第6章 系统测试

以下测试均以管理员身份进行登录,测试师生交流系统的各项功能。

6.1 用户登录模块

用户登录输入管理员用户密码,选择管理员角色,如图6.1所示:

点击登录按钮,跳转进入系统主界面,如图6.2所示:

由上图可知,用户登录功能运行成功。

6.2 系统功能模块

对教学资料、教学视频、试题资料、用户资料、论坛帖子的增删改查和资料下载功能较为类似,这里以教学资料为例进行测试。

资料列表功能测试

点击左侧菜单“教学资料”,再点击“资料列表”,进入资料列表界面。资料列表界面如图6.3所示:

点击右侧“下载”,可以进行资料的下载,如图6.4所示。

资料上传功能测试

点击左侧菜单中的“资料上传”,进入资料上传界面,输入作者信息,选择资料文件,如图6.5所示:

点击“提交”按钮,提示“成功”,跳转进入资料列表界面,可以看到刚添加的信息,如图6.6所示:

查询资料功能测试

进入资料列表,在上方的查询框中输入标题的关键字,如图6.7所示:

点击“搜索”按钮,后台查询并显示要查询的信息,如图6.8所示:

教学资料的删除功能测试

这里进行批量删除功能的测试,进入资料列表,选中需要删除的资料,如下图所示:

点击“批量删除”按钮,成功删除指定信息,并自动刷新界面,如图6.10所示:

教学视频播放测试

点击左侧“视频列表”菜单,点击标题或右侧的“播放”,即可进入播放界面,如图6.11所示:

论坛系统测试

点击右侧“论坛系统”菜单,再点击“论坛”,进入论坛列表界面,如图6.12所示:

点击标题,进入帖子详情界面,如图6.13所示:

在下方的回复栏中可以进行帖子回复,如图6.14所示:

帖子发表功能测试

点击右侧“发表帖子”菜单,进入发表帖子页面,填写信息,如图6.14所示:

点击“提交”按钮,帖子成功发表,并转到论坛列表界面,如图6.15所示:

第7章 课设小结

经过这段时间的课设学习,我收获了很多。在自己的努力和老师的耐心指导下,终于完成了这次课设的内容。这其中的酸甜苦辣只有经历过才体会得到,曾无数次找错误找到崩溃,无数次想代码想到忘记吃饭,这一刻才体会到收获的喜悦,这是发自内心的。

同时在这次课设中,我培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。我学会了很多学习的方法。而这是日后最实用的。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我的将来也有很大的帮助。以后,不管有多苦,我想我都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。以后遇到困难的问题,我除了苦恼,更多的是欣喜,因为解决了它我就能成长。

我明白了自己知识还比较欠缺,只是学习书本知识还是远远不够的,自己不会的东西还有太多,学习需要自己长期的积累,在以后的学习、工作中都应该不断的学习,将课本的理论知识与生活中的实践知识相结合,不断提高自己文化知识和实践能力。

第8章 参考文献

[1] 张娜. JavaWeb开发技术教程(第二版).清华大学出版社,2018.1

[2] 王珊,萨师煊.数据库系统概论(第5版).高等教育出版社,2017.3

[3] Cay S. Horstmann / Gary Cornell. JAVA核心技术(卷1) 机械工业出版社,2008

[4] [美] Bruce Eckel. Java编程思想 [第4版] 机械工业出版社,2007

参考文献

  • 基于JSP的校园网站的设计与实现(吉林大学·张帆)
  • 高校普通物理实验教学信息化管理系统(贵州大学·李琼敏)
  • 基于Web的远程教学系统的研究(中国农业大学·王新伟)
  • 基于JSP的校园网站的设计与实现(吉林大学·张帆)
  • 基于JSP技术动态教学管理系统设计与实现(电子科技大学·董豪)
  • 罗定中学师生交流管理系统的设计与实现(电子科技大学·李海萍)
  • 校园办公自动化系统的设计与实现(厦门大学·伏军)
  • 基于JSP的学生就业信息管理系统设计与实现(吉林大学·马骁)
  • 基于MVC架构实验教学系统的研究与实现(南京理工大学·周志平)
  • 基于web的信息共享系统的设计与实现(华中科技大学·保罗)
  • 高校普通物理实验教学信息化管理系统(贵州大学·李琼敏)
  • 罗定中学师生交流管理系统的设计与实现(电子科技大学·李海萍)
  • 基于XML/JSP的电子教学平台的设计与实现(苏州大学·杜奕)
  • 基于JSP技术的学生宿舍管理系统的设计与实现(沈阳工业大学·杨俊宝)
  • 基于MVC架构实验教学系统的研究与实现(南京理工大学·周志平)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕设导航 ,原文地址:https://m.bishedaima.com/yuanma/35441.html

相关推荐

发表回复

登录后才能评论