基于JAVA與JSP下的網(wǎng)上商城設(shè)計說明_第1頁
基于JAVA與JSP下的網(wǎng)上商城設(shè)計說明_第2頁
基于JAVA與JSP下的網(wǎng)上商城設(shè)計說明_第3頁
基于JAVA與JSP下的網(wǎng)上商城設(shè)計說明_第4頁
基于JAVA與JSP下的網(wǎng)上商城設(shè)計說明_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、基于JAVA與JSP下的網(wǎng)上商城設(shè)計專 業(yè):網(wǎng)絡工程年 級:學 號:作 者:指導老師:完成時間:2011年11月說 明本系統(tǒng)是由我和王為政兩個人合作完成25 / 29基于JAVA的網(wǎng)上商城系統(tǒng)的開發(fā)與實現(xiàn)摘要:網(wǎng)上商城系統(tǒng)是基于JAVA的一個電子商務系統(tǒng),其主要作用就是實現(xiàn)商城的一些功能,如:買賣商品,計算積分,查看產(chǎn)品的具體信息,與賣家聯(lián)系,交友等功能!最后對整個網(wǎng)上商城系統(tǒng)作了一個簡要的總結(jié)并附錄上了一些功能模塊的主要源代碼。關(guān)鍵詞:網(wǎng)上商城系統(tǒng);B/S模式;JSP技術(shù);mysql數(shù)據(jù)庫。Based on JAVA online mall system development and im

2、plementationAbstract: Online mall system is based on JAVA a e-commerce system, the main function is to realize mall of some functions, such as: buying and selling goods, calculated integral, check product specific information, contact the seller, the function such as friends!The last of the whole on

3、line mall system gives a brief summary and appendix on some function module's main source code.Keywords:online mall system; The B/S mode; JSP technology; Mysql database.摘要I目錄:11 引言22 高校教材管理系統(tǒng)的需求分析22.1 用戶需求分析22.1.1 普通用戶主要需要:22.1.2 系級管理員主要需要:22.2 數(shù)據(jù)字典的描述22.3 教材管理系統(tǒng)的數(shù)據(jù)流圖23網(wǎng)上商城系統(tǒng)分析與設(shè)計33.1 系統(tǒng)設(shè)計總體思想、目

4、標33.2 網(wǎng)上商城系統(tǒng)的ER模型33.3 網(wǎng)上商城系統(tǒng)結(jié)構(gòu)、功能設(shè)計33.3.1 系統(tǒng)結(jié)構(gòu)設(shè)計33.3.2 系統(tǒng)功能模塊設(shè)計33.4 網(wǎng)上商城系統(tǒng)的數(shù)據(jù)庫設(shè)計34 系統(tǒng)平臺、計算模式與技術(shù)34.1 計算模式的進化與本系統(tǒng)選用的模式優(yōu)越性34.1.1 集中式管理主機/終端模式44.1.2 Client/Server模式44.1.3 Brower/Server模式44.1.4 系統(tǒng)采用B/S三層體系結(jié)構(gòu)模式的優(yōu)越性44.2 JSP 技術(shù)44.2.2 JSP建對象64.3 mysql數(shù)據(jù)庫94.3.1 mysql概述94.3.2 mysql常用命令95 系統(tǒng)實現(xiàn)115.1 用戶登陸流程115.2

5、買家登陸流程115.3 賣家登陸流程135.4 用戶注冊流程145.4.1 用戶注冊流程圖145.5 數(shù)據(jù)庫表單創(chuàng)建語句156 網(wǎng)上商城系統(tǒng)設(shè)計的技術(shù)關(guān)鍵156.1 JSP主要網(wǎng)頁代碼156.2 mysql數(shù)據(jù)庫表單截圖226.3 Java語言控制主要類代碼237 系統(tǒng)試運行結(jié)果與評價261 引言隨著計算機的普與以與網(wǎng)絡技術(shù)的應用,網(wǎng)上商城已經(jīng)成為一個新的工具和一個新興的市場,網(wǎng)上商城類似于現(xiàn)實世界當中的商店,差別是利用電子商務的各種手段,達成從買到賣的過程的虛擬商店,從而減少中間環(huán)節(jié),消除運輸成本和代理中間的差價,造就對普通消費,和加大市場流通帶來巨大的發(fā)展空間。盡能的還消費者以利益,帶動公

