网上图书订购系统Word文档格式.docx

上传人:b****4 文档编号:7278029 上传时间:2023-05-08 格式:DOCX 页数:47 大小:4.72MB
下载 相关 举报
网上图书订购系统Word文档格式.docx_第1页
第1页 / 共47页
网上图书订购系统Word文档格式.docx_第2页
第2页 / 共47页
网上图书订购系统Word文档格式.docx_第3页
第3页 / 共47页
网上图书订购系统Word文档格式.docx_第4页
第4页 / 共47页
网上图书订购系统Word文档格式.docx_第5页
第5页 / 共47页
网上图书订购系统Word文档格式.docx_第6页
第6页 / 共47页
网上图书订购系统Word文档格式.docx_第7页
第7页 / 共47页
网上图书订购系统Word文档格式.docx_第8页
第8页 / 共47页
网上图书订购系统Word文档格式.docx_第9页
第9页 / 共47页
网上图书订购系统Word文档格式.docx_第10页
第10页 / 共47页
网上图书订购系统Word文档格式.docx_第11页
第11页 / 共47页
网上图书订购系统Word文档格式.docx_第12页
第12页 / 共47页
网上图书订购系统Word文档格式.docx_第13页
第13页 / 共47页
网上图书订购系统Word文档格式.docx_第14页
第14页 / 共47页
网上图书订购系统Word文档格式.docx_第15页
第15页 / 共47页
网上图书订购系统Word文档格式.docx_第16页
第16页 / 共47页
网上图书订购系统Word文档格式.docx_第17页
第17页 / 共47页
网上图书订购系统Word文档格式.docx_第18页
第18页 / 共47页
网上图书订购系统Word文档格式.docx_第19页
第19页 / 共47页
网上图书订购系统Word文档格式.docx_第20页
第20页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

网上图书订购系统Word文档格式.docx

《网上图书订购系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《网上图书订购系统Word文档格式.docx(47页珍藏版)》请在冰点文库上搜索。

网上图书订购系统Word文档格式.docx

JSP表单动作(form)提交给CtrlServlet控制

Servlet转发调用JSP页面

(3)数据传输

Servlet调用EJB对象获得数据

Servlet通过session参数传递给JSP页面

4、对象模型设计

(1)界面对象:

查询页search.jsp,图书目录页directory.jsp,购物车页cart.jsp,定单页order.jsp

(2)控制器:

CtrlServlet负责响应输入命令

包括:

模糊查询key、查看购物车cart、结算order、继续选书continue、再次查询search

(3)业务模型

图书信息:

Mybooklib实体类的会话Bean

购物车信息:

CartFacade会话Bean

5、动态转移关系图

CartFacade

Mybooklib

三、具体实现与算法设计

1、数据设计:

(1)图书信息(数据库表、查询结果)

书号ISBNchar[100]主键

书名Titlechar[100]

作者Authorchar[100]

出版社Presschar[100]

价格Pricedouble

(2)购物车信息

书号ISBNchar[100]

数量NumberString

(3)共享数据

a.查询结果和选中的图书信息

b.作为session参数

在NetBeans7.3版本中建立内置的数据库BookStore,建立表MYBOOKLIB,输入的测试数据如下:

2、EJB接口设计

(1)MybooklibFacade管理图书信息(封装数据库)

search(Stringkey):

根据关键字从数据库中查找出图书信息记录(数组);

条件:

书名、作者、出版社名中包含关键字;

根据书号,找出图书信息记录

具体算法如下:

publicArrayList<

Bookstore>

