职场文秘网

首页 > 条据书信 > 保证书 / 正文

JAVA学习网站的设计与实现毕业设计

2020-12-16 10:32:45

毕业论文(设计) 题 目  JAVA学习网站的设计与实现      院 系 专 业 计算机科学与技术 学生姓名 学 号 指导教师 职  称   副教授   二O一一 年 X 月 X日 声 明 本人郑重声明:
1、 持以“求实、创新”的科学精神从事研究工作。

2、 本论文是我个人在导师指导下进行的研究工作和取得的研究成果。

3、 本论文中除引文外,所有实验、数据和有关材料均是真实的。

4、 本论文中除引文和致谢的内容外,没有抄袭其他人或其他机构已经发表或撰写过的研究成果。

5、 其他同志对本研究所做的贡献均已在论文中作了声明并表示了谢意。

作者签名:
日 期:
    目 录 1.前言 1 2. 开发技术与相关工具简介 1 2.1 JSP技术 1 2.2 MyEclipse+Eclipse简介 2 2.3 Tomcat简介 3 2.4 SQL Server 2005数据库 3 3.系统概述与设计 4 3.1系统功能需求 4 3.2 系统结构设计 5 3.3 系统功能模块划分 5 4.数据库结构设计与实现 6 4.1 数据库概念结构设计 6 4.2数据库逻辑结构设计 8 5.组件设计 9 5.1数据库连接 9 5.2用户Bean的编写 9 5.3用户相关处理Bean的编写 10 5.4文章Bean的编写 13 5.5 文章处理Bean 13 5.6 资源Bean的编写 13 5.7 资源处理Bean 14 5.8 书籍Bean的编写 14 5.9书籍处理Bean 14 6.普通用户设计 14 6.1登录 14 6.2精品文章界面 16 6.3资料下载界面 16 6.4书籍推荐界面 18 7.管理员设计 19 7.1管理用户 19 7.2管理文章 21 7.3管理下载 22 7.4 管理图书 26 结束语 27 JAVA学习网站 摘要:本设计主要介绍了一个完整的Java学习网站,它包括系统概述与设计,数据库结构设计与实现,详细设计等主要部分,本系统给用户提供了一个学习Java的平台。系统概述与设计主要包含了系统功能需求、系统结构设计和系统功能模块划分等内容。数据库结构设计中构造出E-R图,主要完成用户管理,文章管理,用户评论,下载管理,书籍管理等功能,详细设计包含了系统各功能模块的具体实现。

关键词:JAVA 学习 ;
上传下载;
JSP;
文章浏览 1.前言 Java不仅可以用来开发大型的桌面应用程序,而且特别适合于Internet的应用开发。目前,Java语言不仅是一门正在被广泛使用的编程语言,而且已成为软件设计开发者应当掌握的一门基础语言。Java语言是面向对象编程,并涉及到网络、多线程等重要的基础知识,而且很多新的技术领域都涉及到了Java语言,因此,学习和掌握Java已成为共识,国内外许多大学已将Java语言列入了本科教学计划,IT行业对Java人才的需求正在不断的增长。

由于Java涉及的方面较多且内容较广,学习起来容易迷失方向,找不到一个正确的路线。有鉴于此,设计了这样一个系统。

本系统为一个Java学习网站,提供了文章阅读、书籍推荐、资料下载等全方面的功能,希望可以给想学习Java的同学提供一个学习的平台,给予一定的帮助。

文章阅读模块主要提供一些从网络上收集的与Java有关的经典文章,包括对技术的理解以及学习方法的介绍等。

书籍推荐给读者介绍了学习Java的经典书籍,而资料下载则提供了课件,教学视频等各式各样学习资源的下载功能。

2. 开发技术与相关工具简介 2.1 JSP技术 JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。

Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。

JSP与Java Servlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。

JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。目前较新的是JSP1.2规范,JSP2.0规范的征求意见稿也已出台。

JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。

自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。

JSP可用一种简单易懂的等式表示为:HTML+Java=JSP。

2.2 MyEclipse+Eclipse简介 Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。

Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。

Eclipse 最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT 和PDE。目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、Rational Software、Red Hat及Sybase等。Eclipse是一个开发源码项目,它其实是 Visual Age for Java的替代品,其界面跟先前的Visual Age for Java差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。近期还有包括Oracle在内的许多大公司也纷纷加入了该项目,并宣称Eclipse将来能成为可进行任何语言开发的IDE集大成者,使用者只需下载各种语言的插件即可。