6、司發(fā)展和企業(yè)騰飛,引導國民經(jīng)濟穩(wěn)定快速發(fā)展,推動國生產(chǎn)總值。2 高校教材管理系統(tǒng)的需求分析本網(wǎng)上商城構(gòu)建初始目標主要是面向廣大消費者,由于不同人群對商品的需求不同,因而購物應在具有自己特色的同時應適合不同人士的需要。2.1 用戶需求分析用戶主要是買家和賣家以與的管理人員:2.1.1 普通用戶主要需要:賣家:上傳商品、注冊用戶、更改商品、刪除商品、增加商品、管理已有商品等買家:查看所有商品、搜索某一商品、查看具體的產(chǎn)品以與廠家信息等2.1.2 系級管理員主要需要:主要是維護秩序,比如說終止某一買家或者賣家的使用權(quán)限等2.2 數(shù)據(jù)字典的描述數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,也就是對數(shù)據(jù)流圖包含的所有

7、元素的定義的集合。任何字典最重要的用途都是供人查閱對不了解的條目的解釋,數(shù)據(jù)字典的作用也正是在軟件分析和設(shè)計的過程中給人提供關(guān)于數(shù)據(jù)的描述信息。限于篇幅,下面給出本系統(tǒng)的部分數(shù)據(jù)字典描述: 買家信息的數(shù)據(jù)字典的描述: 表名:mall_Buyers 表元組:BuyId BuyName BuySex BuyPass BuyLevel BuyAddress BuyAge 賣家信息的數(shù)據(jù)字典的描述:表名:mall_Sellers 表元組:SeId SeName SeSex SePass SeLevel SeAddress SeAge 商品信息的數(shù)據(jù)字典的描述:表名:mall_Goods 表元組:Goo

8、dIdGoodName GoodPrice Goodintroduction SeId Goodkinds Goodinventory2.3 教材管理系統(tǒng)的數(shù)據(jù)流圖下面簡要介紹部分需求的數(shù)據(jù)流圖:mall_BuyersDoLoginServeletmall_Goodsmall_Sellers JSP2.3.1 教材庫存查詢的數(shù)據(jù)流圖(DFD)用戶操作數(shù)據(jù)流程圖:商品信息表mall_Goods產(chǎn)品信息商品信息查詢信息查詢方式買家賣家接受查詢方式信息處理產(chǎn)生查詢結(jié)果買家賣家圖2-1商品庫查詢的數(shù)據(jù)流圖2.3.5 用戶信息管理的數(shù)據(jù)流圖(DFD)增加、修改和刪除用戶資料,具體的過程的數(shù)據(jù)流圖(DFD

9、)表示如下:3網(wǎng)上商城系統(tǒng)分析與設(shè)計3.1 系統(tǒng)設(shè)計總體思想、目標3.2 網(wǎng)上商城系統(tǒng)的ER模型經(jīng)過對網(wǎng)上商城系統(tǒng)的分析,我們將系統(tǒng)劃分出了買家用戶、賣家用戶、商品信息三個實體,其各個實體的屬性如下:本系統(tǒng)的具體ER模型如下:買家或賣家序號用戶名密碼性別圖3-1普通用戶ER圖 3.3 網(wǎng)上商城系統(tǒng)結(jié)構(gòu)、功能設(shè)計3.3.1 系統(tǒng)結(jié)構(gòu)設(shè)計網(wǎng)上商城系統(tǒng)結(jié)構(gòu)主要是JAVA代碼用作控制語句、JSP用于數(shù)據(jù)接收與顯示、mysql用于術(shù)語的存儲,采用常用的Brower/Server模式。3.3.2 系統(tǒng)功能模塊設(shè)計 功能模塊主要有:登錄驗證模塊、登陸顯示模塊、數(shù)據(jù)庫操作模塊、信息顯示模塊等3.4 網(wǎng)上商城系

10、統(tǒng)的數(shù)據(jù)庫設(shè)計 由于此網(wǎng)上商城屬于網(wǎng)上商城的簡易模式,所以基本數(shù)據(jù)庫表的建立有mall_Goods、mall_Buyers、mall_Sellers。4 系統(tǒng)平臺、計算模式與技術(shù) 系統(tǒng)的硬件平臺:普通PC機 系統(tǒng)的軟件平臺:MyEclipse、mysql、Navicat for MySQL、tomcat4.1 計算模式的進化與本系統(tǒng)選用的模式優(yōu)越性回顧計算機的發(fā)展史,計算模式有過三次質(zhì)的飛躍:4.1.1 集中式管理主機/終端模式以主機為中心的計算環(huán)境 ,數(shù)據(jù)管理 ,事務處理高度集中 ,起始成本高 ,系統(tǒng)維護升級只涉與主機,管理成本低 ,但用戶端缺乏個人定置 ,無任何處理功能。適用于大規(guī)模集中式

