javaWeb课程设计图书管理系统.docx

上传人:b****5 文档编号:7598217 上传时间:2023-01-25 格式:DOCX 页数:14 大小:223.39KB
下载 相关 举报
javaWeb课程设计图书管理系统.docx_第1页
第1页 / 共14页
javaWeb课程设计图书管理系统.docx_第2页
第2页 / 共14页
javaWeb课程设计图书管理系统.docx_第3页
第3页 / 共14页
javaWeb课程设计图书管理系统.docx_第4页
第4页 / 共14页
javaWeb课程设计图书管理系统.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

javaWeb课程设计图书管理系统.docx

《javaWeb课程设计图书管理系统.docx》由会员分享,可在线阅读,更多相关《javaWeb课程设计图书管理系统.docx(14页珍藏版)》请在冰豆网上搜索。

javaWeb课程设计图书管理系统.docx

javaWeb课程设计图书管理系统

 

 

1系统设计关键技术及开发工具

收发室邮件管理系统主要采用JSP,Servlet、Struts、AJAX,CSS/XML,javascript等相关技术、采用oracle数据库、ApacheTomcat5.5作为web服务器、开发工具为Myeclispe集成软件开发环境。

整体设计遵循软件工程的方法,经过需求分析、系统设计、详细设计、文档和代码的编制、模块测试和系统实现这几个阶段,下面就对这几种技术和方法做一个概述。

1.1Struts技术

Web应用分为交互层(InteractionLayer),表现数据,收集数据,也就是视图层,接受请求,通过处理层完成相应的响应。

(V,C)和处理层(ProcessingLayer),完成数据的处理,也就是业务层(M)。

MVC的设计模式(应用观察者模式的框架模式)表现为M层:

Model(Businessprocesslayer),模型层,操作数据的业务处理层,并独立于表现层(Independentofpresentation)。

V层:

View(Presentationlayer),视图层,通过客户端数据类型显示数据,并回显模型层的执行结果。

C层:

Controller(Controllayer),控制器,也就是视图层和模型层桥梁,控制数据的流向,接受视图层发出的事件,并重绘视图。

正如上文所讲,MVC框架的实现模型有两种:

模型一(Page-centric):

JSP+JavaBean,JSP既充当控制,又充当视图,以页面为核心,JSP使用jsp:

useBean,它不能够实现不同的页面,显示不同的数据,需要借助于中间类来调用JavaBean的方法才能实现。

模型二(Servlet-centric):

JSP+Servlet+JavaBean,以控制为核心,JSP只负责显示和收集数据,Sevlet,连接视图和模型,将视图层数据,发送给模型层,JavaBean,分为业务类和数据实体,业务类处理业务数据,数据实体,承载数据,基本上大多数的项目都是使用这种MVC的实现模式。

Struts框架是使用MVC的实现模式二来实现的,也就是以控制器为核心。

它提供了一些组件使用MVC开发应用程序:

Model:

Struts没有提供model类。

这个商业逻辑必须由Web应用程序的开发者以JavaBean或EJB的形式提供

View:

Struts提供了actionform创建formbean,用于在controller和view间传输数据。

此外,Struts提供了自定义JSP标签库,辅助开发者用JSP创建交互式的以表单为基础的应用程序,应用程序资源文件保留了一些文本常量和错误消息,可转变为其它语言,可用于JSP中。

Controller:

Struts提供了一个核心的控制器ActionServlet,通过这个核心的控制器来调用其他用户注册了的自定义的控制器Action,自定义Action需要符合Struts的自定义Action规范,还需要在struts-config.xml的特定配置文件中进行配置,接收JSP输入字段形成Actionform,然后调用一个Action控制器。

Action控制器中提供了model的逻辑接口。

[1]

1.2Servlet技术

servlet是使用JavaServlet应用程序设计接口(API)及相关类和方法的Java程序。

除了JavaServletAPI,Servlet还可以使用用以扩展和添加到API的Java类软件包。

Servlet在启用Java的Web服务器上或应用服务器上运行并扩展了该服务器的能力。

Javaservlet对于Web服务器就好象Javaapplet对于Web浏览器。

Servlet装入Web服务器并在Web服务器内执行,而applet装入Web浏览器并在Web浏览器内执行。

JavaServletAPI定义了一个servlet和Java使能的服务器之间的一个标准接口,这使得Servlets具有跨服务器平台的特性。

  Servlet通过创建一个框架来扩展服务器的能力,以提供在Web上进行请求和响应服务。