MyEclipse,是一个十分优秀的用于开发Java, J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错。

MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。

2.3 Tomcat简介 Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;
而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。

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

这里的诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。

2.4 SQL Server 2005数据库 SQL Server 2005 是一个全面的数据库平台,使用集成的商业智能 (BI) 工具提供了企业级的数据管理。SQL Server 2005 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。SQL Server 2005 数据引擎是本企业数据管理解决方案的核心。此外 SQL Server 2005 结合了分析、报表、集成和通知功能。这使您的企业可以构建和部署经济有效的 BI 解决方案,帮助您的团队通过记分卡、Dashboard、Web services 和移动设备将数据应用推向业务的各个领域。

与 Microsoft Visual Studio、Microsoft Office System 以及新的开发工具包(包括 Business Intelligence Development Studio)的紧密集成使 SQL Server 2005 与众不同。无论您是开发人员、数据库管理员、信息工作者还是决策者,SQL Server 2005 都可以为您提供创新的解决方案,帮助您从数据中更多地获益。

3.系统概述与设计 系统采用目前较为流行的B/S架构。整个系统采用了JSP技术,在应用服务器端使用Tomcat服务器,在数据库服务器上采用了微软的SQL Server 2005。

3.1系统功能需求 用户可以分为普通用户和管理员用户两类。

普通用户拥有注册、登录、查看精品文章、评论文章、查看推荐书籍、下载资源等功能。

管理员拥有管理用户、管理文章、管理书籍、管理下载四个模块。

管理用户模块 (1)查看所有用户 (2)修改用户信息 (3)添加用户 (4)删除用户 管理文章 (1)查看所有文章信息 (2)修改文章 (3)添加文章 (4)删除文章 管理书籍 (1) 查看所有书籍信息 (2) 修改书籍信息 (3) 添加书籍信息 (4) 删除书籍信息 管理下载 (1)查看下载资料信息 (2)删除下载信息 (3)上传文件 3.2 系统结构设计 根据系统功能模块的划分,系统的结构设计如图3-1所示。

图3-1 系统结构设计图 3.3 系统功能模块划分 1.普通用户的权限如图3-2所示:
图3-2 普通用户权限 2.管理员用户的权限如图3-3所示:
图3-3 管理员用户权限图 4.数据库结构设计与实现 4.1 数据库概念结构设计 数据库在一个系统中起着十分重要的作用,数据库设计的好坏将直接影响到系统的效率和实现的效果。

本实例的实体有:用户信息实体、文章信息实体、用户评论实体、推荐书籍实体、下载资源实体。

用户 用户ID 用户名 用户邮箱 用户级别 用户信息实体属性图如图4-1所示。

图4-1 用户信息属性 文章 文章ID 用户标题 文章内容 文章信息实体的属性图如图4-2所示。

图4-2文章信息属性图 评论 评论ID 评论者 评论内容 文章ID 用户评论实体的属性图如图4-3所示:
图4-3 用户评论实体的属性图 书籍 书籍ID 书籍名称 书籍介绍 书籍封面图 推荐书籍实体的属性图如图4-4所示:
图4-4 推荐书籍实体的属性图 资源 资源ID 资源标题 资源链接图 下载资源实体的属性图如图4-5所示:
图4-5 下载资源实体的属性图 4.2数据库逻辑结构设计 数据库概念结构设计完后,现在可以将数据库概念结构转化为数据库系统所支持的实际数据模型,也就是数据库逻辑结构。

本系统使用SQL Server数据库,各个表的设计结果表4-1至表4-5所示。每个表格表示在数据库中的一个表。

用户信息表users如表4-1所示,记录管理员和普通用户信息。

表4-1用户表(users) 列名 数据类型 允许空 说明 useId int 用户ID username Varchar(20) yes 用户名 passwd Varchar(20) yes 用户密码 email Varchar(30) yes 用户邮箱 grade int yes 用户级别 文章表如表4-2所示,记录文章信息。

表4-2文章表(article) 列名 数据类型 允许空 说明 id int 文章ID title Varchar(50) yes 文章标题 detail text yes 文章内容 评论表如表4-3所示,记录评论信息。

表4-3评论表(remark) 列名 数据类型 允许空 说明 id int 评论ID username Varchar(20) yes 评论者 content text yes 评论内容 articleid int yes 文章ID 推荐书籍表如表4-4所示,记录书籍信息。