11、應用 ,具有較高的效率和安全性 ,但存在執(zhí)行效率與容量不足問題。4.1.2 Client/Server模式 它把集中管理模式轉(zhuǎn)化為一種服務器與客戶機負荷均衡的分布式計算模式 ,解決了執(zhí)行效率與容量不足的問題。該結(jié)構(gòu)以 PC為主 ,適合部門級應用。初級成本低 ,但隨著應用規(guī)模擴展 ,網(wǎng)絡上異種資源類型的增多,開發(fā)、管理、維護的復雜程度加大,頻繁的軟硬件升級 ,后期成本驟升,缺乏關(guān)鍵事物處理的安全性與并發(fā)處理能力。4.1.3 Brower/Server模式以網(wǎng)絡中心計算為特征的 BPS結(jié)構(gòu)恰到好處地取長補短 ,兼容并蓄 ,使計算體系真正成為企業(yè)生存發(fā)展的生命力。 BPS結(jié)構(gòu)使數(shù)據(jù)與應用可通過不同平

12、臺、不同網(wǎng)絡存取 ,與平臺無關(guān) ,伸縮性大 ,為企業(yè)、行業(yè)提供了開放的基于標準的綜合性服務計算環(huán)境 ,它將處理、儲存、通訊能力移入網(wǎng)絡 ,集中主機 P終端和 CPS的優(yōu)點 ,管理集中 ,只涉與網(wǎng)絡服務器 ,NC通過下載獲得升級功能 ;同時信息高度分散 ,通過 、JAVA可訪問聯(lián)接任何 URL資源和應用 ,共享程度高 ,可伸縮擴展性強 ,具有高度開放性和靈活性 ,同時具備高速率和安全性 ,使用戶真正投資于應用而不是計算機本身。4.1.4 系統(tǒng)采用B/S三層體系結(jié)構(gòu)模式的優(yōu)越性1、開放的標準2、分布計算的基礎(chǔ)結(jié)構(gòu)3、較低的開發(fā)和維護成本4、使用簡單 ,界面友好5、系統(tǒng)靈活6、保障系統(tǒng)的安全性7、信

13、息共享度高4.2 JSP 技術(shù)4.2.1 JSP概述JSP(JavaServer Pages)是一種基于Java的腳本技術(shù)。在JSP 的眾多優(yōu)點之中,其中之一是它能將 HTML 編碼從 Web 頁面的業(yè)務邏輯中有效地分離出來。用 JSP 訪問可重用的組件,如 Servlet、JavaBean 和基于 Java 的 Web 應用程序。JSP 還支持在 Web 頁面中直接嵌入 Java 代碼??捎脙煞N方法訪問 JSP 文件:瀏覽器發(fā)送 JSP 文件請求、發(fā)送至 Servlet 的請求。1. JSP 文件訪問 Bean 或其它能將生成的動態(tài)容發(fā)送到瀏覽器的組件。圖5-1說明了該 JSP 訪問模型。當

14、 Web 服務器接收到一個 JSP 文件請求時,服務器將請求發(fā)送至 WebSphere應用服務器。WebSphere應用服務器 對 JSP 文件進行語法分析并生成 Java 源文件(被編譯和執(zhí)行為 Servlet)。Java 源文件的生成和編譯僅在初次調(diào)用 Servlet 時發(fā)生,除非已經(jīng)更新了原始的 JSP 文件。在這種情況下,WebSphere應用服務器 將檢測所做的更新,并在執(zhí)行它之前重新生成和編譯 Servlet。圖5-1:瀏覽器發(fā)送 JSP 文件請求2. 發(fā)送至 Servlet 的請求生成動態(tài)容,并調(diào)用 JSP 文件將容發(fā)送到瀏覽器。圖5-2說明了該訪問模型。該訪問模型使得將容生成從