当客户机发送请求至服务器时,服务器可以将请求信息发送给Servlet,并让Servlet建立起服务器返回给客户机的响应。

当启动Web服务器或客户机第一次请求服务时,可以自动装入Servlet。

装入后,Servlet继续运行直到其它客户机发出请求。

Servlet的功能涉及范围很广。

例如,Servlet可完成如下功能:

  

(1)创建并返回一个包含基于客户请求性质的动态内容的完整的HTML页面。

  

(2)创建可嵌入到现有HTML页面中的一部分HTML页面(HTML片段)。

  (3)与其它服务器资源(包括数据库和基于Java的应用程序)进行通信。

  (4)用多个客户机处理连接,接收多个客户机的输入,并将结果广播到多个客户机上。

例如,Servlet可以是多参与者的游戏服务器。

  (5)当允许在单连接方式下传送数据的情况下,在浏览器上打开服务器至applet的新连接,并将该连

接保持在打开状态。

当允许客户机和服务器简单、高效地执行会话的情况下,applet也可以启动客户浏览器和服务器之间的连接。

可以通过定制协议或标准(如IIOP)进行通信。

  (6)对特殊的处理采用MIME类型过滤数据,例如图像转换和服务器端包括(SSI)。

  (7)将定制的处理提供给所有服务器的标准例行程序。

例如,Servlet可以修改如何认证用户。

(8)网站流程的控制。

例如,用户登陆[1]

1.3开发工具MyEclispe简介

Eclipse是一个开放源代码的、基于Java的可扩展开发平台。

就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。

MyEclispe是基于Eclispe的J2EE应用程序开发工具,此系统就是采用MyEclispe6.0来开发的,它集中了开源和商业软件的开发支持的大多数框架,方便易用,功能强大,它支持开发基于Spring、Hibernate、Struts、JSF、JPA、EJB、WebService等技术的项目。

[6]

2系统需求分析

2.1系统整体分析

在当今高速发展的信息时代,计算机技术已经被应用于社会的各个方面,取代了很多人工的操作,这样既提高了效率,又节省了劳动力。

学校等机关图书管理也应该跟上科技的发展,运用计算机进行自动化的管理。

本课题在研究了学校图书管理运营模式之后,从学校的实际需求出发,采用当前较为流行的B/S结构和JSP动态网页技术,基于Oracle数据库,设计并实现一个功能完善的小型图书管理系统。

本系统主要包括图书管理,借还书管理和读者管理三大模块。

本文是该系统需求文档,对系统功能结构进行分析,并对数据流程进行了图解,以及对这次设计进行了总结。

2.2系统数据分析

本系统共有5张数据表:

2.3数据流图

2.4功能模块的核心代码

网站后台开发目录结构:

用户登陆的核心代码:

packagecom.servlet;

importjava.io.IOException;

importjava.io.PrintWriter;

importjava.sql.ResultSet;

importjava.sql.SQLException;

importjava.util.HashMap;

importjava.util.Iterator;

importjava.util.Map;

importjava.util.Set;

importjavax.servlet.ServletConfig;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importcom.connectDb;

importcom.toChinese;

