




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于JAVA與JSP下的網(wǎng)上商城設(shè)計(jì)專 業(yè):網(wǎng)絡(luò)工程年 級(jí):學(xué) 號(hào):作 者:指導(dǎo)老師:完成時(shí)間:2011年11月說 明本系統(tǒng)是由我和王為政兩個(gè)人合作完成25 / 29基于JAVA的網(wǎng)上商城系統(tǒng)的開發(fā)與實(shí)現(xiàn)摘要:網(wǎng)上商城系統(tǒng)是基于JAVA的一個(gè)電子商務(wù)系統(tǒng),其主要作用就是實(shí)現(xiàn)商城的一些功能,如:買賣商品,計(jì)算積分,查看產(chǎn)品的具體信息,與賣家聯(lián)系,交友等功能!最后對整個(gè)網(wǎng)上商城系統(tǒng)作了一個(gè)簡要的總結(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 系級(jí)管理員主要需要:22.2 數(shù)據(jù)字典的描述22.3 教材管理系統(tǒng)的數(shù)據(jù)流圖23網(wǎng)上商城系統(tǒng)分析與設(shè)計(jì)33.1 系統(tǒng)設(shè)計(jì)總體思想、目
4、標(biāo)33.2 網(wǎng)上商城系統(tǒng)的ER模型33.3 網(wǎng)上商城系統(tǒng)結(jié)構(gòu)、功能設(shè)計(jì)33.3.1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)33.3.2 系統(tǒng)功能模塊設(shè)計(jì)33.4 網(wǎng)上商城系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)34 系統(tǒng)平臺(tái)、計(jì)算模式與技術(shù)34.1 計(jì)算模式的進(jìn)化與本系統(tǒng)選用的模式優(yōu)越性34.1.1 集中式管理主機(jī)/終端模式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)實(shí)現(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è)計(jì)的技術(shù)關(guān)鍵156.1 JSP主要網(wǎng)頁代碼156.2 mysql數(shù)據(jù)庫表單截圖226.3 Java語言控制主要類代碼237 系統(tǒng)試運(yùn)行結(jié)果與評價(jià)261 引言隨著計(jì)算機(jī)的普與以與網(wǎng)絡(luò)技術(shù)的應(yīng)用,網(wǎng)上商城已經(jīng)成為一個(gè)新的工具和一個(gè)新興的市場,網(wǎng)上商城類似于現(xiàn)實(shí)世界當(dāng)中的商店,差別是利用電子商務(wù)的各種手段,達(dá)成從買到賣的過程的虛擬商店,從而減少中間環(huán)節(jié),消除運(yùn)輸成本和代理中間的差價(jià),造就對普通消費(fèi),和加大市場流通帶來巨大的發(fā)展空間。盡能的還消費(fèi)者以利益,帶動(dòng)公
6、司發(fā)展和企業(yè)騰飛,引導(dǎo)國民經(jīng)濟(jì)穩(wěn)定快速發(fā)展,推動(dòng)國生產(chǎn)總值。2 高校教材管理系統(tǒng)的需求分析本網(wǎng)上商城構(gòu)建初始目標(biāo)主要是面向廣大消費(fèi)者,由于不同人群對商品的需求不同,因而購物應(yīng)在具有自己特色的同時(shí)應(yīng)適合不同人士的需要。2.1 用戶需求分析用戶主要是買家和賣家以與的管理人員:2.1.1 普通用戶主要需要:賣家:上傳商品、注冊用戶、更改商品、刪除商品、增加商品、管理已有商品等買家:查看所有商品、搜索某一商品、查看具體的產(chǎn)品以與廠家信息等2.1.2 系級(jí)管理員主要需要:主要是維護(hù)秩序,比如說終止某一買家或者賣家的使用權(quán)限等2.2 數(shù)據(jù)字典的描述數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,也就是對數(shù)據(jù)流圖包含的所有
7、元素的定義的集合。任何字典最重要的用途都是供人查閱對不了解的條目的解釋,數(shù)據(jù)字典的作用也正是在軟件分析和設(shè)計(jì)的過程中給人提供關(guān)于數(shù)據(jù)的描述信息。限于篇幅,下面給出本系統(tǒng)的部分?jǐn)?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è)計(jì)3.1 系統(tǒng)設(shè)計(jì)總體思想、目標(biāo)3.2 網(wǎng)上商城系統(tǒng)的ER模型經(jīng)過對網(wǎng)上商城系統(tǒng)的分析,我們將系統(tǒng)劃分出了買家用戶、賣家用戶、商品信息三個(gè)實(shí)體,其各個(gè)實(shí)體的屬性如下:本系統(tǒng)的具體ER模型如下:買家或賣家序號(hào)用戶名密碼性別圖3-1普通用戶ER圖 3.3 網(wǎng)上商城系統(tǒng)結(jié)構(gòu)、功能設(shè)計(jì)3.3.1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)網(wǎng)上商城系統(tǒng)結(jié)構(gòu)主要是JAVA代碼用作控制語句、JSP用于數(shù)據(jù)接收與顯示、mysql用于術(shù)語的存儲(chǔ),采用常用的Brower/Server模式。3.3.2 系統(tǒng)功能模塊設(shè)計(jì) 功能模塊主要有:登錄驗(yàn)證模塊、登陸顯示模塊、數(shù)據(jù)庫操作模塊、信息顯示模塊等3.4 網(wǎng)上商城系
10、統(tǒng)的數(shù)據(jù)庫設(shè)計(jì) 由于此網(wǎng)上商城屬于網(wǎng)上商城的簡易模式,所以基本數(shù)據(jù)庫表的建立有mall_Goods、mall_Buyers、mall_Sellers。4 系統(tǒng)平臺(tái)、計(jì)算模式與技術(shù) 系統(tǒng)的硬件平臺(tái):普通PC機(jī) 系統(tǒng)的軟件平臺(tái):MyEclipse、mysql、Navicat for MySQL、tomcat4.1 計(jì)算模式的進(jìn)化與本系統(tǒng)選用的模式優(yōu)越性回顧計(jì)算機(jī)的發(fā)展史,計(jì)算模式有過三次質(zhì)的飛躍:4.1.1 集中式管理主機(jī)/終端模式以主機(jī)為中心的計(jì)算環(huán)境 ,數(shù)據(jù)管理 ,事務(wù)處理高度集中 ,起始成本高 ,系統(tǒng)維護(hù)升級(jí)只涉與主機(jī),管理成本低 ,但用戶端缺乏個(gè)人定置 ,無任何處理功能。適用于大規(guī)模集中式
11、應(yīng)用 ,具有較高的效率和安全性 ,但存在執(zhí)行效率與容量不足問題。4.1.2 Client/Server模式 它把集中管理模式轉(zhuǎn)化為一種服務(wù)器與客戶機(jī)負(fù)荷均衡的分布式計(jì)算模式 ,解決了執(zhí)行效率與容量不足的問題。該結(jié)構(gòu)以 PC為主 ,適合部門級(jí)應(yīng)用。初級(jí)成本低 ,但隨著應(yīng)用規(guī)模擴(kuò)展 ,網(wǎng)絡(luò)上異種資源類型的增多,開發(fā)、管理、維護(hù)的復(fù)雜程度加大,頻繁的軟硬件升級(jí) ,后期成本驟升,缺乏關(guān)鍵事物處理的安全性與并發(fā)處理能力。4.1.3 Brower/Server模式以網(wǎng)絡(luò)中心計(jì)算為特征的 BPS結(jié)構(gòu)恰到好處地取長補(bǔ)短 ,兼容并蓄 ,使計(jì)算體系真正成為企業(yè)生存發(fā)展的生命力。 BPS結(jié)構(gòu)使數(shù)據(jù)與應(yīng)用可通過不同平
12、臺(tái)、不同網(wǎng)絡(luò)存取 ,與平臺(tái)無關(guān) ,伸縮性大 ,為企業(yè)、行業(yè)提供了開放的基于標(biāo)準(zhǔn)的綜合性服務(wù)計(jì)算環(huán)境 ,它將處理、儲(chǔ)存、通訊能力移入網(wǎng)絡(luò) ,集中主機(jī) P終端和 CPS的優(yōu)點(diǎn) ,管理集中 ,只涉與網(wǎng)絡(luò)服務(wù)器 ,NC通過下載獲得升級(jí)功能 ;同時(shí)信息高度分散 ,通過 、JAVA可訪問聯(lián)接任何 URL資源和應(yīng)用 ,共享程度高 ,可伸縮擴(kuò)展性強(qiáng) ,具有高度開放性和靈活性 ,同時(shí)具備高速率和安全性 ,使用戶真正投資于應(yīng)用而不是計(jì)算機(jī)本身。4.1.4 系統(tǒng)采用B/S三層體系結(jié)構(gòu)模式的優(yōu)越性1、開放的標(biāo)準(zhǔn)2、分布計(jì)算的基礎(chǔ)結(jié)構(gòu)3、較低的開發(fā)和維護(hù)成本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)點(diǎn)之中,其中之一是它能將 HTML 編碼從 Web 頁面的業(yè)務(wù)邏輯中有效地分離出來。用 JSP 訪問可重用的組件,如 Servlet、JavaBean 和基于 Java 的 Web 應(yīng)用程序。JSP 還支持在 Web 頁面中直接嵌入 Java 代碼??捎脙煞N方法訪問 JSP 文件:瀏覽器發(fā)送 JSP 文件請求、發(fā)送至 Servlet 的請求。1. JSP 文件訪問 Bean 或其它能將生成的動(dòng)態(tài)容發(fā)送到瀏覽器的組件。圖5-1說明了該 JSP 訪問模型。當(dāng)
14、 Web 服務(wù)器接收到一個(gè) JSP 文件請求時(shí),服務(wù)器將請求發(fā)送至 WebSphere應(yīng)用服務(wù)器。WebSphere應(yīng)用服務(wù)器 對 JSP 文件進(jìn)行語法分析并生成 Java 源文件(被編譯和執(zhí)行為 Servlet)。Java 源文件的生成和編譯僅在初次調(diào)用 Servlet 時(shí)發(fā)生,除非已經(jīng)更新了原始的 JSP 文件。在這種情況下,WebSphere應(yīng)用服務(wù)器 將檢測所做的更新,并在執(zhí)行它之前重新生成和編譯 Servlet。圖5-1:瀏覽器發(fā)送 JSP 文件請求2. 發(fā)送至 Servlet 的請求生成動(dòng)態(tài)容,并調(diào)用 JSP 文件將容發(fā)送到瀏覽器。圖5-2說明了該訪問模型。該訪問模型使得將容生成從
15、容顯示中分離出來更為方便。WebSphere應(yīng)用服務(wù)器 支持 ServiceRequest 對象和 ServiceResponse 對象的一套新方法。這些方法允許調(diào)用的 Servlet 將一個(gè)對象放入(通常是一個(gè) Bean)請求對象中,并將該請求傳遞到另一個(gè)頁面(通常是一個(gè) JSP 文件)以供顯示。調(diào)用的頁面從請求對象中檢索 Bean, 并用 JSP 來生成客戶機(jī)端的 HTML。圖5-2:發(fā)送至 Servlet 的請求5.2 JSP示例瀏覽器通過一個(gè)Web 頁面中的HTML表單請求一個(gè)servlet(PopulateBeanServlet),該servlet創(chuàng)建一個(gè)名為 dataBean 的D
16、ataBean 實(shí)例,并調(diào)用 JSP 文件將容發(fā)送到瀏覽器。Servlet 示例和 JSP 文件示例說明了啟用容分離的 JSP 訪問模型。A. Servlet 是由下列Web 頁面中的 HTML 表單來調(diào)用的。 <HTML><BODY><H1>運(yùn)行 PopulateBeanServlet</H1><P>您是否希望運(yùn)行 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 *這個(gè)servlet創(chuàng)建一個(gè)名為 dataBean 的DataBean 實(shí)例,設(shè)置dataBean的若干個(gè)屬性, *將dataBean放置在
18、當(dāng)前“請求”對象中, *調(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放置在當(dāng)前“請求”對象中,(.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對象中,通過它才能了解到客戶的需求,然后做出響應(yīng)。它是 ServletRequest類的實(shí)例。 序號(hào) 方 法 說 明 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() 得到請求體中一行的二進(jìn)制流 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é)議類型與版本號(hào) 11 String getScheme() 返回請求用的計(jì)劃名,如: . s與ftp等 12 String getServerName() 返回接受請求的服務(wù)器主機(jī)名 13 int getServerPort() 返回服務(wù)器接受此請求所用的端口號(hào) 14 BufferedReader getReader()
27、 返回解碼過了的請求體 15 String getRemoteAddr() 返回發(fā)送此請求的客戶端IP地址 16 String getRemoteHost() 返回發(fā)送此請求的客戶端主機(jī)名 17 void setAttribute(String key,Object obj) 設(shè)置屬性的屬性值 18 String getRealPath(String path) 返回一虛擬路徑的真實(shí)路徑 2.response對象 response對象包含了響應(yīng)客戶請求的有關(guān)信息,但在JSP中很少直接用到它。它是 ServletResponse類的實(shí)例。 序號(hào) 方 法 說 明 1 String getChara
28、cterEncoding() 返回響應(yīng)用的是何種字符編碼 2 ServletOutputStream getOutputStream() 返回響應(yīng)的一個(gè)二進(jìn)制輸出流 3 PrintWriter getWriter() 返回可以向客戶端輸出字符的一個(gè)對象 4 void setContentLength(int len) 設(shè)置響應(yīng)頭長度 5 void setContentType(String type) 設(shè)置響應(yīng)的MIME類型 6 sendRedirect(java.lang.String location) 重新定向客戶端的請求 3.session對象session對象指的是客戶端與服務(wù)器的一
29、次會(huì)話,從客戶端連到服務(wù)器的一個(gè)WebApplication開始,直到客戶端與服務(wù)器斷開連接為止。它是 Session類的實(shí)例. 序號(hào) 方 法 說 明 1 long getCreationTime() 返回SESSION創(chuàng)建時(shí)間 2 public String getId() 返回SESSION創(chuàng)建時(shí)JSP引擎為它設(shè)的惟一ID號(hào) 3 long getLastAccessedTime() 返回此SESSION里客戶端最近一次請求時(shí)間 4 int getMaxInactiveInterval() 返回兩次請求間隔多長時(shí)間此SESSION被取消(ms) 5 String getValueNames(
30、) 返回一個(gè)包含此SESSION中所有可用屬性的數(shù)組 6 void invalidate() 取消SESSION,使SESSION不可用 7 boolean isNew() 返回服務(wù)器創(chuàng)建的一個(gè)SESSION,客戶端是否已經(jīng)加入 8 void removeValue(String name) 刪除SESSION中指定的屬性 9 void setMaxInactiveInterval() 設(shè)置兩次請求間隔多長時(shí)間此SESSION被取消(ms) 4.out對象 out對象是JspWriter類的實(shí)例,是向客戶端輸出容常用的對象 序號(hào) 方 法 說 明 1 void clear() 清除緩沖區(qū)的容 2
31、 void clearBuffer() 清除緩沖區(qū)的當(dāng)前容 3 void flush() 清空流 4 int getBufferSize() 返回緩沖區(qū)以字節(jié)數(shù)的大小,如不設(shè)緩沖區(qū)則為0 5 int getRemaining() 返回緩沖區(qū)還剩余多少可用 6 boolean isAutoFlush() 返回緩沖區(qū)滿時(shí),是自動(dòng)清空還是拋出異常 7 void close() 關(guān)閉輸出流 5.page對象 page對象就是指向當(dāng)前JSP頁面本身,有點(diǎn)象類中的this指針,它是java.lang.Object類的實(shí)例 序號(hào) 方 法 說 明 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() 喚醒一個(gè)等待的線程 8 void notifyAll() 喚醒所有等待的線程 9 void wait(int timeout) 使一個(gè)線程處于等待直到ti
33、meout結(jié)束或被喚醒 10 void wait() 使一個(gè)線程處于等待直到被喚醒 11 void enterMonitor() 對Object加鎖 12 void exitMonitor() 對Object開鎖 6.application對象 application對象實(shí)現(xiàn)了用戶間數(shù)據(jù)的共享,可存放全局變量。它開始于服務(wù)器的啟動(dòng),直到服務(wù)器的關(guān)閉,在此期間,此對象將一直存在;這樣在用戶的前后連接或不同用戶之間的連接中,可以對此對象的同一屬性進(jìn)行操作;在任何地方對此對象屬性的操作,都將影響到其他用戶對此的訪問。服務(wù)器的啟動(dòng)和關(guān)閉決定了application對象的生命。它是ServletCont
34、ext類的實(shí)例。 序號(hào) 方 法 說 明 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)引擎名與版本號(hào) 6 String getRealPath(String path) 返回一虛擬路徑
35、的真實(shí)路徑 7 ServletContext getContext(String uripath) 返回指定WebApplication的application對象 8 int getMajorVersion() 返回服務(wù)器支持的Servlet API的最大版本號(hào) 9 int getMinorVersion() 返回服務(wù)器支持的Servlet API的最大版本號(hào) 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) 把指定異常的棧軌跡與錯(cuò)誤消息寫入Servlet的日志文件 19 void log(String msg,Throwable throwable) 把棧軌跡與給出的Throwable異常的說明信息 寫入Servlet的日志文件 7.exception對象exception對象是一個(gè)例外對象,當(dāng)一個(gè)頁面在運(yùn)行過程中發(fā)生了例外,就產(chǎn)生這個(gè)對象。如果一個(gè)JSP頁面要應(yīng)用此對象,就必須把isErrorPage設(shè)為true,否則無法編譯。他實(shí)際上是java.lang.Throwable的對象
38、 序號(hào) 方 法 說 明 1 String getMessage() 返回描述異常的消息 2 String toString() 返回關(guān)于異常的簡短描述消息 3 void printStackTrace() 顯示異常與其棧軌跡 4 Throwable FillInStackTrace() 重寫異常的執(zhí)行棧軌跡 8.pageContext對象pageContext對象提供了對JSP頁面所有的對象與名字空間的訪問,也就是說他可以訪問到本頁所在的SESSION,也可以取本頁面所在的application的某一屬性值,他相當(dāng)于頁面中所有功能的集大成者,它的本類名也叫pageContext。 序號(hào) 方 法
39、 說 明 1 JspWriter getOut() 返回當(dāng)前客戶端響應(yīng)被使用的JspWriter流(out) 2 Session getSession() 返回當(dāng)前頁中的 Session對象(session) 3 Object getPage() 返回當(dāng)前頁的Object對象(page) 4 ServletRequest getRequest() 返回當(dāng)前頁的ServletRequest對象(request) 5 ServletResponse getResponse() 返回當(dāng)前頁的ServletResponse對象(response) 6 Exception getException()
40、返回當(dāng)前頁的Exception對象(exception) 7 ServletConfig getServletConfig() 返回當(dāng)前頁的ServletConfig對象(config) 8 ServletContext getServletContext() 返回當(dāng)前頁的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) 使當(dāng)前頁面重導(dǎo)到另一頁面 20 void include(String relativeUrlPath) 在當(dāng)前位置包含另一文件 9.config對象config對象是在一個(gè)Servlet初始化時(shí),JSP引擎向它傳遞信息用的,此信息包括Servlet初始化時(shí)所要用到的參數(shù)(通過屬性名和屬性值構(gòu)成
43、)以與服務(wù)器的有關(guān)信息(通過傳遞一個(gè)ServletContext對象) 序號(hào) 方 法 說 明 1 ServletContext getServletContext() 返回含有服務(wù)器相關(guān)信息的ServletContext對象 2 String getInitParameter(String name) 返回初始化參數(shù)的值 3 Enumeration getInitParameterNames() 返回Servlet初始化所需所有參數(shù)的枚舉4.3 mysql數(shù)據(jù)庫4.3.1 mysql概述MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。在2008年1月16號(hào)被Sun公
44、司收購。而2009年,SUN又被Oracle收購。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉庫。這樣就增加了速度并提高了靈活性。MySQL的SQL“結(jié)構(gòu)化查詢語言”。SQL是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。MySQL軟件采用了GPL(GNU通用公共許可證)。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),許多中小型為了降低總體擁有成本而選擇了MySQL作為數(shù)據(jù)庫。4.3.2 mysql常用命令1:使用SHOW語句找出在服務(wù)器上當(dāng)前存在什么數(shù)據(jù)庫:mysql> SHOW DATABASES;2:2、創(chuàng)建一個(gè)數(shù)據(jù)庫MYS
45、QLDATAmysql> CREATE DATABASE MYSQLDATA;3:選擇你所創(chuàng)建的數(shù)據(jù)庫mysql> USE MYSQLDATA; (按回車鍵出現(xiàn)Database changed 時(shí)說明操作成功!)4:查看現(xiàn)在的數(shù)據(jù)庫中存在什么表mysql> SHOW TABLES;5:創(chuàng)建一個(gè)數(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:導(dǎo)入.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)絡(luò)看到的使用MySql的管理心得,在windows中MySql以服務(wù)形式存在,在使用前應(yīng)確保此服務(wù)已經(jīng)啟動(dòng),未啟動(dòng)可用net start mysql命令啟動(dòng)。而Linux中啟動(dòng)時(shí)可用“/etc/rc.d/init.d/mysqld start”命令,注意啟動(dòng)者應(yīng)具有管理員權(quán)限。剛安裝好的MySql包含一個(gè)含空密碼的root和一個(gè)匿名,這是很大的安全隱患,對于一些重要的應(yīng)用我們應(yīng)將安全性盡可能提高,在這里應(yīng)把匿名刪除、 root設(shè)置密碼,可用如下命令進(jìn)行:use mysql;delete from User where User=”
48、"update User set Password=PASSWORD(newpassword) where User=root;如果要對用戶所用的登錄終端進(jìn)行限制,可以更新User表中相應(yīng)用戶的Host字段,在進(jìn)行了以上更改后應(yīng)重新啟動(dòng)數(shù)據(jù)庫服務(wù),此時(shí)登錄時(shí)可用如下類似命令:mysql -uroot -p;mysql -uroot -pnewpassword;mysql mydb -uroot -p;mysql mydb -uroot -pnewpassword;上面命令參數(shù)是常用參數(shù)的一部分,詳細(xì)情況可參考文檔。此處的mydb是要登錄的數(shù)據(jù)庫的名稱。在 進(jìn)行開發(fā)和實(shí)際應(yīng)用中,用戶不
49、應(yīng)該只用root用戶進(jìn)行連接數(shù)據(jù)庫,雖然使用root用戶進(jìn)行測試時(shí)很方便,但會(huì)給系統(tǒng)帶來重大安全隱患,也不利于管理技 術(shù)的提高。我們給一個(gè)應(yīng)用中使用的用戶賦予最恰當(dāng)?shù)臄?shù)據(jù)庫權(quán)限。如一個(gè)只進(jìn)行數(shù)據(jù)插入的用戶不應(yīng)賦予其刪除數(shù)據(jù)的權(quán)限。MySql的用戶管理是通過 User表來實(shí)現(xiàn)的,添加新用戶常用的方法有兩個(gè),一是在User表插入相應(yīng)的數(shù)據(jù)行,同時(shí)設(shè)置相應(yīng)的權(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”;若 要給此用戶賦予他在相應(yīng)對象上的權(quán)限的管理能力,可在GRANT后面添加WITH GRANT OPTION選項(xiàng)。而對于用插入U(xiǎn)ser表添加的用戶,P
51、assword字段應(yīng)用PASSWORD 函數(shù)進(jìn)行更新加密,以防不軌之人竊看密碼。對于那些已經(jīng)不用的用戶應(yīng)給予清除,權(quán)限過界的用戶應(yīng)與時(shí)回收權(quán)限,回收權(quán)限可以通過更新User表相應(yīng)字段, 也可以使用REVOKE操作。下面給出本人從其它資料(.cn-java.)獲得的對常用權(quán)限的解釋:全局管理權(quán)限:FILE: 在MySQL服務(wù)器上讀寫文件。PROCESS: 顯示或殺死屬于其它用戶的服務(wù)線程。RELOAD: 重載訪問控制表,刷新日志等。SHUTDOWN: 關(guān)閉MySQL服務(wù)。數(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)實(shí)現(xiàn)5.1 用戶登陸流程在瀏覽器上輸入網(wǎng)址localhost:8080/online_mall/Login.jsp后會(huì)進(jìn)入如下流程。錯(cuò)誤正確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一個(gè)賣家表 存儲(chǔ)賣家信息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一個(gè)買家表 存儲(chǔ)買家信息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一個(gè)商品表 存儲(chǔ)所有 賣家的商品信息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è)計(jì)的技術(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)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公共交通標(biāo)線施工與維護(hù)服務(wù)合同
- 汽車抵押貸款合同范本:全程貸款跟蹤
- 財(cái)務(wù)合同信息化安全評估與整改合同
- 基礎(chǔ)工程三校合編教學(xué)課件
- 課件的制作與應(yīng)用
- 小學(xué)生學(xué)習(xí)方法指導(dǎo)課件
- 小學(xué)生學(xué)習(xí)委員競選課件
- 診所勞動(dòng)合同協(xié)議書
- 床墊購銷合同協(xié)議書范本
- 基層衛(wèi)生適宜技術(shù)課件
- 汽車4S店老客戶關(guān)懷活動(dòng)方案
- 非相干散射雷達(dá)調(diào)研報(bào)告
- 醫(yī)院崗位設(shè)置與人員編制標(biāo)準(zhǔn)
- 板式家具生產(chǎn)工藝PPT通用課件
- 原油管道工程動(dòng)火連頭安全技術(shù)方案
- 系統(tǒng)生物學(xué)(課堂PPT)
- 土石方場地平整施工組織方案
- 外周血單個(gè)核細(xì)胞分離方法探討
- LED亮度自動(dòng)調(diào)節(jié)系統(tǒng)設(shè)計(jì)
- SD7V16可變排量汽車空調(diào)壓縮機(jī)_圖文
- 食品安全信用等級(jí)評分表 餐飲類
評論
0/150
提交評論