15、容顯示中分離出來更為方便。WebSphere應用服務器 支持 ServiceRequest 對象和 ServiceResponse 對象的一套新方法。這些方法允許調(diào)用的 Servlet 將一個對象放入(通常是一個 Bean)請求對象中,并將該請求傳遞到另一個頁面(通常是一個 JSP 文件)以供顯示。調(diào)用的頁面從請求對象中檢索 Bean, 并用 JSP 來生成客戶機端的 HTML。圖5-2:發(fā)送至 Servlet 的請求5.2 JSP示例瀏覽器通過一個Web 頁面中的HTML表單請求一個servlet(PopulateBeanServlet),該servlet創(chuàng)建一個名為 dataBean 的D

16、ataBean 實例,并調(diào)用 JSP 文件將容發(fā)送到瀏覽器。Servlet 示例和 JSP 文件示例說明了啟用容分離的 JSP 訪問模型。A. Servlet 是由下列Web 頁面中的 HTML 表單來調(diào)用的。 <HTML><BODY><H1>運行 PopulateBeanServlet</H1><P>您是否希望運行 PopulateBeanServlet?<FORM action="/servlet/PopulateBeanServlet" method="GET"><INP

17、UT type="SUBMIT" value="Yes"><INPUT type="SUBMIT" value="No"></FORM></BODY></HTML>B. 被請求的servlet為PopulateBeanServlet, 其源代碼如下:/*Servlet 示例:PopulateBeanServlet.java *這個servlet創(chuàng)建一個名為 dataBean 的DataBean 實例,設(shè)置dataBean的若干個屬性, *將dataBean放置在

18、當前“請求”對象中, *調(diào)用 JSP 文件(DisplayData.jsp)來格式化并顯示dataBean的數(shù)據(jù)*/import java.io.*;import java.beans.Beans; import javax.servlet.*;import javax.servlet. .*;import javax.e.CreateException;public class PopulateBeanServlet extends Servlet public void Service( ServletRequest req, ServletResponse res)throws Serv

19、letException, IOException try dataBean = (DataBean) Beans.instantiate(this.getClass().getClassLoader(), "DataBean");catch (Exception ex) throw new ServletException("Can't create BEAN of class DataBean: "metaData.setSQL(getSQLString();/ Set some Bean properties (content genera

20、tion)dataBean.setProp1("Value1");dataBean.setProp2("Value2");dataBean.setProp3("Value3");/ To send the Bean to a JSP file for content formatting and display/ 1) 將dataBean放置在當前“請求”對象中,(.sun.server. . ServiceRequest) req).setAttribute("dataBean", dataBean);/ 2)

21、使用callPage 方法調(diào)用JSP文件,文件名為DisplayData.jsp,并把請求對象傳遞給JSP。(.sun.server. . ServiceResponse) res).callPage("/DisplayData.jsp", req); /end of service mehtod /* end of class PopulateBeanServlet */C. 被調(diào)用的JSP文件為DisplayData.jsp,其容如下:<!- 該 JSP 文件獲得在請求對象中傳遞的 dataBean,并顯示該 Bean 的屬性。 -><html>

22、 <head><title>Bean Data Display</title></head><!- Get the Bean using the BEAN tag -><bean name="dataBean" type="DataBean" introspect="no" create="no" scope="request"></bean><body><!- There are three

