對(duì)于在日留學(xué)生來(lái)說(shuō),日本國(guó)立國(guó)會(huì)圖書(shū)館絕對(duì)是個(gè)繞不開(kāi)的地方。無(wú)論是初初考學(xué)時(shí)寫(xiě)研究計(jì)劃,還是后來(lái)考上心儀院校,開(kāi)始了正式的學(xué)習(xí)、研究,國(guó)會(huì)圖書(shū)館都是一個(gè)好伙伴,它像一個(gè)巨大的寶庫(kù),總能挖到你所需的“寶藏”,還能替你省下一大筆購(gòu)置書(shū)籍的開(kāi)銷——特別是些昂貴的絕版舊書(shū)。
希望這篇文章能給即將開(kāi)啟自己學(xué)術(shù)生涯,或是在國(guó)內(nèi)要做日本方面的研究,對(duì)里面的資料有需求的各位提供一點(diǎn)點(diǎn)幫助和參考。
首先,向?qū)τ谶@個(gè)地方不甚了解的同學(xué)們做一個(gè)簡(jiǎn)單的介紹。
國(guó)立國(guó)會(huì)圖書(shū)館之所以如此特別,主要是因?yàn)樗俏ㄒ浑`屬于國(guó)會(huì)的國(guó)立圖書(shū)館,也是日本唯一實(shí)行“呈繳本制度”(又稱“法定送存”,日語(yǔ)為“納本制度”)的圖書(shū)館。呈繳本制度,指的是法律規(guī)定所有出版機(jī)構(gòu)或負(fù)有出版責(zé)任的單位,凡出版一種出版物,必須向指定的圖書(shū)館或出版主管機(jī)關(guān)免費(fèi)繳送一定數(shù)量的樣本。所以在這里,你能找到日本國(guó)內(nèi)全部出版物。不僅如此,這里還不斷補(bǔ)充著海外發(fā)行的各類書(shū)籍,亦或是各種對(duì)于研究、調(diào)查有用的資料。
國(guó)立國(guó)會(huì)圖書(shū)館的東京本館和關(guān)西館組成了它的中央圖書(shū)館。另外還有支部圖書(shū)館,由國(guó)際兒童圖書(shū)館、東洋文庫(kù)以及分布在各行政、司法機(jī)關(guān)內(nèi)的圖書(shū)館組成。
接下來(lái)的使用攻略,主要針對(duì)的是在東京本館內(nèi)以及一些遠(yuǎn)程使用的情況。
△從永田町2號(hào)口往國(guó)會(huì)圖書(shū)館走能看到這個(gè)大門(mén),但現(xiàn)在一般都是從側(cè)門(mén)進(jìn),側(cè)門(mén)在面向這棟建筑物時(shí)的右手邊
[ 交通 ]
東京本館的地址是千代田區(qū)永田町1-10-1
比較方便的是乘坐有樂(lè)町線到永田町,從2號(hào)出口出去后左手邊的馬路穿過(guò)去后,就已經(jīng)能看到東京本館的建筑物了。另外也可以坐半藏門(mén)線、南北線坐到永田町,或者千代田線、丸內(nèi)線坐到“國(guó)會(huì)議事堂前”。
△秋天的國(guó)會(huì)圖書(shū)館前的銀杏樹(shù)超好看
[ 開(kāi)放時(shí)間 ]
周一~周五:9:30~19:00;周六:9:30~17:00
由于疫情原因,館內(nèi)雖然在7月1日之后取消了周一至周五的抽選制度,但每日?qǐng)鲳^內(nèi)還是會(huì)限流,超過(guò)1000人之后就不會(huì)再讓人進(jìn)了,所以有需要的朋友盡量早上開(kāi)館的時(shí)候就去。
另外周六仍舊保持著之前的抽選制度,需要提前申請(qǐng)參與抽選,被抽中的人周六才能去。詳情可見(jiàn)國(guó)會(huì)圖書(shū)館首頁(yè)。
(國(guó)會(huì)圖書(shū)館主頁(yè):https://www.ndl.go.jp/index.html)
[ 休館日 ]
周日,法定節(jié)假日,年始年末,每個(gè)月的第三個(gè)周三(資料整理休館日)皆為休館日。
具體詳情可以查看下圖(紅色部分為休日)。
[ 入館流程 ]
?(1)圖書(shū)卡辦理
國(guó)會(huì)圖書(shū)館雖然對(duì)所有人都開(kāi)放,但和國(guó)內(nèi)大多數(shù)圖書(shū)館一樣,需要辦理圖書(shū)卡才能進(jìn)入。如果要長(zhǎng)期利用或者是查閱書(shū)庫(kù)內(nèi)的資料的話,一定要辦他們的圖書(shū)卡(登録利用者カード)。
△登録利用者カード,后文簡(jiǎn)稱圖書(shū)卡
如果只是去一天,并且只希望看看開(kāi)架書(shū),那可以去辦理一張“當(dāng)日利用カード”。但是,由于國(guó)會(huì)圖書(shū)館里大部分的書(shū)籍都不是放在書(shū)架上,而是收在書(shū)庫(kù)里,借閱都是需要工作人員取出來(lái)給你。另外,遠(yuǎn)程復(fù)印也是需要圖書(shū)卡的,所以最好還是直接辦張“登録利用カード”。
這邊先說(shuō)一下辦卡流程
首先辦卡需要年滿18歲(未滿18歲的同學(xué)需要事先聯(lián)絡(luò)圖書(shū)館,具體詳情可見(jiàn):https://www.ndl.go.jp/jp/help/useguideunder18.pdf)。帶好自己的身份證明,留學(xué)生的話帶著在留卡就行了。
辦理時(shí)間和每天圖書(shū)館的開(kāi)放時(shí)間不一樣,要注意。
[辦理柜臺(tái)開(kāi)放時(shí)間]
周一~周五:9:20~18:30;周六:9:20~16:30
[辦理需要材料]
① 申請(qǐng)表
申請(qǐng)表可以當(dāng)場(chǎng)填寫(xiě),也可以自己打印一張?zhí)钔炅藥н^(guò)去。表格:https://www.ndl.go.jp/jp/registration/tourokushinsei.pdf
② 身份證明
有效期間內(nèi)的身份證明,上面的內(nèi)容需和你填的表格上的需要一致。所以填表時(shí),建議在留卡上有漢字的同學(xué)再填漢字,如果只有英文的,最好直接填英文。
登錄也可以不去柜臺(tái),而是通過(guò)郵寄的方式提出申請(qǐng)。請(qǐng)將上述①的表格填寫(xiě)好之后,和②的復(fù)印件一起加上返送信封(不用貼郵票)一起用信封裝好之后,郵寄到下述地址。郵寄的時(shí)候注意,信封上要用紅筆寫(xiě)上「利用者登録申請(qǐng)書(shū)在中」。
國(guó)立國(guó)會(huì)図書(shū)館関西館 文獻(xiàn)提供課複寫(xiě)貸出係
〒619-0287 京都府相楽郡精華町精華臺(tái)8-1-3
(2)存包
有了圖書(shū)卡以后就能進(jìn)入館內(nèi)啦。
國(guó)會(huì)圖書(shū)館是不能帶自己的包進(jìn)去的,包需要寄存在門(mén)口的儲(chǔ)物柜里。儲(chǔ)物柜本身是免費(fèi)的,但用的時(shí)候需要放個(gè)100日元硬幣進(jìn)去,這個(gè)錢(qián)在你最后取東西的時(shí)候會(huì)退給你。記得帶個(gè)100日元哦。
不能拿進(jìn)去的東西有:B5以上的不透明的袋子或包包(電腦套最好不要帶,如果要帶的話也是允許的,但是離開(kāi)的時(shí)候需要打開(kāi)來(lái)給前臺(tái)那邊看一下);照相機(jī)、錄像機(jī)之類的能拍照、掃描類的東西(手機(jī)可以帶,但不要拍照呀);刀具之類的尖銳物體;傘(折疊傘也不行),傘可以放在入口傘架處;動(dòng)植物(這個(gè)就不需要說(shuō)了吧);其他一切可能會(huì)損害資料和館內(nèi)環(huán)境的東西。
瓶裝水和吃的可以帶進(jìn)去,但是喝水只能在指定的區(qū)域(水分補(bǔ)給エリア或是小花園、食堂),吃東西只能在食堂和“喫茶スペース”吃。
(3)進(jìn)入
放好包以后,走到閘機(jī)入口處,拿圖書(shū)卡在閘機(jī)口的感應(yīng)區(qū)上刷一下,門(mén)就打開(kāi)了。
(4)借書(shū)
[ 書(shū)籍借閱情況 ]
平常我們?nèi)サ膱D書(shū)館,書(shū)籍大部分都直接放在書(shū)架上,可以自己隨意取閱。但國(guó)會(huì)圖書(shū)館不一樣。它的藏書(shū)大多被保存在內(nèi)部書(shū)庫(kù)里,而書(shū)庫(kù)是不能隨意進(jìn)入的,只有工作人員能進(jìn)去。所以這邊的書(shū)籍借閱方式就會(huì)有所不同。
[ 書(shū)籍借閱流程 ]
?登錄系統(tǒng)
利用圖書(shū)館內(nèi)的電腦或是自己的電腦搜索所需資料
圖書(shū)館內(nèi)的電腦使用時(shí)都需要前面說(shuō)的“登録利用カード”。電腦屏幕前會(huì)有一個(gè)讀卡器,只需要把卡放在上面,輸入密碼,就能登錄系統(tǒng)。
檢索
這是它的系統(tǒng)主頁(yè)面,左上第一個(gè)“資料を検索して申し込む”。點(diǎn)進(jìn)去后,在搜索欄輸入作者名或者資料名等就能檢索到對(duì)應(yīng)資料。
△以夏目漱石為例,這是檢索后的頁(yè)面
借閱申請(qǐng)
點(diǎn)進(jìn)其中某一個(gè)條目,能看到這本書(shū)或文章的詳細(xì)內(nèi)容。下方會(huì)顯示藏有該書(shū)的場(chǎng)館,如果要現(xiàn)場(chǎng)借閱的情況,記得選擇自己所在場(chǎng)館,再點(diǎn)擊“閲覧”將它添加進(jìn)購(gòu)物車?yán)铩?/p>
△書(shū)籍詳情頁(yè)面
全部選好了以后,進(jìn)入到購(gòu)物車中(在頁(yè)面右上角處),可以一次性申請(qǐng)。借閱的時(shí)候需要確認(rèn)一下這個(gè)資料是屬于圖書(shū)還是雜志(論文也算雜志),圖書(shū)的話一次可以借5本,雜志的話一次可以借10本。超出的話需要?dú)w還一部分再重新申請(qǐng)借閱。
(5)取書(shū)
等申請(qǐng)好以后,需要等待一段時(shí)間,工作人員會(huì)從書(shū)庫(kù)里將你申請(qǐng)的書(shū)取出,送到“受取”柜臺(tái)。當(dāng)系統(tǒng)里提示你的書(shū)已經(jīng)被送到柜臺(tái)后,只要拿上圖書(shū)卡就能去取了。取書(shū)時(shí)把圖書(shū)卡遞給工作人員,或是直接放置在讀卡器上。工作人員會(huì)把已到達(dá)柜臺(tái)的書(shū)籍拿給你。走的時(shí)候別忘了拿走圖書(shū)卡哦。
還書(shū)的地方和借閱的柜臺(tái)是相連的兩個(gè)不一樣的柜臺(tái),注意看一下。需要推車的可以看一下借閱柜臺(tái)附近,有需要的直接去推就可以了。
圖書(shū)的柜臺(tái)和雜志柜臺(tái)是分開(kāi)的,圖書(shū)在本館,雜志在新館,兩邊場(chǎng)館內(nèi)部是相通的,但是走來(lái)走去也很費(fèi)事,所以為了節(jié)約時(shí)間,當(dāng)天選座位的時(shí)候可以根據(jù)自己該日需要借閱的文獻(xiàn)類別來(lái)選座位。如果參考的論文集比較多,會(huì)比較建議新館二樓的座位,里面有一個(gè)玻璃門(mén)圍起來(lái)的廳,座位很寬,可以插充電器,很適合坐一天趕論文;如果需要參考的文獻(xiàn)大多數(shù)圖書(shū)的話,那就直接坐在本館吧!
[ 復(fù)印流程 ]
國(guó)會(huì)圖書(shū)館所有的書(shū)籍都只能在館內(nèi)閱讀,不會(huì)向個(gè)人外借,所以如果有想要帶回家參考的資料就只能利用它的復(fù)印服務(wù)。
東京本館的復(fù)印區(qū)在新館的1樓和本館2樓,任意一處都可完成全部申請(qǐng)流程。
(1)網(wǎng)上申請(qǐng)
復(fù)印流程基本上就是先在電腦上提交申請(qǐng)。還是剛才的系統(tǒng)登錄頁(yè)面,在資料搜索的按鍵下方有“複寫(xiě)申込書(shū)作成”,點(diǎn)進(jìn)去后能直接看到已借閱的書(shū)籍。選擇“即日”或“後日郵送”,意思就是今天申請(qǐng)的復(fù)印資料是當(dāng)天取還是之后給你送到家里。一般這種都直接選當(dāng)日取就好了。
(2)打印申請(qǐng)書(shū)
按電腦上的提示提交申請(qǐng)后,就可以拿上自己的圖書(shū)卡,放到旁邊的打印機(jī)前的讀卡器上,打印機(jī)就會(huì)自動(dòng)打印剛才填寫(xiě)的申請(qǐng)書(shū)。
(3)填寫(xiě)申請(qǐng)書(shū)
拿著申請(qǐng)書(shū)和要復(fù)印的書(shū),到旁邊有放置筆的小臺(tái)子上。桌上有放一些裁好的紙條,要拿兩張,分別夾在你需要復(fù)印的書(shū)的起始頁(yè)和最終頁(yè)處。并在申請(qǐng)書(shū)上按要求填寫(xiě)好頁(yè)數(shù),和使用目的。
(4)受理
之后只需要將自己的圖書(shū)卡,標(biāo)注好起始頁(yè)和最終頁(yè)的書(shū),以及填好的申請(qǐng)書(shū)一起交給復(fù)印柜臺(tái)的工作人員就可以了。
工作人員會(huì)跟你確認(rèn)頁(yè)數(shù)和使用紙張的大小等,確認(rèn)好之后會(huì)告訴你大概所需時(shí)間。是否復(fù)印完成都是能在系統(tǒng)上看到的,在圖書(shū)館使用wifi的時(shí)候,自己的電腦也能直接看到系統(tǒng)內(nèi)申請(qǐng)借閱書(shū)籍是否到達(dá),復(fù)印是否完成等信息。
(5)取復(fù)印資料
當(dāng)提示復(fù)印完成后,就可以帶著圖書(shū)卡去取。
復(fù)印服務(wù)的收取柜臺(tái)和剛才“受付”柜臺(tái)也是相連的兩個(gè)不一樣的地方。把圖書(shū)卡交給工作人員或直接放在讀卡器上,工作人員會(huì)把復(fù)印好的東西拿過(guò)來(lái),并結(jié)算。
這里支付方式可以用現(xiàn)金也可以用各類“電子マネー”,目前應(yīng)該還不能用支付寶或微信,所以進(jìn)圖書(shū)館前可以留些現(xiàn)金在身上,或者跟我一樣直接帶suica(后來(lái)手機(jī)上可以綁定suica之后,我就只帶手機(jī)了)。包括樓上食堂和小賣(mài)部都是可以直接刷suica的,全程一定要現(xiàn)金的地方只有門(mén)口存包處(100日元)。
[ 復(fù)印服務(wù)申請(qǐng)時(shí)間 ]
平日10:00~18:00;周六10:00~16:00
[復(fù)印件遞交時(shí)間]
平日10:00~18:40;周六10:00~16:40
[可復(fù)印頁(yè)數(shù)]
紙質(zhì)資料1次可申請(qǐng)10本以內(nèi),共計(jì)150頁(yè)的內(nèi)容。一般,根據(jù)著作法,每本書(shū)最多只能復(fù)制全部?jī)?nèi)容的1半。
想要遠(yuǎn)程復(fù)印首先要有圖書(shū)卡。在家申請(qǐng)圖書(shū)卡的流程已在上文詳細(xì)記述過(guò)了。
在家找到自己需要的資料之后,在這個(gè)資料的詳細(xì)頁(yè)面上就能找到“遠(yuǎn)隔複寫(xiě)”的選項(xiàng)。
點(diǎn)進(jìn)去后,就需要你填寫(xiě)一下需要復(fù)印的部分。
書(shū)籍的話只需要填寫(xiě)頁(yè)數(shù)就可以了。論文的話因?yàn)槎际鞘珍浽谡撐募螂s志中,所以需要填論文名、作者名、雜志的卷號(hào),以及具體頁(yè)數(shù)。這些都能在該論文的詳情頁(yè)中找到。
填寫(xiě)好之后,就可以追加進(jìn)購(gòu)物車??梢詭讉€(gè)需要復(fù)印的一起填寫(xiě)申請(qǐng),都加入購(gòu)物車,全選后,點(diǎn)擊“申込手続に進(jìn)む”,會(huì)進(jìn)入確認(rèn)環(huán)節(jié)。
主要需要確認(rèn)的地址和郵箱是否正確,使用目的直接勾選“調(diào)査研究の用に供するため”就可以了。按照電腦操作指示點(diǎn)擊到最后即可。萬(wàn)一有申請(qǐng)不通過(guò)的特殊情況,工作人員會(huì)以郵件告知。復(fù)印費(fèi)用的請(qǐng)求書(shū)會(huì)和資料一起寄到家里,收到后20天以內(nèi)拿到便利店或者是去銀行支付就可以了。
支付時(shí)如需要付手續(xù)費(fèi),這部分需要我們自己承擔(dān)。申請(qǐng)后的5個(gè)工作日左右東西一般就會(huì)寄出,如果15天后都沒(méi)收到,或者是收到的資料不完整,可以電話咨詢圖書(shū)館工作人員。
[ 聯(lián)系方式 ]
関西館:文獻(xiàn)提供課複寫(xiě)貸出係
〒619-0287 京都府相楽郡精華町精華臺(tái)8-1-3
0774-98-1313(関西館開(kāi)館日の9時(shí)30分~18時(shí))
東京本館所蔵資料の複寫(xiě)についてのお問(wèn)い合わせ
東京本館:利用者サービス部複寫(xiě)課遠(yuǎn)隔複寫(xiě)係
03-3581-2534(東京本館開(kāi)館日の9時(shí)30分~17時(shí)45分)
國(guó)際子ども図書(shū)館所蔵資料の複寫(xiě)についてのお問(wèn)い合わせ
國(guó)際子ども図書(shū)館:資料情報(bào)課情報(bào)サービス係
〒110-0007 東京都臺(tái)東區(qū)上野公園12-49
03-3827-2053(代表)(國(guó)際子ども図書(shū)館開(kāi)館日の9時(shí)30分~17時(shí))
?
以上就是國(guó)會(huì)圖書(shū)館大致的一些使用情況。
如果有不清楚的部分,或者是其他想要了解的內(nèi)容,可以在國(guó)會(huì)圖書(shū)館的官網(wǎng)查詢到相關(guān)信息。祝大家考學(xué),寫(xiě)論文都順利!
在過(guò)去的幾年里,企業(yè)面臨了信息碎片化、流程繁瑣、管理效率低下的挑戰(zhàn)。因此,我們深入理解了企業(yè)用戶對(duì)于統(tǒng)一、便捷、透明的管理工具的需求,開(kāi)發(fā)了此智能系統(tǒng)。它集成了多項(xiàng)核心功能模塊,如部門(mén)管理、財(cái)務(wù)管理等,旨在提供一站式的解決方案,幫助各業(yè)務(wù)部門(mén)實(shí)時(shí)監(jiān)控、跟蹤和分析關(guān)鍵業(yè)務(wù)數(shù)據(jù),提高決策速度和準(zhǔn)確性。
例如,通過(guò)服務(wù)評(píng)價(jià)管理和投訴建議管理,我們可以快速響應(yīng)用戶反饋,改進(jìn)服務(wù)質(zhì)量;合同管理和資產(chǎn)管理部門(mén)則確保法律合規(guī)性和資源的有效利用。日志管理和權(quán)限管理確保數(shù)據(jù)安全,而應(yīng)急預(yù)案管理和知識(shí)庫(kù)管理則能在突發(fā)情況下提供應(yīng)急響應(yīng)策略。
總的來(lái)說(shuō),《辦事指南智慧管理系統(tǒng)》的開(kāi)發(fā)目標(biāo)是簡(jiǎn)化復(fù)雜的行政事務(wù),提升工作效率,降低運(yùn)營(yíng)成本,同時(shí)增強(qiáng)組織內(nèi)部的信息共享與協(xié)同工作能力,以適應(yīng)現(xiàn)代企業(yè)對(duì)高效、智能化辦公環(huán)境的需求。我們相信,通過(guò)使用這款軟件,每個(gè)用戶都能體驗(yàn)到工作方式的革新,享受到科技帶來(lái)的便利。
"辦事指南智慧管理系統(tǒng)"是一款專為大型企事業(yè)單位和政府機(jī)構(gòu)設(shè)計(jì)的高效辦公工具,它集成了眾多關(guān)鍵業(yè)務(wù)流程,旨在提升組織內(nèi)部的運(yùn)營(yíng)效率和管理水平。想象一下,一個(gè)繁忙的行政部門(mén),日常需要處理各種部門(mén)間的協(xié)調(diào)、財(cái)務(wù)審核、合同簽訂、會(huì)議安排,以及客戶服務(wù)滿意度的追蹤。這個(gè)系統(tǒng)就像是一個(gè)智能中樞,員工只需登錄,即可在統(tǒng)一平臺(tái)上一站式完成上述所有任務(wù)。
例如,部門(mén)管理員可以快速查看和調(diào)整人員配置,進(jìn)行權(quán)限分配;財(cái)務(wù)部門(mén)可通過(guò)系統(tǒng)實(shí)現(xiàn)預(yù)算管理、報(bào)銷流程自動(dòng)化,極大地減少了人工操作的錯(cuò)誤和時(shí)間成本;會(huì)議管理模塊支持在線預(yù)約和記錄,確保信息的及時(shí)傳遞;而服務(wù)評(píng)價(jià)管理則能實(shí)時(shí)反饋客戶意見(jiàn),幫助企業(yè)持續(xù)改進(jìn)。
我們的目標(biāo)用戶主要包括各級(jí)政府機(jī)關(guān)、企事業(yè)單位的行政管理人員、財(cái)務(wù)人員、項(xiàng)目經(jīng)理、客戶服務(wù)團(tuán)隊(duì)、法規(guī)政策研究者等。他們可能是需要管理復(fù)雜行政流程的行政主管,或是關(guān)注公司財(cái)務(wù)狀況的財(cái)務(wù)專家,或者是需要維護(hù)公司聲譽(yù)的服務(wù)團(tuán)隊(duì)負(fù)責(zé)人。此外,對(duì)于政策制定和執(zhí)行的決策者,知識(shí)庫(kù)管理和政策法規(guī)管理模塊也將成為他們的得力助手。無(wú)論是在日常辦公還是應(yīng)對(duì)突發(fā)事件時(shí),辦事指南智慧管理系統(tǒng)都能提供強(qiáng)大的支持,幫助他們提高工作效率,優(yōu)化工作流程,實(shí)現(xiàn)數(shù)字化轉(zhuǎn)型。
"辦事指南智慧管理系統(tǒng)"是一款全面集成的管理軟件,專為提高組織運(yùn)營(yíng)效率而設(shè)計(jì)。其基于Java開(kāi)發(fā),依托于SpringMVC框架,確保了系統(tǒng)的穩(wěn)定性和可擴(kuò)展性,而MySQL數(shù)據(jù)庫(kù)則提供了高效的數(shù)據(jù)存儲(chǔ)和處理能力。
該軟件的核心功能模塊豐富多樣,旨在實(shí)現(xiàn)精細(xì)化管理。部門(mén)管理模塊幫助組織清晰劃分職責(zé),提升協(xié)作效率;財(cái)務(wù)管理模塊涵蓋預(yù)算控制、資金流跟蹤等,實(shí)現(xiàn)財(cái)務(wù)透明化;調(diào)查統(tǒng)計(jì)管理模塊通過(guò)數(shù)據(jù)分析,為決策提供有力支持。服務(wù)評(píng)價(jià)管理模塊鼓勵(lì)用戶反饋,持續(xù)優(yōu)化服務(wù)質(zhì)量;合同管理確保合同流程合規(guī),降低法律風(fēng)險(xiǎn)。
會(huì)議管理和借閱管理提供便捷的資源調(diào)配工具,權(quán)限管理則嚴(yán)格控制用戶訪問(wèn)權(quán)限,確保信息安全。日志管理和手續(xù)流程管理確保操作的可追溯性,通知公告管理確保信息即時(shí)傳達(dá)。投訴建議管理用于收集改進(jìn)意見(jiàn),文件歸檔管理保障文檔有序存放,項(xiàng)目管理和應(yīng)急預(yù)案則確保項(xiàng)目順利進(jìn)行。
用戶管理模塊便于管理員對(duì)用戶進(jìn)行管理,預(yù)算管理助力成本控制,政策法規(guī)管理保持合規(guī)性,知識(shí)庫(kù)管理則是知識(shí)共享的平臺(tái),資產(chǎn)管理則負(fù)責(zé)實(shí)物和無(wú)形資產(chǎn)的追蹤。
總的來(lái)說(shuō),"辦事指南智慧管理系統(tǒng)"是一個(gè)集成了企業(yè)管理各個(gè)方面的重要工具,旨在通過(guò)智能化手段,簡(jiǎn)化操作,提升組織運(yùn)營(yíng)效率,滿足現(xiàn)代企業(yè)多元化、精細(xì)化的需求。
一、總體架構(gòu)
"辦事指南智慧管理系統(tǒng)"采用B/S(Browser/Server)架構(gòu)設(shè)計(jì),這是一種客戶端-服務(wù)器端的架構(gòu)模式,用戶通過(guò)標(biāo)準(zhǔn)的Web瀏覽器訪問(wèn),所有的業(yè)務(wù)邏輯和數(shù)據(jù)處理都集中在服務(wù)器端執(zhí)行,從而極大地降低了系統(tǒng)的復(fù)雜性和對(duì)用戶設(shè)備的要求。
二、核心組件
1. 前端界面(User Interface, UI):基于HTML、CSS和JavaScript構(gòu)建,采用響應(yīng)式設(shè)計(jì),適應(yīng)不同終端設(shè)備的屏幕尺寸,提供直觀易用的圖形用戶界面。主要模塊有各個(gè)功能列表、數(shù)據(jù)展示、操作界面等。
2. 后端服務(wù)(Business Logic, BL):使用Java作為主要編程語(yǔ)言,結(jié)合Spring MVC框架,提供穩(wěn)定、高效且可擴(kuò)展的服務(wù)。每個(gè)功能模塊對(duì)應(yīng)一個(gè)或多個(gè)控制器,處理用戶的請(qǐng)求,調(diào)用業(yè)務(wù)邏輯層處理具體操作,并將結(jié)果返回給前端。
3. 數(shù)據(jù)庫(kù)管理(Database Management, DM):采用關(guān)系型數(shù)據(jù)庫(kù)如MySQL或Oracle,存儲(chǔ)所有的業(yè)務(wù)數(shù)據(jù),包括部門(mén)信息、財(cái)務(wù)記錄、用戶信息等,支持事務(wù)處理和安全訪問(wèn)控制。
4. 服務(wù)層(Service Layer, SL):作為BL與DM之間的橋梁,封裝數(shù)據(jù)庫(kù)操作,提供易于維護(hù)和擴(kuò)展的業(yè)務(wù)服務(wù)接口。
三、模塊間協(xié)作
各部門(mén)功能模塊之間通過(guò)接口進(jìn)行通信,實(shí)現(xiàn)數(shù)據(jù)共享和協(xié)同工作。例如,用戶管理與權(quán)限管理相互聯(lián)動(dòng),確保只有經(jīng)過(guò)授權(quán)的用戶才能訪問(wèn)特定功能;財(cái)務(wù)管理與項(xiàng)目管理通過(guò)預(yù)算和資金流動(dòng)進(jìn)行關(guān)聯(lián)。
四、安全性設(shè)計(jì)
系統(tǒng)采用了多層安全措施,包括用戶身份驗(yàn)證、數(shù)據(jù)加密傳輸、訪問(wèn)權(quán)限控制等,以保護(hù)敏感信息不被非法獲取或篡改。
五、性能優(yōu)化
考慮到大數(shù)據(jù)量處理和并發(fā)訪問(wèn),系統(tǒng)設(shè)計(jì)了負(fù)載均衡和緩存機(jī)制,以提高響應(yīng)速度和系統(tǒng)穩(wěn)定性。
總的來(lái)說(shuō),"辦事指南智慧管理系統(tǒng)"是一個(gè)集成、模塊化、可擴(kuò)展的系統(tǒng),旨在提供高效、安全、易用的管理服務(wù),滿足組織內(nèi)部多樣化的辦公需求。
在瀏覽器中輸入系統(tǒng)網(wǎng)址,打開(kāi)登錄界面后輸入登錄賬號(hào)、登錄密碼、驗(yàn)證碼即可登錄。
工作臺(tái)包含:部門(mén)管理、財(cái)務(wù)管理、調(diào)查統(tǒng)計(jì)管理、服務(wù)評(píng)價(jià)管理、合同管理、會(huì)議管理、借閱管理、權(quán)限管理、日志管理、手續(xù)流程管理、通知公告管理、投訴建議管理、文件歸檔管理、項(xiàng)目管理、應(yīng)急管理、用戶管理、預(yù)算管理、政策法規(guī)管理、知識(shí)庫(kù)管理、資產(chǎn)管理,根據(jù)不同角色權(quán)限菜單展示會(huì)有所區(qū)別。
管理功能主要字段信息包含:管理編碼、部門(mén)名稱、上級(jí)部門(mén)、負(fù)責(zé)人、聯(lián)系方式等。使用表格形式展示這些信息,方便用戶查看和編輯,方便用戶進(jìn)行管理信息的管理。
針對(duì)管理,系統(tǒng)精心設(shè)置了全方位功能模塊,涵蓋新增、編輯、刪除、導(dǎo)出、條件檢索以及查看詳情等核心操作。用戶在使用過(guò)程中,僅需緊密跟隨頁(yè)面內(nèi)直觀且詳盡的操作提示,即可輕松駕馭各項(xiàng)流程。我們秉持化繁為簡(jiǎn)的理念,打造出簡(jiǎn)約明快的界面風(fēng)格與邏輯清晰的操作流程,旨在讓用戶在高效管理數(shù)據(jù),享受到愉悅、無(wú)壓力的操作體驗(yàn)。
管理功能主要字段信息包含:管理編碼、收支類型、收入/支出金額、收支對(duì)象、收支時(shí)間、經(jīng)辦人等。使用表格形式展示這些信息,方便用戶查看和編輯,方便用戶進(jìn)行管理信息的管理。
為實(shí)現(xiàn)對(duì)管理,系統(tǒng)精心配備了豐富的功能組件,包括新增、編輯、刪除、導(dǎo)出、條件搜以及詳情查看等實(shí)用操作。用戶在操作過(guò)程中,只需遵循頁(yè)面上清晰易懂的引導(dǎo)提示,即可順暢地完成各項(xiàng)任務(wù)。我們注重用戶體驗(yàn),以簡(jiǎn)約而不失專業(yè)的界面設(shè)計(jì),輔以直觀且高效的流程布局,旨在助力用戶在輕松管理數(shù)據(jù)同時(shí),全面提升操作滿意度與工作效率。
管理功能主要字段信息包含:管理編碼、調(diào)查問(wèn)題、選項(xiàng)、調(diào)查人、調(diào)查日期、統(tǒng)計(jì)結(jié)果等。使用表格形式展示這些信息,方便用戶查看和編輯,方便用戶進(jìn)行管理信息的管理。
為滿足管理的多元需求,系統(tǒng)配置了一系列操作功能:新增、編輯、刪除、導(dǎo)出、搜索、詳情。用戶在實(shí)際操作中,僅需按照頁(yè)面上直觀且詳盡的操作提示,即可輕松駕馭各項(xiàng)流程。系統(tǒng)界面設(shè)計(jì)簡(jiǎn)約清爽,操作邏輯清晰明了,旨在讓用戶在高效管理數(shù)據(jù)的同時(shí),盡享流暢、無(wú)壓力的操作體驗(yàn),大幅提升工作效率與滿意度。
管理功能主要字段信息包含:管理編碼、評(píng)價(jià)人、評(píng)價(jià)日期、評(píng)價(jià)對(duì)象、評(píng)價(jià)內(nèi)容、評(píng)價(jià)結(jié)果等。使用表格形式展示這些信息,方便用戶查看和編輯,方便用戶進(jìn)行管理信息的管理。
管理設(shè)置新增、編輯、刪除、條件搜索、查看詳情等操作,可按照頁(yè)面提示進(jìn)行操作執(zhí)行,界面結(jié)構(gòu)設(shè)計(jì)簡(jiǎn)單,操作流程簡(jiǎn)潔明了,可提升用戶操作體驗(yàn)。
管理功能主要字段信息包含:管理編碼、合同名稱、合同編號(hào)、簽約單位、簽約時(shí)間、合同金額等。使用表格形式展示這些信息,方便用戶查看和編輯,方便用戶進(jìn)行管理信息的管理。
系統(tǒng)為管理提供了全面支持,包括新增記錄、編輯信息、刪除條目、數(shù)據(jù)導(dǎo)出、條件檢索及詳情查看等功能。用戶只需遵循頁(yè)面清晰的操作指引,即可輕松完成各項(xiàng)任務(wù)。界面設(shè)計(jì)遵循極簡(jiǎn)原則,布局直觀,交互流暢,旨在營(yíng)造無(wú)負(fù)擔(dān)的操作環(huán)境,顯著提升用戶的使用體驗(yàn)與工作效率。
管理功能主要字段信息包含:管理編碼、會(huì)議名稱、會(huì)議地點(diǎn)、會(huì)議時(shí)間、參會(huì)人員、會(huì)議議程等。使用表格形式展示這些信息,方便用戶查看和編輯,方便用戶進(jìn)行管理信息的管理。
針對(duì)管理,系統(tǒng)精心設(shè)置了全方位功能模塊,涵蓋新增、編輯、刪除、導(dǎo)出、條件檢索以及查看詳情等核心操作。用戶在使用過(guò)程中,僅需緊密跟隨頁(yè)面內(nèi)直觀且詳盡的操作提示,即可輕松駕馭各項(xiàng)流程。我們秉持化繁為簡(jiǎn)的理念,打造出簡(jiǎn)約明快的界面風(fēng)格與邏輯清晰的操作流程,旨在讓用戶在高效管理數(shù)據(jù),享受到愉悅、無(wú)壓力的操作體驗(yàn)。
管理功能主要字段信息包含:管理編碼、借閱人、借閱日期、借閱圖書(shū)、借閱數(shù)量、歸還日期等。使用表格形式展示這些信息,方便用戶查看和編輯,方便用戶進(jìn)行管理信息的管理。
為實(shí)現(xiàn)對(duì)管理,系統(tǒng)精心配備了豐富的功能組件,包括新增、編輯、刪除、導(dǎo)出、條件搜以及詳情查看等實(shí)用操作。用戶在操作過(guò)程中,只需遵循頁(yè)面上清晰易懂的引導(dǎo)提示,即可順暢地完成各項(xiàng)任務(wù)。我們注重用戶體驗(yàn),以簡(jiǎn)約而不失專業(yè)的界面設(shè)計(jì),輔以直觀且高效的流程布局,旨在助力用戶在輕松管理數(shù)據(jù)同時(shí),全面提升操作滿意度與工作效率。
管理功能主要字段信息包含:管理編碼、角色名稱、權(quán)限設(shè)置、角色描述等。使用表格形式展示這些信息,方便用戶查看和編輯,方便用戶進(jìn)行管理信息的管理。
為滿足管理的多元需求,系統(tǒng)配置了一系列操作功能:新增、編輯、刪除、導(dǎo)出、搜索、詳情。用戶在實(shí)際操作中,僅需按照頁(yè)面上直觀且詳盡的操作提示,即可輕松駕馭各項(xiàng)流程。系統(tǒng)界面設(shè)計(jì)簡(jiǎn)約清爽,操作邏輯清晰明了,旨在讓用戶在高效管理數(shù)據(jù)的同時(shí),盡享流暢、無(wú)壓力的操作體驗(yàn),大幅提升工作效率與滿意度。
管理功能主要字段信息包含:管理編碼、用戶、操作時(shí)間、操作內(nèi)容、操作結(jié)果等。使用表格形式展示這些信息,方便用戶查看和編輯,方便用戶進(jìn)行管理信息的管理。
管理設(shè)置新增、編輯、刪除、條件搜索、查看詳情等操作,可按照頁(yè)面提示進(jìn)行操作執(zhí)行,界面結(jié)構(gòu)設(shè)計(jì)簡(jiǎn)單,操作流程簡(jiǎn)潔明了,可提升用戶操作體驗(yàn)。
管理功能主要字段信息包含:管理編碼、流程名稱、所屬部門(mén)、流轉(zhuǎn)節(jié)點(diǎn)、申請(qǐng)材料等。使用表格形式展示這些信息,方便用戶查看和編輯,方便用戶進(jìn)行管理信息的管理。
系統(tǒng)為管理提供了全面支持,包括新增記錄、編輯信息、刪除條目、數(shù)據(jù)導(dǎo)出、條件檢索及詳情查看等功能。用戶只需遵循頁(yè)面清晰的操作指引,即可輕松完成各項(xiàng)任務(wù)。界面設(shè)計(jì)遵循極簡(jiǎn)原則,布局直觀,交互流暢,旨在營(yíng)造無(wú)負(fù)擔(dān)的操作環(huán)境,顯著提升用戶的使用體驗(yàn)與工作效率。
管理功能主要字段信息包含:管理編碼、通知標(biāo)題、發(fā)布人、發(fā)布日期、通知內(nèi)容、附件等。使用表格形式展示這些信息,方便用戶查看和編輯,方便用戶進(jìn)行管理信息的管理。
針對(duì)管理,系統(tǒng)精心設(shè)置了全方位功能模塊,涵蓋新增、編輯、刪除、導(dǎo)出、條件檢索以及查看詳情等核心操作。用戶在使用過(guò)程中,僅需緊密跟隨頁(yè)面內(nèi)直觀且詳盡的操作提示,即可輕松駕馭各項(xiàng)流程。我們秉持化繁為簡(jiǎn)的理念,打造出簡(jiǎn)約明快的界面風(fēng)格與邏輯清晰的操作流程,旨在讓用戶在高效管理數(shù)據(jù),享受到愉悅、無(wú)壓力的操作體驗(yàn)。
管理功能主要字段信息包含:管理編碼、投訴人、投訴時(shí)間、投訴問(wèn)題、投訴結(jié)果、解決方案等。使用表格形式展示這些信息,方便用戶查看和編輯,方便用戶進(jìn)行管理信息的管理。
為實(shí)現(xiàn)對(duì)管理,系統(tǒng)精心配備了豐富的功能組件,包括新增、編輯、刪除、導(dǎo)出、條件搜以及詳情查看等實(shí)用操作。用戶在操作過(guò)程中,只需遵循頁(yè)面上清晰易懂的引導(dǎo)提示,即可順暢地完成各項(xiàng)任務(wù)。我們注重用戶體驗(yàn),以簡(jiǎn)約而不失專業(yè)的界面設(shè)計(jì),輔以直觀且高效的流程布局,旨在助力用戶在輕松管理數(shù)據(jù)同時(shí),全面提升操作滿意度與工作效率。
管理功能主要字段信息包含:管理編碼、文件名稱、文件編號(hào)、文件分類、文件內(nèi)部編號(hào)、歸檔責(zé)任人等。使用表格形式展示這些信息,方便用戶查看和編輯,方便用戶進(jìn)行管理信息的管理。
為滿足管理的多元需求,系統(tǒng)配置了一系列操作功能:新增、編輯、刪除、導(dǎo)出、搜索、詳情。用戶在實(shí)際操作中,僅需按照頁(yè)面上直觀且詳盡的操作提示,即可輕松駕馭各項(xiàng)流程。系統(tǒng)界面設(shè)計(jì)簡(jiǎn)約清爽,操作邏輯清晰明了,旨在讓用戶在高效管理數(shù)據(jù)的同時(shí),盡享流暢、無(wú)壓力的操作體驗(yàn),大幅提升工作效率與滿意度。
管理功能主要字段信息包含:管理編碼、項(xiàng)目名稱、負(fù)責(zé)人、項(xiàng)目類型、起始日期、截止日期等。使用表格形式展示這些信息,方便用戶查看和編輯,方便用戶進(jìn)行管理信息的管理。
管理設(shè)置新增、編輯、刪除、條件搜索、查看詳情等操作,可按照頁(yè)面提示進(jìn)行操作執(zhí)行,界面結(jié)構(gòu)設(shè)計(jì)簡(jiǎn)單,操作流程簡(jiǎn)潔明了,可提升用戶操作體驗(yàn)。
管理功能主要字段信息包含:管理編碼、應(yīng)急預(yù)案名稱、應(yīng)急措施、執(zhí)行人、執(zhí)行時(shí)間、應(yīng)急聯(lián)系方式等。使用表格形式展示這些信息,方便用戶查看和編輯,方便用戶進(jìn)行管理信息的管理。
系統(tǒng)為管理提供了全面支持,包括新增記錄、編輯信息、刪除條目、數(shù)據(jù)導(dǎo)出、條件檢索及詳情查看等功能。用戶只需遵循頁(yè)面清晰的操作指引,即可輕松完成各項(xiàng)任務(wù)。界面設(shè)計(jì)遵循極簡(jiǎn)原則,布局直觀,交互流暢,旨在營(yíng)造無(wú)負(fù)擔(dān)的操作環(huán)境,顯著提升用戶的使用體驗(yàn)與工作效率。
管理功能主要字段信息包含:管理編碼、用戶名、密碼、角色、電話、郵箱等。使用表格形式展示這些信息,方便用戶查看和編輯,方便用戶進(jìn)行管理信息的管理。
針對(duì)管理,系統(tǒng)精心設(shè)置了全方位功能模塊,涵蓋新增、編輯、刪除、導(dǎo)出、條件檢索以及查看詳情等核心操作。用戶在使用過(guò)程中,僅需緊密跟隨頁(yè)面內(nèi)直觀且詳盡的操作提示,即可輕松駕馭各項(xiàng)流程。我們秉持化繁為簡(jiǎn)的理念,打造出簡(jiǎn)約明快的界面風(fēng)格與邏輯清晰的操作流程,旨在讓用戶在高效管理數(shù)據(jù),享受到愉悅、無(wú)壓力的操作體驗(yàn)。
管理功能主要字段信息包含:管理編碼、預(yù)算名稱、預(yù)算類型、預(yù)算金額、審批人、審批時(shí)間等。使用表格形式展示這些信息,方便用戶查看和編輯,方便用戶進(jìn)行管理信息的管理。
為實(shí)現(xiàn)對(duì)管理,系統(tǒng)精心配備了豐富的功能組件,包括新增、編輯、刪除、導(dǎo)出、條件搜以及詳情查看等實(shí)用操作。用戶在操作過(guò)程中,只需遵循頁(yè)面上清晰易懂的引導(dǎo)提示,即可順暢地完成各項(xiàng)任務(wù)。我們注重用戶體驗(yàn),以簡(jiǎn)約而不失專業(yè)的界面設(shè)計(jì),輔以直觀且高效的流程布局,旨在助力用戶在輕松管理數(shù)據(jù)同時(shí),全面提升操作滿意度與工作效率。
管理功能主要字段信息包含:管理編碼、標(biāo)題、發(fā)文單位、發(fā)布日期、文號(hào)、內(nèi)容等。使用表格形式展示這些信息,方便用戶查看和編輯,方便用戶進(jìn)行管理信息的管理。
為滿足管理的多元需求,系統(tǒng)配置了一系列操作功能:新增、編輯、刪除、導(dǎo)出、搜索、詳情。用戶在實(shí)際操作中,僅需按照頁(yè)面上直觀且詳盡的操作提示,即可輕松駕馭各項(xiàng)流程。系統(tǒng)界面設(shè)計(jì)簡(jiǎn)約清爽,操作邏輯清晰明了,旨在讓用戶在高效管理數(shù)據(jù)的同時(shí),盡享流暢、無(wú)壓力的操作體驗(yàn),大幅提升工作效率與滿意度。
管理功能主要字段信息包含:管理編碼、知識(shí)庫(kù)名稱、知識(shí)點(diǎn)分類、知識(shí)點(diǎn)描述、上傳人員、上傳時(shí)間等。使用表格形式展示這些信息,方便用戶查看和編輯,方便用戶進(jìn)行管理信息的管理。
管理設(shè)置新增、編輯、刪除、條件搜索、查看詳情等操作,可按照頁(yè)面提示進(jìn)行操作執(zhí)行,界面結(jié)構(gòu)設(shè)計(jì)簡(jiǎn)單,操作流程簡(jiǎn)潔明了,可提升用戶操作體驗(yàn)。
管理功能主要字段信息包含:管理編碼、資產(chǎn)名稱、資產(chǎn)編號(hào)、規(guī)格型號(hào)、資產(chǎn)類別、存放位置等。使用表格形式展示這些信息,方便用戶查看和編輯,方便用戶進(jìn)行管理信息的管理。
系統(tǒng)為管理提供了全面支持,包括新增記錄、編輯信息、刪除條目、數(shù)據(jù)導(dǎo)出、條件檢索及詳情查看等功能。用戶只需遵循頁(yè)面清晰的操作指引,即可輕松完成各項(xiàng)任務(wù)。界面設(shè)計(jì)遵循極簡(jiǎn)原則,布局直觀,交互流暢,旨在營(yíng)造無(wú)負(fù)擔(dān)的操作環(huán)境,顯著提升用戶的使用體驗(yàn)與工作效率。
系統(tǒng)支持唯一登錄,一個(gè)賬號(hào)同時(shí)只能由一人使用。信息展示順序如果特殊說(shuō)明,按照排序索引值從大到小進(jìn)行排序。數(shù)據(jù)刪除之后,其關(guān)聯(lián)的數(shù)據(jù)將不可用使用,或無(wú)法正常顯示。內(nèi)容狀態(tài)一般為正常時(shí),表示數(shù)據(jù)可正常使用操作,如果為異常或者未審核,則表示在關(guān)聯(lián)數(shù)據(jù)調(diào)用時(shí),不會(huì)顯示。
網(wǎng)站是個(gè)人網(wǎng)站,設(shè)計(jì)目的展現(xiàn)個(gè)人風(fēng)采,設(shè)計(jì)風(fēng)格是根據(jù)個(gè)人喜好設(shè)計(jì),簡(jiǎn)約唯美的風(fēng)格圖片以及圖標(biāo)現(xiàn)個(gè)人特色。主要功能要注冊(cè)登錄、個(gè)人簡(jiǎn)介、個(gè)人愛(ài)好、個(gè)人收藏、留言管理,完善個(gè)人信息等功能模塊
其他主要模塊的定義
頁(yè)面 | 作用 |
Login.jsp | 登錄,檢驗(yàn)用戶名是否為空,Ajax網(wǎng)頁(yè)的異步刷新 |
Do.jsp | 驗(yàn)證賬號(hào)密碼是否和數(shù)據(jù)庫(kù)相同,顯示錯(cuò)誤信心 |
Index.jsp | 指引頁(yè)面 |
Customer.java | 用戶的用戶名,密碼 |
CustomerDao.java | 鏈接數(shù)據(jù)庫(kù) ,獲得數(shù)據(jù)庫(kù)里用戶的密碼 |
EncodingFilter.java | 文字過(guò)濾器 |
ValidateServlet.Java | 檢查驗(yàn)證碼是否正確 |
validateMix.jsp | 驗(yàn)證碼生成頁(yè)面 |
ftz.java。 | 該頁(yè)面用于防止用戶繞過(guò)登錄直接跳轉(zhuǎn)到其他頁(yè)面進(jìn)行操作 |
網(wǎng)站圖片來(lái)源:wps畫(huà)報(bào),百度,web實(shí)驗(yàn),表情包圖片
音樂(lè):酷狗音樂(lè)下載,通過(guò)audacity剪輯其中部分
開(kāi)發(fā)環(huán)境搭建
Myeclipse2018和mysql和navicat for mysql(可視化mysql工具)
運(yùn)行工具
2345加速瀏覽器(IE模式 超速模式) chrome瀏覽器均可運(yùn)行
使用主要技術(shù)
javaScript技術(shù):表單驗(yàn)證關(guān)鍵字,滾動(dòng)字幕 逐字顯示(index2.jsp),顯示日期時(shí)間JavaScript HTML DOM 事件(collection.jsp index.jsp等)
Boostrap實(shí)現(xiàn)響應(yīng)式布局
(2)作品后端要求采用JSP、JavaBean、Servlet以及數(shù)據(jù)庫(kù)等技術(shù)實(shí)現(xiàn)
JSP內(nèi)置對(duì)象:本網(wǎng)站主要運(yùn)用了 request, response, session三個(gè)。request主要用來(lái)獲取用戶輸入的基本信息以及具體頁(yè)面進(jìn)行的操作中需要的數(shù)據(jù)。利用response來(lái)進(jìn)行重定向,以及實(shí)現(xiàn)目的頁(yè)面跳轉(zhuǎn)用法為 response.setHeader("refresh","刷新時(shí)間間隔;目的頁(yè)面地址");
驗(yàn)證碼技術(shù)的使用:避免重復(fù)登錄。是服務(wù)器隨機(jī)產(chǎn)生驗(yàn)證碼字符串,保存在session中,并寫(xiě)入圖片,將圖片連同表單發(fā)給客戶端。用戶輸入賬號(hào)密碼驗(yàn)證碼,將獲取的驗(yàn)證碼與隨機(jī)產(chǎn)生的驗(yàn)證碼進(jìn)行比較,相同則繼續(xù)進(jìn)行,不同將錯(cuò)誤信息返回客戶端,避免程序的繼續(xù)運(yùn)行。
JavaBean:將用戶登錄的信息封裝在JavaBean中,在需要時(shí)從JavaBean中讀出。DAO本次主要用CustomerDao.java鏈接數(shù)據(jù)庫(kù) ,獲得數(shù)據(jù)庫(kù)里用戶的密碼
servlet這里主要用的是doGet()和doPost()。本實(shí)例主要用來(lái)驗(yàn)證驗(yàn)證碼是否準(zhǔn)確。以及使用Filter來(lái)解決常常會(huì)出現(xiàn)中文亂碼情況。ftz.java:該頁(yè)面用于防止用戶繞過(guò)登錄直接跳轉(zhuǎn)到其他頁(yè)面進(jìn)行操作。該頁(yè)面主要用了Filter過(guò)濾器來(lái)實(shí)現(xiàn)防止跳轉(zhuǎn)的功能。該過(guò)濾器進(jìn)行跳轉(zhuǎn)頁(yè)面之前進(jìn)行判斷是否有用戶名,若有用戶名則代表用戶進(jìn)行登錄操作,過(guò)濾器放行;若用戶名為NULL,則過(guò)濾器不放行,直接跳轉(zhuǎn)到登錄頁(yè)面。
Ajax用于網(wǎng)頁(yè)的異步刷新和只刷新網(wǎng)頁(yè)的一小部分,可以帶來(lái)更好的用戶體驗(yàn),減輕服務(wù)器負(fù)擔(dān),
MYSQL數(shù)據(jù)庫(kù):用JDBC將JAVAWEB和數(shù)據(jù)庫(kù)連接,在數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)用戶登錄信息表來(lái)判斷是否存在該登錄用戶以及實(shí)現(xiàn)用戶注冊(cè)功能。
數(shù)據(jù)庫(kù)設(shè)計(jì) 用戶密碼表和留言信息表
目錄
1.前言 3
3.系統(tǒng)的實(shí)現(xiàn)與測(cè)試 ..5
5.操作方法 23
6.分析與總結(jié) 24
7.1 參考文獻(xiàn): ..25
南昌大學(xué)軟件學(xué)院 java web 大作業(yè) 實(shí)驗(yàn)報(bào)告
1.前言
為了滿足以上的需求,系統(tǒng)分成了兩大模塊,普通用戶模塊和管理員模塊。
南昌大學(xué)軟件學(xué)院 java web 大作業(yè) 實(shí)驗(yàn)報(bào)告
功能模塊圖如圖所示。
相應(yīng) Struts 頁(yè)面流程如下所示(電子版可自行放大) :
本系統(tǒng)采用如下的數(shù)據(jù)表:
用戶信息表 users:用于記錄用戶信息數(shù)據(jù)表
南昌大學(xué)軟件學(xué)院 java web 大作業(yè) 實(shí)驗(yàn)報(bào)告
字段名 類型 長(zhǎng)度 是否為主鍵 可否為空 說(shuō)明
ID nchar 10 是 否 用戶 ID
username nchar 10 否 否 用戶姓名
password nchar 10
cardnum int 10
否 否 用戶密碼
否 否 卡號(hào)信息
userlevel int 10 否 否 用戶級(jí)別
coater int 10 否 否 借閱限額
borrowed int 10 否 否 已借閱數(shù)
can_borrow int 10 否 否 可借閱數(shù)
圖書(shū)信息表 books: (用于存儲(chǔ)圖書(shū)相關(guān)信息 )
字段名 類型 長(zhǎng)度 是否為主鍵 可否為空 說(shuō)明
b_ID int 10 是 否 圖書(shū) ID
b_name nvarchar 50 否 否 圖書(shū)名稱
b_author nchar 10 否 否 圖書(shū)作者
b_publish nvarchar 50 否 否 圖書(shū)出版社
b_type nchar 10 否 否 圖書(shū)類型
b_count int 10
b_hot int 10
借閱表 borrowbook: ( 用于表示借閱信息 )
否 否 擁有數(shù)量
否 否 歡迎度
字段名 類型 長(zhǎng)度 是否為主鍵 可否為空 說(shuō)明
brid int 10 是 否 借閱表 id
cardnum int 10 是 否 用戶表外鍵
b_ID int 10 是 否 圖書(shū)表外鍵
borrowday nchar 10 否 否 借閱日期
shouldreturn nchar 10 否 否 應(yīng)還日期
罰金表 fine: (用于設(shè)置罰金 )
字段名 類型 長(zhǎng)度 是否為主鍵 可否為空 說(shuō)明
fine float 10 是 否 罰金
3.系統(tǒng)的實(shí)現(xiàn)與測(cè)試
3.1 系統(tǒng)采用的關(guān)鍵技術(shù)
本系統(tǒng)采用的是 Model2 模型,Model2 表示的是基于 MVC模式的框架。MVC是 Model-View
-Controller 的簡(jiǎn)寫(xiě)。 "Model" 代表的是應(yīng)用的業(yè)務(wù)邏輯(通過(guò) JavaBean,), "View" 是應(yīng)
用的表示面(由 JSP頁(yè)面產(chǎn)生) ,"Controller" 是提供應(yīng)用的處理過(guò)程控制(一般是一個(gè)
Servlet),通過(guò)這種設(shè)計(jì)模型把應(yīng)用邏輯,處理過(guò)程和顯示邏輯分成不同的組件實(shí)現(xiàn)。這些
組件可以進(jìn)行交互和重用。從而彌補(bǔ)了 Model1 的不足。
南昌大學(xué)軟件學(xué)院 java web 大作業(yè) 實(shí)驗(yàn)報(bào)告
Model2 具有組件化的優(yōu)點(diǎn)從而更易于實(shí)現(xiàn)對(duì)大規(guī)模系統(tǒng)的開(kāi)發(fā)和管理, 但是開(kāi)發(fā) MVC系統(tǒng)
比簡(jiǎn)單的 JSP開(kāi)發(fā)要復(fù)雜許多, 它需要更多的時(shí)間學(xué)習(xí)和掌握。 同時(shí)新東西的引入會(huì)帶來(lái)新
的問(wèn)題(這讓我想起來(lái)關(guān)于 "自動(dòng)計(jì)算 "的一篇文章,中間提到為了降低系統(tǒng)的復(fù)雜度,卻導(dǎo)
致更高的復(fù)雜度) 。必須基于 MVC組件的方式重新思考和設(shè)計(jì)應(yīng)用結(jié)構(gòu)。 原來(lái)通過(guò)建立一個(gè)
簡(jiǎn)單的 JSP頁(yè)面就能實(shí)現(xiàn)的應(yīng)用現(xiàn)在變成了多個(gè)步驟的設(shè)計(jì)和實(shí)現(xiàn)過(guò)程。 所有的頁(yè)面和組
件必須在 MVC 框架中實(shí)現(xiàn),所以必須進(jìn)行附加地開(kāi)發(fā)工作。 MVC 本身就是一個(gè)非常復(fù)雜
的系統(tǒng),所以采用 MVC 實(shí)現(xiàn) Web 應(yīng)用時(shí),最好選一個(gè)現(xiàn)成的 MVC框架,在此之下進(jìn)行開(kāi)
發(fā),從而取得事半功倍的效果。現(xiàn)在有很多可供使用的 MVC 框架,由于 Struts 有完整的文
檔并且相對(duì)來(lái)講比較簡(jiǎn)單,所以用它開(kāi)發(fā) MVC 系統(tǒng)還是比較方便地。
3.2 關(guān)鍵程序流程
本實(shí)驗(yàn)的總體流程如下:
本系統(tǒng)應(yīng)用 3 層架構(gòu)模型,現(xiàn)分別對(duì)其進(jìn)行闡述:
第一層架構(gòu)為數(shù)據(jù)庫(kù)層,也是程序的最底層 (主要由 DataBase.java 實(shí)現(xiàn) ),它的功能實(shí)現(xiàn)
sql2012 數(shù)據(jù)庫(kù)的連接,函數(shù)里封裝了幾個(gè)操作。
public boolean query(String s) ( 用于查詢數(shù)據(jù)表操作 );
public ResultSet getlist(String s) (用于獲取數(shù)據(jù)的可以滾動(dòng)結(jié)果集 ) ;
public int update(String s) (用于簡(jiǎn)單的數(shù)據(jù)更新操作)
public boolean executebatch(String a[]) (批處理,用于處理多條 sql);
第二層為 JavaBean層和 DAO層,主要實(shí)現(xiàn)對(duì)數(shù)據(jù)表的信息及對(duì)其進(jìn)行操作的信息進(jìn)行封裝
(主要 由文 件 Books.java、 Fine.java、 borrowbook.java 、 Users.java、BookService.java 、borrowbookSevice.java、FineService.java 和 UserService.java 來(lái)實(shí)現(xiàn)的)。在相應(yīng)的 JavaBean
層封裝了所有數(shù)據(jù)表的信息,在上述的實(shí)體類中 (Books.java、Fine.java、borrowbook.java 、
Users.java)僅包含對(duì)屬性的 set和 get 方法,在相應(yīng)的 DAO層主要包含對(duì)數(shù)據(jù)表的相關(guān)操作,
如獲得該數(shù)據(jù)表的全部信息或部分信息,增加、刪除、修改、查詢相應(yīng)的數(shù)據(jù)表;
第三層為業(yè)務(wù)邏輯層, 主要由 Struts 和其的 action 來(lái)實(shí)現(xiàn), 實(shí)現(xiàn)頁(yè)面的控制和跳轉(zhuǎn)到相應(yīng)的
jsp 頁(yè)面,其中 action 主要包括 BooksAction.java、LoginAction.java、ResetfineAction.java、UserAction.java。
南昌大學(xué)軟件學(xué)院 java web 大作業(yè) 實(shí)驗(yàn)報(bào)告
相應(yīng)的程序架構(gòu)如圖所示:
數(shù)據(jù)庫(kù)的連接和相關(guān)一些操作函數(shù) (在文件 DataBase.java中實(shí)現(xiàn)的 ):
package com.wk.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DataBase {
private Connection conn=null;
private Statement stmt;
ResultSet rs=null;
// 數(shù)據(jù)庫(kù)的 url
南昌大學(xué)軟件學(xué)院 java web 大作業(yè) 實(shí)驗(yàn)報(bào)告
private String url="jdbc:sqlserver://localhost:1433;DatabaseName=Book";
// 數(shù)據(jù)庫(kù)的用戶名密碼
String user="sa";
String pass="123";
// 用于驗(yàn)證查詢操作
public boolean query(String s) throws SQLException{
try{
// 加載驅(qū)動(dòng)
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}catch(ClassNotFoundException e){
System.out.println("加載驅(qū)動(dòng)器類時(shí)異常 ");
}
try{
// 創(chuàng)建鏈接
conn=DriverManager.getConnection(url, user, pass); stmt=conn.createStatement();
rs=stmt.executeQuery(s);
}catch(SQLException e){
System.out.println("query 連接數(shù)據(jù)庫(kù)的過(guò)程中出現(xiàn) SQL異常 <br>");
}
return(rs.next());
}
// 用于結(jié)果集可滾動(dòng)的操作
public ResultSet getlist(String s) throws SQLException{
try{
// 加載驅(qū)動(dòng)
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}catch(ClassNotFoundException e){
System.out.println("加載驅(qū)動(dòng)器類時(shí)異常 ");
}
try{
// 建立連接
conn=DriverManager.getConnection(url, user, pass);
// 得到 statement 對(duì)象
stmt=conn.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
// 得到一個(gè)可滾動(dòng)但不可以更新的結(jié)果集 rs
rs=stmt.executeQuery(s);
}catch(SQLException e){
System.out.println("更新操作連接數(shù)據(jù)庫(kù)的過(guò)程中出現(xiàn) SQL異常
<br>");
}
return rs;
}
// 用于對(duì)數(shù)據(jù)庫(kù)的更新
public int update(String s) throws SQLException{
int msg=0;
try{
// 加載驅(qū)動(dòng)
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}catch(ClassNotFoundException e){
System.out.println("加載驅(qū)動(dòng)器類時(shí)異常 ");
}
try{
// 創(chuàng)建鏈接
conn=DriverManager.getConnection(url, user, pass); stmt=conn.createStatement();
msg=stmt.executeUpdate(s);
}catch(SQLException e){
System.out.println("連接數(shù)據(jù)庫(kù)的過(guò)程中出現(xiàn) SQL異常 <br>");
}
return(msg);
}
// 批處理,用于處理多條 sql
public boolean executebatch(String a[]){
try {
// 創(chuàng)建鏈接
conn=DriverManager.getConnection(url, user, pass); conn.setAutoCommit(false);//關(guān)閉自動(dòng)提交,進(jìn)行事物處理 stmt=conn.createStatement();
for(int i=0;i<a.length;i++){
stmt.addBatch(a[i]);
}
int [] number=stmt.executeBatch();// 開(kāi)始批處理,返回被執(zhí)行的 sql 語(yǔ)句的序號(hào)
conn.commit();
System.out.println("共有 "+number.length+"條 sql語(yǔ)句被執(zhí)行 "); stmt.clearBatch();//清空 batch
conn.close();
return true;
} catch (SQLException e) {
// TODO Auto-generated catch block try {
conn.rollback();
return false;
} catch (SQLException e1) {
// TODO Auto-generated catch block e1.printStackTrace();
}
e.printStackTrace();
}
return false;
}
// 關(guān)閉數(shù)據(jù)流
public void close() throws SQLException{
conn.close();
stmt.close();
rs.close();
}
}
管理員操作用戶 (在文件 UserService.java 中實(shí)現(xiàn)的 )
// 管理員對(duì)用戶的添加操作
public boolean adduser(String a[]) throws SQLException{
// 將密碼明文轉(zhuǎn)換為密文存入數(shù)據(jù)庫(kù)
a[2]=ead.encrypt(a[2]);
// 利用字符串的拼接組成 sql語(yǔ)句
sql="insert into users
values('"+a[0]+"','"+a[1]+"','"+a[2]+"',"+a[3]+","+a[4]+","+a[5]+","+a[6]+")";
System.out.println("添加的 sql"+sql);
// 調(diào)用數(shù)據(jù)庫(kù)的更新數(shù)據(jù)的操作函數(shù)
int result=db.update(sql);
if(result!=0)
return true;
return false;
}
// 管理員對(duì)用戶的刪除操作
public boolean deluser(String id) throws SQLException{
sql="delete from users where ID='"+id+"'";
System.out.println("del sql="+sql);
int result=db.update(sql);
if(result!=0)
return true;
return false;
}
// 管理員對(duì)用戶的更新操作
public boolean updateusers(String a[]) throws SQLException{
sql="update users set username='"+a[1]+"',userlevel="+a[2]+" where ID='"+a[0]+"'";
System.out.println("更新 sql="+sql);
int result=db.update(sql);
if(result!=0)
return true;
return false;
}
這里管理員對(duì)圖書(shū)的操作和對(duì)用戶的操作很類似,這里就不再贅述了。
用戶對(duì)圖書(shū)的查詢,借閱和續(xù)借和歸還 (主要在 BooksService.java 和
borrowbookService.java 實(shí)現(xiàn)的)
BooksService.java 部分代碼:
/ /模糊查詢,獲取用戶的關(guān)鍵詞,以此為查詢條件進(jìn)行搜索,默認(rèn)按人氣高至低排列
public ArrayList getbook(String a[]) throws SQLException{
ArrayList al=new ArrayList();
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
if(a[0].equals("")){
sql="select * from books where "+a[2]+" LIKE '%"+a[1]+"%' order by b_hot desc";
}else{
sql="select * from books where "+a[2]+" LIKE '%"+a[0]+"%' order by b_hot desc";
}
System.out.println("sql:"+sql);
// 調(diào)用 DataBase.java的函數(shù),獲取相應(yīng)的圖書(shū)列表
rs=db.getlist(sql);
while (rs.next()) {
Books bk=new Books();
bk.setB_ID(rs.getInt(1)); bk.setB_name(rs.getString(2));
bk.setB_author(rs.getString(3));
bk.setB_publish(rs.getString(4));
bk.setB_type(rs.getString(5)); bk.setB_count(rs.getInt(6));
bk.setB_hot(rs.getInt(7));
al.add(bk); // 將al放到 arrayList中
}
return al;}
borrowbookService.java 部分代碼:
// 歸還圖書(shū),
public boolean returnbook(String brid,String cardnum,String b_ID) throws SQLException{
String sql1="update users set borrowed=borrowed-1 , can_borrow=
can_borrow+1 where cardnum="+cardnum;
String sql2="update books set b_count=b_count+1 where b_ID="+b_ID;
String sql3="delete from borrowbook where brid="+brid; String a[]={sql1,sql2,sql3};
// 處理多條語(yǔ)句時(shí),使用事務(wù)處理和使用批處理進(jìn)行處理。
if(db.executebatch(a))
return true;
return false;
}
// 續(xù)借圖書(shū)
public boolean renewbook(String brid) throws SQLException{
// 將當(dāng)前時(shí)間獲得,拼接之 sql,進(jìn)行數(shù)據(jù)庫(kù)表的更新操作
sql="update borrowbook set borrowday='"+new
Day().getnowdate()+"',shouldreturn='"+new Day().getdate()+"' where brid="+brid;
System.out.println("sql="+sql);
int r=db.update(sql);
if(r!=0){
return true;
}
return false;
}
管理員對(duì)罰金的設(shè)置(主要由 FineService.java和Resetfine.java完成的)FineService.java代碼:
package com.wk.service;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.wk.util.DataBase;
public class FineService {
DataBase db=new DataBase();
ResultSet rs=null;
String sql="";
// 管理員設(shè)定罰金金額
public boolean setfine(float f){
// 字符拼接將設(shè)置的金額拼接成 sql
sql="update fine set fine="+f; System.out.println(sql);
try {
// 調(diào)用 database.java的更新函數(shù)進(jìn)行數(shù)據(jù)庫(kù)操作int r=db.update(sql);
if(r!=0){
System.out.println("設(shè)置罰金成功! "); return true;
}else{
System.out.println("設(shè)置罰金失??! ");
}
} catch (SQLException e) {
// TODO Auto-generated catch block e.printStackTrace();
}
return false;
}
// 獲取上一次設(shè)定的罰金金額
public float getlastfine(){
float m=0;
sql="select fine from fine";
try {
// 獲取當(dāng)前設(shè)定的金額
rs=db.getlist(sql);
while(rs.next()){
m=rs.getFloat(1);
}
} catch (SQLException e) {
// TODO Auto-generated catch block e.printStackTrace();
}
return m;
}
}
Resetfine.java部分代碼:
// 設(shè)置罰金
if("y".equals(isfirst)){
f.setFine(fs.getlastfine()); request.setAttribute("oldfine", f.getFine());
return mapping.findForward("success");
}else{
f.setFine(fs.getlastfine()); System.out.println("oldfine="+f.getFine());
request.setAttribute("oldfine", f.getFine());
// 獲取表單輸入的罰金金額,轉(zhuǎn)為 float類型fs.setfine(Float.parseFloat(fineForm.getFine()));
f.setFine(fs.getlastfine());
System.out.println("newfine="+f.getFine()); request.setAttribute("newfine", f.getFine());
// 跳轉(zhuǎn)至成功界面
return mapping.findForward("success");
}
輔助工具包(實(shí)現(xiàn)用戶密碼的加密和時(shí)間的計(jì)算轉(zhuǎn)換問(wèn)題)Day.java
/*
* 換算時(shí)間
* 計(jì)算兩個(gè)日期之間相差的天數(shù)
* 計(jì)算一個(gè)日期在 n天之后的日期字符串
*/
package com.wk.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Day {
// 傳入兩個(gè)時(shí)間字符串,計(jì)算其中相差的天數(shù)
public int getlaterday(String d1,String d2) throws ParseException{
Date a=new SimpleDateFormat("yyyy-MM-dd").parse(d1); Date b=new SimpleDateFormat("yyyy-MM-dd").parse(d2);
// 獲取相減后天數(shù)
long day=(a.getTime()-b.getTime())/(24*60*60*1000);
System.out.println(day+"");
return (int) day;
}
// 獲取兩個(gè)月后時(shí)間字符串
public String getdate(){
SimpleDateFormat formatDate=new SimpleDateFormat("yyyy-MM-dd");
// 字符串轉(zhuǎn)換
Calendar c=Calendar.getInstance();
//new Date().getTime(); 這個(gè)是獲得當(dāng)前電腦的時(shí)間,你也可以換成一個(gè) 隨意的時(shí)間
c.setTimeInMillis(new Date().getTime());
c.add(Calendar.DATE, 60);//天后的日期
Date date=new Date(c.getTimeInMillis()); // 將c轉(zhuǎn)換成 Date
System.out.println("date="+formatDate.format(date)); return formatDate.format(date);
}
// 獲取當(dāng)前的時(shí)間
public String getnowdate(){
Date dt=new Date();
SimpleDateFormat matter1=new SimpleDateFormat("yyyy-MM-dd");
System.out.println(matter1.format(dt)); return matter1.format(dt);
}
}
EncryptAndDecrypt.java
package com.wk.util;
public class EncryptAndDecrypt {
/**
* 加密String明文輸入 ,String密文輸出
*
* @param
* @return
*/
public String encrypt(String sourceString){
char [] p="圖書(shū)管理 ".toCharArray();
int n=p.length;
char [] c=sourceString.toCharArray();
int m=c.length;
for(int k=0;k<m;k++){
int mima=c[k]+p[k%n];
c[k]=(char)mima;//加密
}
return new String (c);//返回密文
}
/**
* 輸入加密后的 String,返回原本的 String
*
* @param
* @return
*/
public String decrypt(String sourceString){
char [] p="圖書(shū)管理 ".toCharArray();
int n=p.length;
南昌大學(xué)軟件學(xué)院 java web 大作業(yè) 實(shí)驗(yàn)報(bào)告
char [] c=sourceString.toCharArray();
int m=c.length;
for(int k=0;k<m;k++){
int mima=c[k]-p[k%n];
c[k]=(char)mima;//解密
}
return new String (c);//返回明文
}
}
碼問(wèn)題:
問(wèn)題描述: 當(dāng)需要將數(shù)據(jù)插入數(shù)據(jù)庫(kù)時(shí), 會(huì)發(fā)現(xiàn)插入的數(shù)據(jù)有亂碼。 在界面的表單進(jìn)行數(shù)據(jù)輸入時(shí),傳出傳入的中文數(shù)據(jù)也會(huì)出現(xiàn)亂碼。
1、JSP顯示中文亂碼的問(wèn)題,一般都是沒(méi)有設(shè)置頁(yè)面編碼,注意添加以下這樣一段代碼
<%@ page pageEncoding=”-U8TF%>
”
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
"pageEncoding"指定了當(dāng)前 jsp文件存儲(chǔ)使用的編碼方式, “contentType用來(lái)”指定響應(yīng)頭消息
中的 "Content-Type"
當(dāng)服務(wù)端的響應(yīng)頭消息中沒(méi)有指定 charset 時(shí),客戶端會(huì)依據(jù)上面代碼中的 charset 指定的編
碼方式解碼頁(yè)面。
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
并且 JSP都以 UTF-8的編碼方式保存, 把所有可能出現(xiàn)的問(wèn)題通通抹殺。 http://www.linuxidc.com 如
果你使用 Myeclipse,可以設(shè)置 Myeclipse 的默認(rèn)參數(shù),使 Myeclipse 新建 JSP文件時(shí),可以
自 動(dòng) 是 用 UTF-8 的 編 碼 方 式 。 方 法 : Windows-Preference-Myeclipse-File and
Editor-JSP-Encoding,選擇 ISO 10646/Unicode(UTF-8)。
2、從表單獲取的數(shù)據(jù)有中文亂碼,在 Struts 里面,一般都使用過(guò)濾器進(jìn)行數(shù)據(jù)的過(guò)濾,保
證數(shù)據(jù)的編碼格式與你自己頁(yè)面設(shè)置的一致。關(guān)鍵代碼如下:
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
// TODO Auto-generated method stub
// 這里設(shè)置接受編碼
arg0.setCharacterEncoding("utf-8");
// 繼續(xù)讓它前進(jìn),這句話必須要有
arg2.doFilter(arg0, arg1);
}
值得一提的是, arg0.doFilter(arg0,arg1); 這句話一定要有, 不然過(guò)濾器不會(huì)向前執(zhí)行, 會(huì)停止 不前,這樣程序就沒(méi)法運(yùn)行了!
3、讀取數(shù)據(jù)時(shí),在 Servlet 中添加 request.setCharacterEncoding("UTF-8"); 可以很好地解決從JSP頁(yè)面接受中文參數(shù)亂碼。
南昌大學(xué)軟件學(xué)院 java web 大作業(yè) 實(shí)驗(yàn)報(bào)告
南昌大學(xué)軟件學(xué)院 java web 大作業(yè) 實(shí)驗(yàn)報(bào)告
南昌大學(xué)軟件學(xué)院 java web 大作業(yè) 實(shí)驗(yàn)報(bào)告
南昌大學(xué)軟件學(xué)院 java web 大作業(yè) 實(shí)驗(yàn)報(bào)告
4.9 安全退出界面:
5.操作方法
登錄成功后,點(diǎn)擊左側(cè)相應(yīng)的歸還或續(xù)借菜單,即可進(jìn)入相關(guān)界面,點(diǎn)擊歸還或續(xù)借按鈕即可完成操作。
管理員界面,點(diǎn)擊左側(cè)菜單的添加用戶和添加圖書(shū),輸入相關(guān)信息,點(diǎn)擊添加即可。
南昌大學(xué)軟件學(xué)院 java web 大作業(yè) 實(shí)驗(yàn)報(bào)告
管理員界面,點(diǎn)擊左側(cè)菜單的更新用戶和更新圖書(shū),找到想要更新的用戶或
圖書(shū),當(dāng)然也可以通過(guò) id 號(hào)或卡號(hào)進(jìn)行搜索,然后在該用戶的這一條記錄的相
應(yīng)位置填寫(xiě)修改后的數(shù)據(jù)(當(dāng)然有些字段是不能修改的) ,點(diǎn)擊更新按鈕即可。
6.分析與總結(jié)
在這一節(jié)中,我主要討論了兩個(gè)問(wèn)題,一個(gè)是系統(tǒng)的聯(lián)機(jī)文檔,另一個(gè)是系
統(tǒng)的測(cè)試,下面我們分別加以說(shuō)明。 作為一個(gè)完整的系統(tǒng), 聯(lián)機(jī)文檔是其中不可
缺少的部分也是相當(dāng)重要的部分。 好的文檔能夠使用戶快速了解并準(zhǔn)確的使用系
統(tǒng)的各項(xiàng)功能。 減少誤操作, 減少錯(cuò)誤產(chǎn)生的可能, 這對(duì)用戶和開(kāi)發(fā)人員都有很多的好處。所以在開(kāi)發(fā)本系統(tǒng)中, 也加入了不少的文檔, 除了對(duì)于幾大模塊的詳細(xì)說(shuō)明外,對(duì)于易出錯(cuò)和不易操作的地方 (如多條件查詢部分) 又作了詳細(xì)的說(shuō)明。
由于本身能力的局限性,所以做編寫(xiě)的代碼,即使經(jīng)過(guò)反復(fù)檢查也難免出錯(cuò)
所以在本階段力求使用有限的時(shí)間找出盡可能多的錯(cuò)誤, 力求系統(tǒng)盡量正確。 我們?cè)诒鞠到y(tǒng)的測(cè)試中使用了黑盒法 (即不關(guān)心程序內(nèi)部的邏輯結(jié)構(gòu), 而是根據(jù)程序的功能來(lái)設(shè)計(jì)是檢測(cè)) 請(qǐng)一位不熟悉本系統(tǒng)的人來(lái)進(jìn)行隨意性的操作, 打破習(xí)
慣的操作順序,從中發(fā)現(xiàn)錯(cuò)誤,在此階段系統(tǒng)的大量錯(cuò)誤得到了改正 .
信息管理系統(tǒng)所涉及的數(shù)據(jù)庫(kù)設(shè)計(jì)的重要步驟加載測(cè)試。 加載測(cè)試工作貫穿于程序測(cè)試工作的全過(guò)程,整個(gè)錄入、修改、查詢、處理工作均可視為對(duì)數(shù)據(jù)庫(kù)
的加載測(cè)試工作。 要設(shè)計(jì)出一個(gè)好的信息管理系統(tǒng)數(shù)據(jù)庫(kù), 除滿足系統(tǒng)所要求的
功能外,還必須遵守下列原則: 1)基本表的個(gè)數(shù)越少越好。 2) 主鍵的個(gè)數(shù)越少越好。鍵是表間連接的工具,主鍵越少,表間的連接就越簡(jiǎn)單。 3)字段的個(gè)數(shù)越
少越好。 4) 所有基本表的設(shè)計(jì)均應(yīng)盡量符合第三范式。數(shù)據(jù)庫(kù)的設(shè)計(jì)中,如何
處理多對(duì)多的關(guān)系和如何設(shè)計(jì)主鍵, 是兩個(gè)有著較大難度、需要重點(diǎn)考慮的問(wèn)題。
最后,希望自己在以后的空閑時(shí)間,能將該系統(tǒng)逐漸完美,將 bugs一個(gè)一
個(gè)的消除,將界面重新設(shè)計(jì),使其符合當(dāng)代的審美潮流。
南昌大學(xué)軟件學(xué)院 java web 大作業(yè) 實(shí)驗(yàn)報(bào)告
7.1 參考文獻(xiàn):
[1]JSP 編程技巧 /清宏計(jì)算機(jī)工作室編著 . 北京:機(jī)械工業(yè)出版社, 2001.1
[2]JAVA EE工程實(shí)訓(xùn)教程 /朱俊炎,吳英培編著 .天津科學(xué)技術(shù)出版社 ., 2010.2 [3] 深入 JAVA Servlet 網(wǎng)絡(luò)編程 . 清華大學(xué)出版社
[4]Struts 開(kāi)發(fā)入門(mén)與項(xiàng)目實(shí)踐 . 北京:人民郵電出版社 , 2005.8
[5]J2EE 應(yīng)用開(kāi)發(fā)實(shí)例精解 . 清華大學(xué)出版社
7.3 MVC架構(gòu)模式的認(rèn)識(shí)
模型 -視圖 -控制器( MVC )是 80 年代 Smalltalk-80 出現(xiàn)的一種軟件設(shè)計(jì)模式,現(xiàn)在已經(jīng)被
廣泛的使用。
1、模型( Model)
模型是應(yīng)用程序的主體部分。模型表示業(yè)務(wù)數(shù)據(jù),或者業(yè)務(wù)邏輯 .
2、視圖( View )
視圖是應(yīng)用程序中用戶界面相關(guān)的部分,是用戶看到并與之交互的界面。
3、控制器( controller)
控制器工作就是根據(jù)用戶的輸入,控制用戶界面數(shù)據(jù)顯示和更新 model 對(duì)象狀態(tài)。
MVC 式的出現(xiàn)不僅實(shí)現(xiàn)了功能模塊和顯示模塊的分離, 同時(shí)它還提高了應(yīng)用系統(tǒng)的可
維護(hù)性、可擴(kuò)展性、可移植性和組件的可復(fù)用性
早期的程序中, 如果不注意對(duì)數(shù)功能和顯示的解耦合, 常常會(huì)導(dǎo)致程序的復(fù)雜及難以維
護(hù)。很多 VB,Delphi 等 RAD 程序都有這種問(wèn)題。甚至現(xiàn)在的 C#,Java 有時(shí)候也會(huì)出現(xiàn)把業(yè)
務(wù)邏輯寫(xiě)在顯示模塊中的現(xiàn)象
管 MVC 設(shè)計(jì)模式很早就提出, 但在 Web 項(xiàng)目的開(kāi)發(fā)中引入 MVC 卻是步履維艱。 主要
原因:一是在早期的 Web 項(xiàng)目的開(kāi)發(fā)中,程序語(yǔ)言和 HTML 的分離一直難以實(shí)現(xiàn)。 CGI 程
序以字符串輸出的形式動(dòng)態(tài)地生成 HTML 內(nèi)容。后來(lái)隨著腳本語(yǔ)言的出現(xiàn),前面的方式又
被倒了過(guò)來(lái),改成將腳本語(yǔ)言書(shū)寫(xiě)的程序嵌入在 HTML 內(nèi)容中。這兩種方式有一個(gè)相同的
不足之處即它們總是無(wú)法將程序語(yǔ)言和 HTML 分離。二是腳本語(yǔ)言的功能相對(duì)較弱,缺乏
支持 MVC 設(shè)計(jì)模式的一些必要的技術(shù)基礎(chǔ)。 直到基于 J2EE 的 JSP Model 2 問(wèn)世時(shí)才得以改觀。 它用 JSP 技術(shù)實(shí)現(xiàn)視圖的功能, 用 Servlet 技術(shù)實(shí)現(xiàn)控制器的功能, 用 JavaBean 技
術(shù)實(shí)現(xiàn)模型的功能
JSP Model 1 與 JSP Model 2
SUN 在 JSP 出現(xiàn)早期制定了兩種規(guī)范, 稱為 Model1 和 Model2 。雖然 Model2 在一定程度上實(shí)現(xiàn)了 MVC ,但是它的應(yīng)用用并不盡如人意
JSP Model 1
JSP Model 2
model2 容易使系統(tǒng)出現(xiàn)多個(gè) Controller ,并且對(duì)頁(yè)面導(dǎo)航的處理比較復(fù)雜
有些人覺(jué)得 model2 仍不夠好,于是 Craig R. McClanahan 2000 年 5 月 提交了一個(gè)
WEB framework 給 Java Community. 這就是后來(lái)的 Struts.
2001 年 7 月, Struts1.0 ,正式發(fā)布。該項(xiàng)目也成為了 Apache Jakarta 的子項(xiàng)目之一
Struts 質(zhì)上就是在 Model2 的基礎(chǔ)上實(shí)現(xiàn)的一個(gè) MVC 架構(gòu)。它只有一個(gè)中心控制器, 他采用 XML 定制轉(zhuǎn)向的 URL。采用 Action 來(lái)處理邏輯。
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。