publicclassservletGoextendsHttpServlet{

publicvoidinit(ServletConfigconfig)throwsServletException{

super.init();

}

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throwsIOException{

connectDbconD=newconnectDb();

toChineset=newtoChinese();

ResultSetrs1=conD.con("selectusernamefromreader");

ResultSetrs2=conD.con("selectpasswordfromreader");

response.setContentType("text/html;charset=gb2312");

PrintWriterout=response.getWriter();

Stringstring1=t.codeToString(request.getParameter("username"));

Stringstring2=t.codeToString(request.getParameter("userpassword"));

Mapmap=newHashMap();

try{

while(rs1.next()&&rs2.next()){

map.put(rs1.getString

(1),rs2.getString

(1));

}

}catch(SQLExceptione){

e.printStackTrace();

}

SetkeySet=map.keySet();

Iteratoriterator=keySet.iterator();

while(iterator.hasNext()){

if(!

(iterator.next().equals(string1))){

iterator.remove();

}

}

if(keySet.isEmpty()){

out.print("用户名或密码错误,点此重新登陆");

}

else{

Stringstring3=map.get(string1);

if(!

string3.equals(string2))

out.print("用户名或密码错误,点此重新登陆");

else{

Object[]b=keySet.toArray();

Stringstr=b[0].toString();

response.sendRedirect("../library.jsp?

username="+str);

System.out.print(str);

}

}

}

}

使用jsp验证用户名是否重名,用户是否已经被注册:

<%@pagecontentType="text/html;charset=gb2312"%>

<%@pageimport="com.toChinese"%>

<%@pageimport="java.sql.*"%>

<%@pageimport="java.util.*"%>

useBeanid="conD"class="com.connectDb"scope="page">

useBean>

useBeanid="qb"class="com.QueryBean"scope="page">

useBean>

<%

ResultSetrs=conD.con("selectusernamefromreader");

Listlist=newArrayList();

while(rs.next()){

list.add(rs.getString

(1));

}

toChineset=newtoChinese();

Stringstring1=t.codeToString(request.getParameter("username"));

Stringstring2=t.codeToString(request.getParameter("userpassword"));

qb.setConnection("oracle.jdbc.driver.OracleDriver",

"jdbc:

oracle:

thin:

@127.0.0.1:

1521:

orcl","yexiang","ye123");

StringstringSqlString="insertintoreadervalues(reader_id.nextval,'"+string1+"','"+string2+"')";

qb.setQuerystatement(stringSqlString);

//设置SQL语句

Iteratoriterator=list.iterator();

while(iterator.hasNext()){

if(!

iterator.next().equals(string1))

iterator.remove();

}

if(list.isEmpty()){

qb.insertRecord();//插入数据

out.print("注册成功");

}

else

{out.print("注册失败,用户名已注册");}

%>

接收新用户注册


您注册的用户名是:

<%=t.codeToString(request.getParameter("username"))%>

Struts的使用与配置

Web.xml

xmlversion="1.0"encoding="UTF-8"?

>

xmlns="

xmlns:

xsi="http:

//www.w3.org/2001/XMLSchema-instance"

xsi:

schemaLocation="

ThisisthedescriptionofmyJ2EEcomponent

ThisisthedisplaynameofmyJ2EEcomponent

servletGo

com.servlet.servletGo

ThisisthedescriptionofmyJ2EEcomponent

ThisisthedisplaynameofmyJ2EEcomponent

booksServlet

com.servlet.booksServlet

ThisisthedescriptionofmyJ2EEcomponent

ThisisthedisplaynameofmyJ2EEcomponent

serachServlet

com.servlet.serachServlet

 

servletGo

/servlet/servletGo

booksServlet

/servlet/booksServlet

serachServlet

/servlet/serachServlet

enter.html

redisp

com.bean.ReDispatcherFilter

includeServlets

servletGo,booksServlet,serachServlet

redisp

/*

struts2

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

struts2

/*

Struts.xml

xmlversion="1.0"encoding="UTF-8"?

>

DOCTYPEstrutsPUBLIC

"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.3//EN"

"http:

//struts.apache.org/dtds/struts-2.3.dtd">

/main/frame_c.jsp

--Addpackageshere-->

3系统界面展示

3.1页面

登陆:

注册:

主界面:

最新入库

搜索书籍

 

我要借书

4设计总结

在需求分析部分,我们认真阅读了图书管理系统的功能简述,在此基础上把整个系统按处理功能分解成若干模块,进行数据分解,画出了总系统和各模块的数据流图、数据项表、数据结构表、数据流表等。

我们得到的需求分析的主要结果,基本反映了用户的需求。

在概念结构设计时,我们采用自底向上的设计方法。

将数据流程图中的子图抽象为E-R图,然后再合并各个分E-R图。

设计出的整体概念结构内部具有一致性,不但能满足需求分析阶段确定的所有要求,而且能准确反映原来的每个子视图的结构。

并且给出了各个实体的描述,对实体和关系进行了调整,消除了冗余实体和冗余关系。

在逻辑结构设计时,我们选择oracle所支持的数据模型,适于描述和表达概念结构的。

我们遵循一定原则进行实体、属性和联系的转换。

优化了关系数据模型,根据具体的应用确定范式和关系模式的分解与合并。

确定了外模式和数据视图。

在使用servlet时遇到了许多参数传输错误,最后发现大多数都是路径问题

解决完就没问题了,操作数据库时sql语句要符合规范,明白怎么使用参数来查寻。

在使用struts2时配置与servlet冲突,struts将所有请求都拦截了,经过网上XX后再struts配置前加了servlet的配置就没问题了。

这次实验我熟悉了很多新学到了技术,学习到了解决问题的方法,收获颇多。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1