23、ways to access Bean properties -><!- Using a JSP scriptlet -><% out.println("The value of Bean property 1 is " + dataBeans.getProp1();%><!- Using a JSP expression -><p>The value of Bean property 2 is <%= dataBean.getProp2() %> </p><!-Using the INSE

24、RT tag -><p>The value of Bean property 3 is <insert bean=dataBean property=prop3 default="No property value" ></insert></p></body></html> 4.2.2 JSP建對象1.request對象 客戶端的請求信息被封裝在request對象中,通過它才能了解到客戶的需求,然后做出響應。它是 ServletRequest類的實例。 序號 方 法 說 明 1 object ge

25、tAttribute(String name) 返回指定屬性的屬性值 2 Enumeration getAttributeNames() 返回所有可用屬性名的枚舉 3 String getCharacterEncoding() 返回字符編碼方式 4 int getContentLength() 返回請求體的長度(以字節(jié)數(shù)) 5 String getContentType() 得到請求體的MIME類型 6 ServletInputStream getInputStream() 得到請求體中一行的二進制流 7 String getParameter(String name) 返回name指定參數(shù)的

26、參數(shù)值 8 Enumeration getParameterNames() 返回可用參數(shù)名的枚舉 9 String getParameterValues(String name) 返回包含參數(shù)name的所有值的數(shù)組 10 String getProtocol() 返回請求用的協(xié)議類型與版本號 11 String getScheme() 返回請求用的計劃名,如: . s與ftp等 12 String getServerName() 返回接受請求的服務器主機名 13 int getServerPort() 返回服務器接受此請求所用的端口號 14 BufferedReader getReader()

27、 返回解碼過了的請求體 15 String getRemoteAddr() 返回發(fā)送此請求的客戶端IP地址 16 String getRemoteHost() 返回發(fā)送此請求的客戶端主機名 17 void setAttribute(String key,Object obj) 設(shè)置屬性的屬性值 18 String getRealPath(String path) 返回一虛擬路徑的真實路徑 2.response對象 response對象包含了響應客戶請求的有關(guān)信息,但在JSP中很少直接用到它。它是 ServletResponse類的實例。 序號 方 法 說 明 1 String getChara

28、cterEncoding() 返回響應用的是何種字符編碼 2 ServletOutputStream getOutputStream() 返回響應的一個二進制輸出流 3 PrintWriter getWriter() 返回可以向客戶端輸出字符的一個對象 4 void setContentLength(int len) 設(shè)置響應頭長度 5 void setContentType(String type) 設(shè)置響應的MIME類型 6 sendRedirect(java.lang.String location) 重新定向客戶端的請求 3.session對象session對象指的是客戶端與服務器的一

29、次會話,從客戶端連到服務器的一個WebApplication開始,直到客戶端與服務器斷開連接為止。它是 Session類的實例. 序號 方 法 說 明 1 long getCreationTime() 返回SESSION創(chuàng)建時間 2 public String getId() 返回SESSION創(chuàng)建時JSP引擎為它設(shè)的惟一ID號 3 long getLastAccessedTime() 返回此SESSION里客戶端最近一次請求時間 4 int getMaxInactiveInterval() 返回兩次請求間隔多長時間此SESSION被取消(ms) 5 String getValueNames(

30、) 返回一個包含此SESSION中所有可用屬性的數(shù)組 6 void invalidate() 取消SESSION,使SESSION不可用 7 boolean isNew() 返回服務器創(chuàng)建的一個SESSION,客戶端是否已經(jīng)加入 8 void removeValue(String name) 刪除SESSION中指定的屬性 9 void setMaxInactiveInterval() 設(shè)置兩次請求間隔多長時間此SESSION被取消(ms) 4.out對象 out對象是JspWriter類的實例,是向客戶端輸出容常用的對象 序號 方 法 說 明 1 void clear() 清除緩沖區(qū)的容 2

31、 void clearBuffer() 清除緩沖區(qū)的當前容 3 void flush() 清空流 4 int getBufferSize() 返回緩沖區(qū)以字節(jié)數(shù)的大小,如不設(shè)緩沖區(qū)則為0 5 int getRemaining() 返回緩沖區(qū)還剩余多少可用 6 boolean isAutoFlush() 返回緩沖區(qū)滿時,是自動清空還是拋出異常 7 void close() 關(guān)閉輸出流 5.page對象 page對象就是指向當前JSP頁面本身,有點象類中的this指針,它是java.lang.Object類的實例 序號 方 法 說 明 1 class getClass 返回此Object的類 2

32、int hashCode() 返回此Object的hash碼 3 boolean equals(Object obj) 判斷此Object是否與指定的Object對象相等 4 void copy(Object obj) 把此Object拷貝到指定的Object對象中 5 Object clone() 克隆此Object對象 6 String toString() 把此Object對象轉(zhuǎn)換成String類的對象 7 void notify() 喚醒一個等待的線程 8 void notifyAll() 喚醒所有等待的線程 9 void wait(int timeout) 使一個線程處于等待直到ti

33、meout結(jié)束或被喚醒 10 void wait() 使一個線程處于等待直到被喚醒 11 void enterMonitor() 對Object加鎖 12 void exitMonitor() 對Object開鎖 6.application對象 application對象實現(xiàn)了用戶間數(shù)據(jù)的共享,可存放全局變量。它開始于服務器的啟動,直到服務器的關(guān)閉,在此期間,此對象將一直存在;這樣在用戶的前后連接或不同用戶之間的連接中,可以對此對象的同一屬性進行操作;在任何地方對此對象屬性的操作,都將影響到其他用戶對此的訪問。服務器的啟動和關(guān)閉決定了application對象的生命。它是ServletCont

34、ext類的實例。 序號 方 法 說 明 1 Object getAttribute(String name) 返回給定名的屬性值 2 Enumeration getAttributeNames() 返回所有可用屬性名的枚舉 3 void setAttribute(String name,Object obj) 設(shè)定屬性的屬性值 4 void removeAttribute(String name) 刪除一屬性與其屬性值 5 String getServerInfo() 返回JSP(SERVLET)引擎名與版本號 6 String getRealPath(String path) 返回一虛擬路徑

35、的真實路徑 7 ServletContext getContext(String uripath) 返回指定WebApplication的application對象 8 int getMajorVersion() 返回服務器支持的Servlet API的最大版本號 9 int getMinorVersion() 返回服務器支持的Servlet API的最大版本號 10 String getMimeType(String file) 返回指定文件的MIME類型 11 URL getResource(String path) 返回指定資源(文件與目錄)的URL路徑 12 InputStream g

36、etResourceAsStream(String path) 返回指定資源的輸入流 13 RequestDispatcher getRequestDispatcher(String uripath) 返回指定資源的RequestDispatcher對象 14 Servlet getServlet(String name) 返回指定名的Servlet 15 Enumeration getServlets() 返回所有Servlet的枚舉 16 Enumeration getServletNames() 返回所有Servlet名的枚舉 17 void log(String msg) 把指定消息寫

37、入Servlet的日志文件 18 void log(Exception exception,String msg) 把指定異常的棧軌跡與錯誤消息寫入Servlet的日志文件 19 void log(String msg,Throwable throwable) 把棧軌跡與給出的Throwable異常的說明信息 寫入Servlet的日志文件 7.exception對象exception對象是一個例外對象,當一個頁面在運行過程中發(fā)生了例外,就產(chǎn)生這個對象。如果一個JSP頁面要應用此對象,就必須把isErrorPage設(shè)為true,否則無法編譯。他實際上是java.lang.Throwable的對象

38、 序號 方 法 說 明 1 String getMessage() 返回描述異常的消息 2 String toString() 返回關(guān)于異常的簡短描述消息 3 void printStackTrace() 顯示異常與其棧軌跡 4 Throwable FillInStackTrace() 重寫異常的執(zhí)行棧軌跡 8.pageContext對象pageContext對象提供了對JSP頁面所有的對象與名字空間的訪問,也就是說他可以訪問到本頁所在的SESSION,也可以取本頁面所在的application的某一屬性值,他相當于頁面中所有功能的集大成者,它的本類名也叫pageContext。 序號 方 法

39、 說 明 1 JspWriter getOut() 返回當前客戶端響應被使用的JspWriter流(out) 2 Session getSession() 返回當前頁中的 Session對象(session) 3 Object getPage() 返回當前頁的Object對象(page) 4 ServletRequest getRequest() 返回當前頁的ServletRequest對象(request) 5 ServletResponse getResponse() 返回當前頁的ServletResponse對象(response) 6 Exception getException()

40、返回當前頁的Exception對象(exception) 7 ServletConfig getServletConfig() 返回當前頁的ServletConfig對象(config) 8 ServletContext getServletContext() 返回當前頁的ServletContext對象(application) 9 void setAttribute(String name,Object attribute) 設(shè)置屬性與屬性值 10 void setAttribute(String name,Object obj,int scope) 在指定圍設(shè)置屬性與屬性值 11 pub

41、lic Object getAttribute(String name) 取屬性的值 12 Object getAttribute(String name,int scope) 在指定圍取屬性的值 13 public Object findAttribute(String name) 尋找一屬性,返回起屬性值或NULL 14 void removeAttribute(String name) 刪除某屬性 15 void removeAttribute(String name,int scope) 在指定圍刪除某屬性 16 int getAttributeScope(String name) 返

42、回某屬性的作用圍 17 Enumeration getAttributeNamesInScope(int scope) 返回指定圍可用的屬性名枚舉 18 void release() 釋放pageContext所占用的資源 19 void forward(String relativeUrlPath) 使當前頁面重導到另一頁面 20 void include(String relativeUrlPath) 在當前位置包含另一文件 9.config對象config對象是在一個Servlet初始化時,JSP引擎向它傳遞信息用的,此信息包括Servlet初始化時所要用到的參數(shù)(通過屬性名和屬性值構(gòu)成

43、)以與服務器的有關(guān)信息(通過傳遞一個ServletContext對象) 序號 方 法 說 明 1 ServletContext getServletContext() 返回含有服務器相關(guān)信息的ServletContext對象 2 String getInitParameter(String name) 返回初始化參數(shù)的值 3 Enumeration getInitParameterNames() 返回Servlet初始化所需所有參數(shù)的枚舉4.3 mysql數(shù)據(jù)庫4.3.1 mysql概述MySQL是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。在2008年1月16號被Sun公

44、司收購。而2009年,SUN又被Oracle收購。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫。這樣就增加了速度并提高了靈活性。MySQL的SQL“結(jié)構(gòu)化查詢語言”。SQL是用于訪問數(shù)據(jù)庫的最常用標準化語言。MySQL軟件采用了GPL(GNU通用公共許可證)。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型為了降低總體擁有成本而選擇了MySQL作為數(shù)據(jù)庫。4.3.2 mysql常用命令1:使用SHOW語句找出在服務器上當前存在什么數(shù)據(jù)庫:mysql> SHOW DATABASES;2:2、創(chuàng)建一個數(shù)據(jù)庫MYS

45、QLDATAmysql> CREATE DATABASE MYSQLDATA;3:選擇你所創(chuàng)建的數(shù)據(jù)庫mysql> USE MYSQLDATA; (按回車鍵出現(xiàn)Database changed 時說明操作成功!)4:查看現(xiàn)在的數(shù)據(jù)庫中存在什么表mysql> SHOW TABLES;5:創(chuàng)建一個數(shù)據(jù)庫表mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1);6:顯示表的結(jié)構(gòu):mysql> DESCRIBE MYTABLE;7:往表中加入記錄mysql> insert into MYTABLE val