search(Stringkey){

List<

all=this.findAll();

if(all.isEmpty()){

returnnull;

}

ArrayList<

result=newArrayList<

();

for(Bookstorecurrent:

all){

if(current.getTitle().toLowerCase().contains(key)||current.getAuthor().toLowerCase().contains(key)||current.getPress().toLowerCase().contains(key)){

result.add(current);

returnresult;

}

(2)CartFacade管理购物车信息(本次会话有效)

add(Stringisbn,Stringtitle,doubleprice)添加记录

代码如下:

privateArrayList<

Cart>

record;

publicvoidadd(Stringisbn,Stringtitle,doubleprice){

record.add(newCart(isbn,title,price,1));

get()//获得记录数组

实现代码如下:

get(){

result=newArrayList<

();

for(Cartcurrent:

record){

result.add(newCart(current.getIsbn(),current.getTitle(),current.getPrice(),current.getNumber()));

publicvoidset(Stringisbn,Stringnumber){//设置购买数量

if(current.getIsbn().equals(isbn)){

current.setNumber(number);

3、控制器(CtrlServlet)的输入信息

(1)来自查询页search.jsp

page=“search”&

key=关键字

(2)来自图书目录页Directory.jsp

page=“Directory”

(3)来自购物车页Cart.jsp

page=“Cart”

(4)控制器(CtrlServlet)的实现代码

packagesession;

importbook.CartFacadeLocal;

importbook.MybooklibFacadeLocal;

importjava.io.IOException;

importjava.io.PrintWriter;

importjava.util.Enumeration;

importjava.util.logging.Level;

importjava.util.logging.Logger;

importjavax.ejb.EJB;

importjavax.naming.Context;

importjavax.naming.InitialContext;

importjavax.naming.NamingException;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

/**

*

*@authorAdministrator

*/

publicclassCtrlServletextendsHttpServlet{

CartFacadeLocalcartFacade;

//=lookupCartFacadeLocal();

@EJB

privateMybooklibFacadeLocalmybooklibFacade;

/**

*ProcessesrequestsforbothHTTP

*<

code>

GET<

/code>

and

POST<

methods.

*@paramrequestservletrequest

*@paramresponseservletresponse

*@throwsServletExceptionifaservlet-specificerroroccurs

*@throwsIOExceptionifanI/Oerroroccurs

protectedvoidprocessRequest(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

response.setContentType("

text/html;

charset=UTF-8"

);

PrintWriterout=response.getWriter();

request.setCharacterEncoding("

UTF-8"

try{

if(request.getSession().getAttribute(request.getLocalAddr())==null){

cartFacade=this.lookupCartFacadeLocal();

request.getSession().setAttribute(request.getLocalAddr(),this.cartFacade);

}else{

this.cartFacade=(CartFacadeLocal)request.getSession().getAttribute(request.getLocalAddr());

if(request.getParameter("

page"

).equals("

index"

)){//从index.jsp定向到Directory.jsp

Stringkeyword=request.getParameter("

key"

//request.getSession().setAttribute("

query"

keyword);

request.getSession().setAttribute("

directory"

mybooklibFacade.search(keyword.toLowerCase()));

response.sendRedirect("

Directory.jsp"

Directory"

)){//从Directory.jsp定向到Cart.jsp

if(!

this.cartFacade.initialed()){

this.cartFacade.create();

Enumerationnames=request.getParameterNames();

while(names.hasMoreElements()){

Stringname=(String)names.nextElement();

name.equals("

)&

&

!

submit"

)){

this.cartFacade.exist(request.getParameter(name))){

this.cartFacade.add(request.getParameter(name),mybooklibFacade.find(request.getParameter(name)).getTitle(),mybooklibFacade.find(request.getParameter(name)).getPrice());

cart"

this.cartFacade.get());

Cart.jsp"

request.getParameter("

重新查询"

)){//从Directory.jsp定向到index.jsp

index.jsp"

Cart"

)){//从Cart.jsp定向到Order.jsp

doublesum=0;

address"

this.cartFacade.set(name,request.getParameter(name));

sum+=mybooklibFacade.find(name).getPrice()*Integer.parseInt(request.getParameter(name));

fee"

sum);

request.getParameter("

));

Order.jsp"

}finally{

out.close();

//<

editor-folddefaultstate="

collapsed"

desc="

HttpServletmethods.Clickonthe+signonthelefttoeditthecode."

>

*HandlestheHTTP

method.

@Override

protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

processRequest(request,response);

protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

*Returnsashortdescriptionoftheservlet.

*@returnaStringcontainingservletdescription

publicStringgetServletInfo(){

return"

Shortdescription"

;

}//<

/editor-fold>

privateCartFacadeLocallookupCartFacadeLocal(){

Contextc=newInitialContext();

return(CartFacadeLocal)c.lookup("

java:

global/bookstore/bookstore-ejb/CartFacade!

book.CartFacadeLocal"

}catch(NamingExceptionne){

Logger.getLogger(getClass().getName()).log(Level.SEVERE,"

exceptioncaught"

ne);

thrownewRuntimeException(ne);

四、网上书店系统全部实现代码

在NetBeans7.3中先建立数据库Mybooklib,并且输入测试数据。

单击“文件/新建项目/JavaEE/企业应用程序”,输入项目名称bookstore,确定后会建立J2EE项目bookstore。

在bookstore-war节点单击右键,新建JSP文件。

1、图书查询页search.jsp代码:

<

%--

Document:

Search

Createdon:

2013-5-18,10:

33:

29

Author:

Administrator

--%>

%@pagecontentType="

text/html"

pageEncoding="

%>

!

DOCTYPEhtml>

html>

<

head>

metahttp-equiv="

Content-Type"

content="

charset=UTF-8"

title>

网上书店<

/title>

/head>

bodystyle="

background:

url('

image/7.jpg'

)no-repeat"

br>

center>

h1>

b>

fontcolor=Fuchsia>

欢迎来到网上书店^^<

/font>

/b>

/h1>

h2>

fontcolor=Lime>

请输入您要查询图书的关键字(书名、作者或出版社)<

/h2>

/center>

p>

FORMmethod="

post"

action="

CtrlServlet"

inputtype="

text"

name="

P>

hidden"

value="

/>

name="

Query"

value="

模糊查询"

/FORM>

/body>

/html>

2、图书目录页directory.jsp代码:

Directory

2013-5-27,12:

46:

35

%@pageimport="

book.Mybooklib"

java.util.ArrayList"

图书查询结果<

image/5.jpg'

fontcolor="

Purple"

查询结果<

%ArrayList<

Mybooklib>

result=(ArrayList<

)session.getAttribute("

if(result==null||result.isEmpty()){%>

Maroon"

抱歉,目前没有您需要的图书<

formname="

/form>

%}else{%>

formaction="

Aqua"

符合查询关键字的图书如下<

tableborder="

1"

>

tr>

th>

/th>

书名<

作者<

出版社<

价格<

/tr>

%for(Mybooklibcurrent:

result){%>

td>

checkbox"

%=current.getIsbn()%>

"

%=current.getIsbn

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2