表4-4推荐书籍表(books) 列名 数据类型 允许空 说明 bookId int 书籍ID bookname Varchar(20) yes 书籍名称 bookinfo text yes 书籍简介 photo Varchar(20) yes 书籍封面图 下载资源表如表4-5所示,记录下载资源信息。

表4-5下载资源表(resourse) 列名 数据类型 允许空 说明 id int 资源ID title Varchar(50) yes 资源标题 Link Varchar(50) yes 资源链接 5.组件设计 5.1数据库连接 数据库连接在ConnB.java文件中,返回一个到数据库的连接,它是一个公共类,其他类如果要连接数据库,只需要构造这个类的对象就可以了。源代码如下所示:
public class ConnB { Connection ct=null; public Connection getCon(){ try{ Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver“); //得到连接 ct=DriverManager.getConnection (“jdbc:sqlserver://localhost:1433;databaseName=user;user=sa;passw ord=37917290;“); }catch(Exception e){ e.printStackTrace(); } return ct; } } 5.2用户Bean的编写 用户类UserBean主要负责描述用户的属性,以及这些属性的get和set方法,以下源代码中省略了部分属性的get和set方法,用户类的代码如下所示:
public class UserBean { private int userId; private String userName; private String passwd; private String email; private int grade; public int getUserId() { return userId; } ...//此处代码省略 public void setGrade(int grade) { this.grade = grade; } } 5.3用户相关处理Bean的编写 用户分普通用户和管理员,因此在进行用户操作时,要判断用户属于哪一种身份。对用户的相关处理存放在UserBeanCL.java文件中。

public class UserBeanCL { private Connection ct=null; private Statement sm=null; private ResultSet rs=null; private int pageCount=0; private int rowCount=0; private int pageSize=3; //得到页数 public int getPageCount() { try{ ct=new ConnB().getCon(); sm=ct.createStatement(); ResultSet rs=sm.executeQuery(“select count(*) from users“); if(rs.next()){ rowCount=rs.getInt(1); } if(rowCount%pageSize==0){ pageCount=rowCount/pageSize; }else{ pageCount=rowCount/pageSize+1; } } catch(Exception e){ e.printStackTrace(); }finally{ this.close(); } return pageCount; } 通过页数返回用户的详细信息如下所示,只要输入页数,就会返回该页数应该显示内容的集合。

public ArrayList<UserBean> result(int pageNow) { ArrayList<UserBean> al=new ArrayList<UserBean>(); try { ct=new ConnB().getCon(); sm = ct.createStatement(); rs = sm.executeQuery(“select top “ + pageSize + “ * from users where userId not in (select top “ + pageSize * (pageNow - 1) + “ userId from users) “); while (rs.next()) { UserBean ub = new UserBean(); ub.setUserId(rs.getInt(1)); ub.setUserName(rs.getString(2)); ub.setPasswd(rs.getString(3)); ub.setEmail(rs.getString(4)); ub.setGrade(rs.getInt(5)); al.add(ub); // 将al放到arrayList中 } } catch(Exception e){ e.printStackTrace(); } finally{ this.close(); } return al; } 根据输入的用户名、密码和级别判断是否允许用户登录的代码如下所示:
public boolean compare(String p,String u,int g) { boolean b=false; try{ ct=new ConnB().getCon(); sm=ct.createStatement(); rs=sm.executeQuery(“select top 1 passwd,grade from users where username='“+u+“'“); if(rs.next()){ String passwd=rs.getString(1); int grade=rs.getInt(2); System.out.print(grade); if(passwd.equals(p)&&grade==g){ b=true; } } }catch(Exception e){ e.printStackTrace(); }finally{ this.close(); } return b; } 5.4文章Bean的编写 文章Bean对应的文件叫ArticleBean.java,这个bean主要描述了文章资源的一些基本属性,以及这些属性值的get和set方法。以下代码中省略了部分属性的get和set方法。

public class ArticleBean { private int id; private String title; private String content; public int getId() { return id; } ...//此处代码省略 public void setContent(String content) { this.content = content; } } 5.5 文章处理Bean 此处代码与用户处理Bean类似,代码在ArticleCl.java文件中,可以查看源文件,此处不再详细列出。

5.6 资源Bean的编写 文章Bean对应的文件叫ArticleBean.java,这个bean主要描述了文章资源的一些基本属性,以及这些属性值的get和set方法。以下代码中省略了部分属性的get和set方法。

public class ResourseBean { private int id; private String title; private String link; public int getId() { return id; } ...//此处代码省略 public void setLink(String link) { this.link = link; } } 5.7 资源处理Bean 此处代码与用户处理Bean类似,代码在ResourseBeanCl.java文件中,可以查看源文件,此处不再详细列出。

5.8 书籍Bean的编写 public class BooksBean { private int id; private String bookname; private String bookinfo; private String photo; public int getId() { return id; } ...//此处代码省略 public void setPhoto(String photo) { this.photo = photo; } } 5.9书籍处理Bean 此处代码与用户处理Bean类似,代码在BookBeanCl.java文件中,此处不再详细列出。

6.普通用户设计 6.1登录 本网站需登录方可进入,只需输入用户名、密码即可,登录界面如图6-1所示:
图6-1 登录界面 用户登录输入用户名和密码,然后选择自己的身份(用户、管理员)然后单击“登录”按钮,将用户信息提交到logincl.jsp,由logincl.jsp页面完成数据库认证,验证成功后,根据用户身份自动跳转到相应页面,并把用户信息保存进session,以供其他页面判断用户是否已经登录。Logincl.jsp主要代码如下所示:
<% String password=request.getParameter(“password“);

String username=request.getParameter(“user“); int grade=Integer.parseInt(request.getParameter(“grade“)); UserBeanCL ubc=new UserBeanCL(); if(ubc.compare(password,username,grade)){ session.setAttribute(“uname“,username); session.setAttribute(“grade“,grade+““); switch (grade) { case 1:response.sendRedirect(“first.jsp“);break; //登录用户是学生 case 2:response.sendRedirect(“admin.jsp“);break; //登录用户是管理员 default:response.sendRedirect(“first.jsp“);break; } } else{ response.sendRedirect(“index.jsp“); } %> 6.2精品文章界面 该界面显示所有文章的超链接,点击链接会显示文章的详情,其运行效果如图6-2所示:
图6-2 文章列表 每一篇文章都有相应的评论区域,用户可在文本域中输入想要评论的内容,并单击发表评论按钮即可实现评论功能,其效果截图如下(图6-3) 图6-3 评论界面 6.3资料下载界面 该界面提供一些Java相关学习资源的下载,当点击想要下载的文件对应的链接时将会弹出下载的对话框,其代码包含在resource.jsp文件中,主要代码如下所示:
<% for(int i=0;i<al.size();i++) { ResourseBean rb=new ResourseBean(); rb=(ResourseBean)al.get(i); %> <tr><td height=“40“><%=rb.getTitle()%>&nbsp;&nbsp;&nbsp;&nbsp;<a href=“download/<%=rb.getLink()%>“>下载</a></td></tr> <% } %> 运行的效果如图6-4,6-5所示:
图6-4 课件下载界面 点击下载后弹出的下载对话框:
图6-5 下载对话框 6.4书籍推荐界面 书籍推荐界面向用户推荐了一些有利于JAVA学习的经典书籍,分成两行显示,每行显示三本书,包括书的封面图和书籍的名称,当单击书籍的名称时会进入书籍的简介界面,其运行效果截图如6-6,6-7所示:
图6-6 书籍推荐界面 点击书籍名称后所对应的书籍简介界面:
图6-7 书籍简介界面 7.管理员设计 当用户以管理员身份登录后将进入管理员界面,它提供了管理用户、管理文章、管理书籍、管理下载资源等功能。

7.1管理用户 管理用户界面完成了显示所有用户列表、删除用户、修改用户等功能,其运行截图如图7-1所示:
图7-1 用户管理界面 当用户点击修改用户时,讲进入修改用户界面,其中用户ID为只读,不可修改,其他属性均可做相应的修改,其效果如图7-2所示:
图7-2 修改用户界面 修改用户界面对应的代码包含在updateUser.jsp文件中,主要代码如下所示:
<centre> <h1>修改用户信息</h1> <form action=“UsersClServlet?flag=updataUser“ method=“post“> <table border=“1“> <tr><td>用户ID</td><td><input type=“text“ readonly=“readonly“ name=“userId“ value=“<%=request.getParameter(“userId“)%>“/></td></tr> <tr><td>用户名</td><td><input type=“text“ name=“userName“ value=“<%=request.getParameter(“userName“) %>“/></td></tr> <tr><td>密码</td><td><input type=“password“ name=“passwd“ value=“<%=request.getParameter(“passwd“) %>“/></td></tr> <tr><td>用户级别</td><td><input type=“text“ name=“grade“ value=“<%=request.getParameter(“grade“) %>“/></td></tr> </table><br> <input type=“submit“ value=“修改用户“/>&nbsp&nbsp <input type=“reset“ value=“重置“/> </form> </centre> 当修改完后单击修改用户按钮,将把修改后的数据提交给UsersClServlet,UsersClServlet调用相应的组件对数据库中存放的数据进行修改,修改用户信息的代码存放在UserBeanCl中,其核心代码如下所示:
public boolean updateUser(String id,String name,String passwd,String grade){ boolean b=false; try{ ct=new ConnB().getCon(); sm=ct.createStatement(); int a=sm.executeUpdate(“update users SET username='“+name+“',passwd='“+passwd+“',grade='“+grade+“' where userId='“+id+“'“); //a是修改的记录数 if(a==1){ b=true; } }catch(Exception e){ e.printStackTrace(); } return b; } 当用户单击删除用户是,讲弹出对话框,询问是否确定删除,其对应的JavaScript代码如下所示:
<script type=“text/javascript“> <!-- function abc(){ return window.confirm(“你真的要删除吗?“); } --> </script> 7.2管理文章 管理文章界面列出了存放在数据库中的所有文章,并提供了对文章的删除和添加等功能,运行截图如图7-3所示:
图7-3 管理文章界面 单击添加文章,将进入到添加文章的界面,如图7-4所示:
图7-4 添加文章界面 单击确定按钮后,将提交给ArticleServlet进行处理,其代码如下所示:
else if(flag.equals(“addArticle“)){ //完成添加用户 String title=request.getParameter(“title“); String content=request.getParameter(“content“); ArticleCl ac=new ArticleCl(); if(ac.addArtical(title, content)) request.getRequestDispatcher(“suc.jsp“).forward(request,response); }else{ request.getRequestDispatcher(“err.jsp“).forward(request,response); } } 删除文章功能的实现与删除用户类似,这里就不再重复。

7.3管理下载 管理下载界面列出了所有可供下载资源的基本信息,并且提供资料的删除以及上传功能,其效果如图7-5所示:
图7-5 管理下载界面 下面详细叙述上传功能的实现。

上传表单的源代码如下所示:
<form action=“Upload“ method=“post“ enctype=“multipart/form-data“ name=“form1“> <table width=“60%“ border=“0“ cellspacing=“0“ cellpadding=“0“> <tr> <td>标&nbsp;&nbsp;&nbsp;题:
<input type=“text“ name=“title“></td> </tr> <tr> <td>选择路径:<input type=“file“ name=“file“> <input type=“submit“ name=“Submit“ value=“上传“></td> </tr> </table> </form> </center> 上传功能的实现直接利用现有的两个jar包,分别为commons-fileupload-1.2.2.jar和commons-io-1.4.jar,可以从网上直接下载,只需要把这两个.jar包加到环境变量的classpath中,或者放到Tomcat的common/lib下,便可以应用相关组件。

实现上传功能的主要代码存放在upload.java文件中,其主要代码如下所示:
public class Upload extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) { return; } public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException { //req.setCharacterEncoding(“gb2312“); String title=““; String fileName=““; if(ServletFileUpload.isMultipartContent(req)) { DiskFileItemFactory factory = new DiskFileItemFactory(); /** * 临时文件存储路径要真实存在 */ factory.setRepository(new File(“c:\\temp“)); //内存最大占用 factory.setSizeThreshold(1024000); ServletFileUpload sfu = new ServletFileUpload(factory); //单个文件最大值byte sfu.setFileSizeMax(102400000); //所有上传文件的总和最大值byte sfu.setSizeMax(204800000); sfu.setHeaderEncoding(“gb2312“); List items = null; try { items = sfu.parseRequest(req); } catch (SizeLimitExceededException e) { System.out.println(“size limit exception!“); } catch(Exception e) { e.printStackTrace(); } Iterator iter = items.iterator(); while(iter.hasNext()) { FileItem item = (FileItem)iter.next(); //简单的表单域 if(item.isFormField()) { System.out.print(“form field:“); System.out.print(item.getFieldName()); //System.out.print(item.getString(“gb2312“)); title=item.getString(“gb2312“); } //文件域 else if(!item.isFormField()) { System.out.println(“client name:“ + item.getName()); String t_fileName= item.getName().substring(item.getName().lastIndexOf(“\\“)); fileName=t_fileName.substring(1, t_fileName.length()); BufferedInputStream in = new BufferedInputStream(item.getInputStream()); //文件存储在工程的upload目录下 BufferedOutputStream out = new BufferedOutputStream( new FileOutputStream(new File(“C:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/javaStudy/download/“ + fileName))); Streams.copy(in, out, true); ResourseBeanCl rbc=new ResourseBeanCl(); if(rbc.addResourse(title, fileName)){ res.sendRedirect(“suc.jsp“); }else{ res.sendRedirect(“err.jsp“); } } } } else { System.out.println(“enctype error!“); } } } 7.4 管理图书 管理图书界面列出了所有推荐书目的基本信息,并且提供了删除功能,其效果如图7-6所示:
图7-6 管理图书界面 结束语 通过这次的毕业设计,我不仅拓宽了自己的知识面,还在实践过程中巩固和加深了自己所学的理论知识,使自己的技术素质和实践能力有了进一步的提高,同时我的专业水平也有了很大的进步。

同时,在软件开发方面也累积了不少经验,特别是在对软件开发工具不很熟悉的情况下,通过自己的学习和导师的指导完成了设计任务。并在设计过程中,自己分析问题和解决问题的能力都得到了锻炼和提高,完善了自己的知识结构,加深了对知识的理解。

这次毕业设计完成后,体会颇多,在学与做的过程中,取长补短,不断学习新的知识,吸取经验,达到进步的目的。在学与做的过程中自身的努力以及相关图书资料的帮助,逐渐熟悉了JSP在数据库方面的应用知识。程序开发的一般过程和对数据库知识的进一步的了解,在这个快速发展的当代社会里,数据库已经普遍应用在各个领域。在这次的毕业设计中我学习到不少的数据库知识,但由于自己的理论知识水平有限,实践知识和设计经验不足,在设计过程中难免存在一些问题,甚至错误。恳请各位老师批评指正,以使我在以后的工作和实践中加以改进和提高。

致谢 本设计在XX老师的悉心指导和严格要求下业已完成,从课题选择、方案论证到具体设计和调试,林美华老师认真负责的工作态度,无论在理论上还是在实践中,都给予我很大的帮助,使我得到不少的提高,这对于我以后的学习有一种巨大的帮助,感谢她耐心的辅导。通过该论文的设计,清晰了做项目的流程,一步步踏实完成,我明白了实践的重要性,光学习课本知识是不够的,需要不断了实践才能把知识掌握的清楚牢记。接下来还有详细设计代码部分还没有完成,我会尽自己最大努力配合老师指导完成该论文项目。感谢老师的指导,感谢学校为我们布置这样一个任务,让我们清楚指导自己的实力以及今后的道路该如何走。

参考文献 [1]《SQL Server数据库应用设计案例汇编》刘宇君编著 中国水利水电出版社2008. [2]《SQL语法范例大全:SQL Server、Oracle通解》王艳平编著 电子工业出版社2008. [3]《SQL Server求生秘籍》(美)Ken Henderson主编 人民邮电出版社2009. [4]《SQL技术手册》(美)Kevin E.Kline, Daniel Kline, Brand Hunt著 东南大学出版社2008. [5]《Microsoft SQL Server 2000 database essentials step by step》Solid Quality Learning. Shanghai World Publishing Corporation,2007. [6]《Programming Microsoft SQL Server 2000》Brust, Andrew J. Shanghai World Publishing Corporation,2007. [7]《Java程序设计教程》赵辉,郑山红,王璐等编著 中国水利水电出版社2008. [8]《Java应用开发技术基础》卫颜俊编著 西安交通大学出版社2008. [9]《JavaScript捷径教程》(加)Jonathan Snook[等]著 人民邮电出版社2009. [10]《JSP网络开发入门与实践》曾健主编 电子工业出版社2008. [11]《Servlet与JSP核心技术》(美)Marty Hall著 人民邮电出版社2001. JAVA learning website ABSTRACT This design is mainly introduced a complete Java study site, it includes system an overview and design, database structure design and implementation, and detailed design etc., the main part, This system provides the users with a learning Java platform. This paper mainly includes the system design and function requirements, system structure design and system function module partition, etc. Database structure design constructed e-r chart, user management, the article mainly complete management, customer reviews, download management, books management, and other functions, the detailed design includes the functional modules of the system implementation. Key word: JAVA learning; Uploads and downloads

Tags: 毕业设计   学习网站   设计  

搜索
网站分类
标签列表