46、ues (”hyq”,”M”);8:用文本方式將數(shù)據(jù)裝入數(shù)據(jù)庫表中(例如D:/mysql.txt)mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE;9:導入.sql文件命令(例如D:/mysql.sql)mysql>use database;mysql>source d:/mysql.sql;10:刪除表mysql>drop TABLE MYTABLE;11:清空表mysql>delete from MYTABLE;12:更新表中數(shù)據(jù)mysql>update MYTABLE set

47、 sex=”f” where name=hyq;以下是無意中在網(wǎng)絡看到的使用MySql的管理心得,在windows中MySql以服務形式存在,在使用前應確保此服務已經(jīng)啟動,未啟動可用net start mysql命令啟動。而Linux中啟動時可用“/etc/rc.d/init.d/mysqld start”命令,注意啟動者應具有管理員權(quán)限。剛安裝好的MySql包含一個含空密碼的root和一個匿名,這是很大的安全隱患,對于一些重要的應用我們應將安全性盡可能提高,在這里應把匿名刪除、 root設(shè)置密碼,可用如下命令進行:use mysql;delete from User where User=”

48、"update User set Password=PASSWORD(newpassword) where User=root;如果要對用戶所用的登錄終端進行限制,可以更新User表中相應用戶的Host字段,在進行了以上更改后應重新啟動數(shù)據(jù)庫服務,此時登錄時可用如下類似命令:mysql -uroot -p;mysql -uroot -pnewpassword;mysql mydb -uroot -p;mysql mydb -uroot -pnewpassword;上面命令參數(shù)是常用參數(shù)的一部分,詳細情況可參考文檔。此處的mydb是要登錄的數(shù)據(jù)庫的名稱。在 進行開發(fā)和實際應用中,用戶不

49、應該只用root用戶進行連接數(shù)據(jù)庫,雖然使用root用戶進行測試時很方便,但會給系統(tǒng)帶來重大安全隱患,也不利于管理技 術(shù)的提高。我們給一個應用中使用的用戶賦予最恰當?shù)臄?shù)據(jù)庫權(quán)限。如一個只進行數(shù)據(jù)插入的用戶不應賦予其刪除數(shù)據(jù)的權(quán)限。MySql的用戶管理是通過 User表來實現(xiàn)的,添加新用戶常用的方法有兩個,一是在User表插入相應的數(shù)據(jù)行,同時設(shè)置相應的權(quán)限;二是通過GRANT命令創(chuàng)建具有某種權(quán)限的用 戶。其中GRANT的常用用法如下:grant all on mydb.* to NewUserNameHostName identified by “password” ;grant usage

50、on *.* to NewUserNameHostName identified by “password”;grant select,insert,update on mydb.* to NewUserNameHostName identified by “password”;grant update,delete on mydb.TestTable to NewUserNameHostName identified by “password”;若 要給此用戶賦予他在相應對象上的權(quán)限的管理能力,可在GRANT后面添加WITH GRANT OPTION選項。而對于用插入User表添加的用戶,P

51、assword字段應用PASSWORD 函數(shù)進行更新加密,以防不軌之人竊看密碼。對于那些已經(jīng)不用的用戶應給予清除,權(quán)限過界的用戶應與時回收權(quán)限,回收權(quán)限可以通過更新User表相應字段, 也可以使用REVOKE操作。下面給出本人從其它資料(.cn-java.)獲得的對常用權(quán)限的解釋:全局管理權(quán)限:FILE: 在MySQL服務器上讀寫文件。PROCESS: 顯示或殺死屬于其它用戶的服務線程。RELOAD: 重載訪問控制表,刷新日志等。SHUTDOWN: 關(guān)閉MySQL服務。數(shù)據(jù)庫/數(shù)據(jù)表/數(shù)據(jù)列權(quán)限:ALTER: 修改已存在的數(shù)據(jù)表(例如增加/刪除列)和索引。CREATE: 建立新的數(shù)據(jù)庫或數(shù)據(jù)表

52、。DELETE: 刪除表的記錄。DROP: 刪除數(shù)據(jù)表或數(shù)據(jù)庫。INDEX: 建立或刪除索引。INSERT: 增加表的記錄。SELECT: 顯示/搜索表的記錄。UPDATE: 修改表中已存在的記錄。特別的權(quán)限:ALL: 允許做任何事(和root一樣)。USAGE: 只允許登錄其它什么也不允許做。5 系統(tǒng)實現(xiàn)5.1 用戶登陸流程在瀏覽器上輸入網(wǎng)址localhost:8080/online_mall/Login.jsp后會進入如下流程。錯誤正確Login.jsp登陸判斷判斷用戶類型用戶名、密碼系統(tǒng)主頁面圖5-1 用戶登陸流程5.2 買家登陸流程 圖5-2買家登陸界面查詢結(jié)果:圖5-3買家商品查看界

53、面圖5-4買家商品具體信息界面圖5-5買家商品賣家具體信息界面5.3 賣家登陸流程 圖5-6賣家登陸界面查詢結(jié)果:圖5-7賣家商品管理界面圖5-8賣家新增商品信息界面圖5-9賣家商品信息修改界面5.4 用戶注冊流程5.4.1 用戶注冊流程圖其具體的流程如圖5-10,界面如圖:圖5-10用戶注冊界面5.5 數(shù)據(jù)庫表單創(chuàng)建語句5.5.1一個賣家表 存儲賣家信息create table mall_Sellers( SeId int primary key auto_increment not null, SeName varchar(30), SeSex varchar(10), SePass va

54、rchar(20), SeLevel int, SeAddress varchar(50), SeAge int);5.5.2一個買家表 存儲買家信息create table mall_Buyers( BuyId int primary key auto_increment not null, BuyName varchar(30), BuySex varchar(10), BuyPass varchar(20), BuyLevel int, BuyAddress varchar(50), BuyAge int);5.5.3一個商品表 存儲所有 賣家的商品信息create table mall

55、_Goods( GoodId int primary key auto_increment not null, GoodName varchar(30), GoodPrice float, Goodintroduction varchar(100), SeId int, Goodkinds varchar(20), Goodinventory int, foreign key(SeId) references mall_sellers(SeId);6 網(wǎng)上商城系統(tǒng)設(shè)計的技術(shù)關(guān)鍵6.1 JSP主要網(wǎng)頁代碼6.1.1買家登陸主頁BuyerMallList.jsp<%pagelanguage=

56、"java"import="java.util.*"pageEncoding="UTF-8"%><%tagliburi="WEB-INF/c.tld"prefix="c"%><%pageimport="online.mall.DTO.*"%><%String path = request.getContextPath();String basePath = request.getScheme()+":/"+request

57、.getServerName()+":"+request.getServerPort()+path+"/"%><!DOCTYPEHTMLPUBLIC"-/W3C/DTD HTML 4.01 Transitional/EN"><html><head><basehref="<%=basePath%>"><title>My JSP 'BuyerMallList.jsp' starting page</title>&l

58、t;meta -equiv="pragma"content="no-cache"><meta -equiv="cache-control"content="no-cache"><meta -equiv="expires"content="0"><meta -equiv="keywords"content="keyword1,keyword2,keyword3"><meta -equiv="description"content="This is my page"></head><body><formname="form1"action=""method="post"><tablealign="center"border="1"bordercolor="red"><tr>&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論