韓慶亮
摘要:隨著因特網(wǎng)的普及和人們使用網(wǎng)絡(luò)能力的提高,越來越多的人開始在網(wǎng)上為自己的出行尋找一個(gè)更加安全、便捷、省錢的途徑。因此拼車的方式應(yīng)運(yùn)而生,而且受到了人們的普遍歡迎。那么一種能夠提供及時(shí)、有效、真實(shí)拼車信息的系統(tǒng)是很有現(xiàn)實(shí)意義的。通過對人們需求的分析,設(shè)計(jì)了此拼車系統(tǒng)。系統(tǒng)主要作用是為用戶提供一個(gè)查詢拼車信息和發(fā)布拼車信息的平臺,滿足用戶在實(shí)際出行中的拼車需要。
關(guān)鍵詞:拼車;路線查詢;jsp;mysql;MyEclipse
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)19-0064-03
The Design and Realization of Carpool System Based on Web
HAN Qing-liang
(Shan Dong University of Science and Technology, Qingdao 266590, China)
Abstract: Along with the popularization of the Internet and the popularization of people's application of the network, more and more people are starting to find a way which is safe、convenient and more cheaper.So the carpool mode emerge as the times require,and it is welcomed by the most of the people.So it is very practical to provide a timely, effective and real information system.Therefore, by understanding and Analysis on the needs of the people, the full investigation of the function of the existing carpool system and the design the carpool system. This system mainly provide a platform which people could query and publish carpool information.To satisfy the users need in the actual environment.
Key words: carpool; query; jsp; mysqL; MyEclipse
1 背景
在我國,交通的擁堵一直是一個(gè)困擾我國發(fā)展的大問題,北京城的堵車問題十分嚴(yán)重,對此都深有體會(huì)。其他很多城市比如武漢,西安等地,堵車的問題也很嚴(yán)重。建設(shè)和優(yōu)化交通路線雖然可以在一定程度上緩解交通的壓力,但是這不能從根本上解決交通問題。問題的根源是:人們擁有的汽車數(shù)量的急劇增加。目前,網(wǎng)絡(luò)平臺的發(fā)展以驚人的速度在發(fā)展,現(xiàn)在人們能夠利用網(wǎng)絡(luò)做的事情越來越多。外出的選擇作為人們生活中很重要的一個(gè)部分,自然也要充分的利用網(wǎng)絡(luò)的資源為自己服務(wù)。人們的出行總是傾向于更加的省錢和節(jié)省時(shí)間。而拼車正好可以滿足人們的這類需要。那么一個(gè)高效易用的拼車平臺就顯得尤為重要。此拼車系統(tǒng)的設(shè)計(jì)充分考慮到了用戶的心理需求。用戶可以方便地使用此系統(tǒng)查詢拼車信息,發(fā)布拼車信息以及使用論壇的功能參與拼車討論。管理員可以及時(shí)地對用戶和拼車路線管理。極大地方便了人們旅游或者上下班的出行選擇。同時(shí)也在一定程度上緩解了交通的壓力和減輕了環(huán)境污染。
2 開發(fā)環(huán)境和技術(shù)介紹
2.1 MyEclipse
MyEclipse為數(shù)據(jù)庫和有關(guān)于JavaEE項(xiàng)目開發(fā)以及發(fā)布提供了很大的方便。作為一個(gè)功能強(qiáng)大的插件集合,支持十分廣泛。開發(fā)界面整潔。同時(shí)使用MyEclipse與Tomcat集成后,發(fā)布和測試所開發(fā)的項(xiàng)目更加方便簡潔。
2.2 MySql
MySql數(shù)據(jù)庫是目前比較流行的數(shù)據(jù)庫之一。該數(shù)據(jù)庫可以管理存儲任何形式的數(shù)據(jù),且利用SQL語句可以很容易的對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行增加、修改、刪除和查詢的操作。同時(shí),MySql數(shù)據(jù)庫在小型應(yīng)用的開發(fā)中也比較流行。且MySql為開源數(shù)據(jù)庫,會(huì)節(jié)約一部分開發(fā)成本。
2.3 JSP
由JSP開發(fā)的Web應(yīng)用程序是可以跨平臺運(yùn)行的,這也是目前JSP技術(shù)比較流行的重要原因之一。JSP技術(shù)是和傳統(tǒng)的HTML的語言相結(jié)合,在HTML的標(biāo)記中插入Java代碼以實(shí)現(xiàn)相應(yīng)的功能。開發(fā)過程相對簡便高效和適用性強(qiáng)。
3 拼車系統(tǒng)設(shè)計(jì)
3.1 系統(tǒng)功能分析
3.1.1 前臺功能模塊
1)用戶功能:A.注冊:用戶在注冊頁面進(jìn)行注冊時(shí),如果相應(yīng)的輸入框?yàn)榭盏脑?,彈出對話框提示用戶輸入相?yīng)的內(nèi)容。在用戶輸入注冊信息后,將用戶名和數(shù)據(jù)庫中已經(jīng)存在的用戶名查找。如果不重名則注冊成功,否則注冊失敗。B.登錄:用戶在登錄頁面輸入自己的登錄信息。首先根據(jù)用戶名查找對應(yīng)的密碼,如果查找出的密碼和用戶輸入的密碼相同則登錄成功,否則登錄失敗。
2)拼車信息:A.長途拼車信息的查詢:用戶在輸入路線的起始地和目的地之后,將符合條件的全部路線顯示出來,并且以分頁的形式顯示。用戶可以輸入日期進(jìn)行模糊查詢,查詢的結(jié)果分頁顯示。用戶也可以輸入路線的起始地和目的地進(jìn)行精確路線信息查詢。B.上下班拼車信息的查詢:用戶可以查詢某個(gè)城市所有的拼車路線,也可以查詢城市中確定的起始地和目的地的拼車路線。查詢的結(jié)果均以分頁的形式顯示。
3)拼車論壇:A.用戶進(jìn)入論壇的模塊后,可以查看論壇中所有的帖子,并且對自己感興趣的帖子進(jìn)行回復(fù)。用戶可以修改自己發(fā)布過的帖子,修改帖子,刪除帖子。在刪除帖子的時(shí)候,要將屬于該帖子的所有回復(fù)一并刪除。用戶可以發(fā)表帖子。B. 實(shí)名認(rèn)證:用戶為了提高自己的信用等級,可以向指定的郵箱發(fā)送郵件。
3.1.2 后臺管理模塊
1)管理員登陸:管理員輸入管理員的用戶名和登錄密碼后,首先在數(shù)據(jù)庫中取出對應(yīng)管理員名字的密碼,如果密碼匹配則登錄成功,否則登錄失敗。
2)管理用戶:管理員可以通過用戶名查詢用戶的信息,且可以刪除該用戶。管理員可以修改實(shí)名審核成功的用戶。將其用戶信用等級改為實(shí)名認(rèn)證。用戶的列表在此是分頁顯示。
3)管理長途拼車信息:管理員可以通過輸入路線的起始地和目的地查詢出該路線的詳細(xì)信息并執(zhí)行刪除操作。
4)管理上下班拼車信息:管理員可以通過輸入上下班路線的起始地和目的地查詢路線的信息并執(zhí)行刪除的操作。路線信息是分頁顯示的。
5)管理帖子信息塊,管理員可以通過主題查詢用戶發(fā)布過的帖子,并且對一些內(nèi)容不當(dāng)?shù)奶舆M(jìn)行刪除操作。
3.2 系統(tǒng)性能分析
3.2.1 系統(tǒng)精度
用戶進(jìn)行注冊登錄時(shí),用戶名存在情況下應(yīng)該注冊失敗,代碼不能因此拋出異常。且在注冊時(shí)如果用戶沒有輸入注冊信息,應(yīng)該顯示提示信息,提醒用戶輸入。在發(fā)布拼車信息時(shí),發(fā)布的信息為空則不能發(fā)布。用戶在使用論壇功能時(shí),當(dāng)用戶刪除自己發(fā)布過的某一條帖子的時(shí)候,應(yīng)該將屬于該帖子的所有的回復(fù)帖子一并刪除,以防止數(shù)據(jù)庫中出現(xiàn)大量的冗余數(shù)據(jù)。在用戶查找長途拼車信息或者上下班拼車信息時(shí),數(shù)據(jù)庫中如果查找不到符合條件的路線信息,代碼不能因此拋出異常。
3.2.2 安全性
用戶進(jìn)入網(wǎng)站,在未登錄的情況下可以瀏覽長途拼車信息,上下班拼車信息,拼車指南,并且可以瀏覽相應(yīng)的詳細(xì)信息。當(dāng)用戶要發(fā)布拼車信息的時(shí)候,必須是注冊過的用戶。這可以通過session的技術(shù)實(shí)現(xiàn),當(dāng)用戶注冊過且登錄了,將為了該用戶保留一段時(shí)間的登錄狀態(tài)。用戶可以看到網(wǎng)站的所有版塊。這在一定程度上保障了信息的安全性。
在用戶登錄的驗(yàn)證方式上,應(yīng)該能夠有效地避免SQL的注入漏洞,用戶輸入用戶名和密碼后,應(yīng)該根據(jù)用戶名從數(shù)據(jù)庫中取出對應(yīng)的密碼,如果與用戶輸入的密碼一致,則登錄成功,這樣可以防止利用SQL注入漏洞的網(wǎng)站的非法登陸者。
3.3 數(shù)據(jù)庫分析
在拼車系統(tǒng)中,一共有6個(gè)實(shí)體,分別是用戶、管理員,長途拼車路線信息,上線班拼車路線信息,帖子,回復(fù)的帖子。具體關(guān)系為:用戶可以發(fā)布、查詢、刪除、修改長途和上下班拼車信息,以及發(fā)布,回復(fù)帖子。管理員可以查詢、修改,刪除用戶以及拼車信息。
3.4 系統(tǒng)表設(shè)計(jì)
數(shù)據(jù)庫共定義了6個(gè)數(shù)據(jù)表,分別是:line(長途拼車信息表),shortline(上下班拼車信息表),user(用戶信息表),topic(帖子信息表),reply(回復(fù)帖子信息表),admin(管理員信息表)。
以長途路線表為例:
長途路線信息表中的字段包括:lineId(長途路線信息的唯一標(biāo)識),lineStart(長途路線的出發(fā)地),lineEnd(長途路線目的地),startTime(該條路線的出發(fā)時(shí)間),journey(該條路線的里程數(shù)),cost(該條路線的費(fèi)用),totalNum(能過容納的總?cè)藬?shù)),currentNum(目前已經(jīng)加入的人數(shù)),carType(車的類型),releaseTime(發(fā)布的時(shí)間),releasePeople(發(fā)布人)
4 詳細(xì)設(shè)計(jì)與代碼實(shí)現(xiàn)
B/S的模式相比較于C/S的模式來說有更好的靈活性,有效地規(guī)避了后者對客戶端的依賴程度,系統(tǒng)分為前臺和后臺,其中前臺和后臺又分為不同的模塊分別進(jìn)行開發(fā)。在MVC模式中,相應(yīng)的各層之間分工十分明確,用JSP的技術(shù)實(shí)現(xiàn)表現(xiàn)層的應(yīng)用。用Servlet技術(shù)處理頁面?zhèn)鬟f的動(dòng)作參數(shù),代碼層與頁面層相分離,可以有效地提高代碼的重復(fù)利用率和使系統(tǒng)的擴(kuò)展性得到提高。
4.1 重要代碼
數(shù)據(jù)庫連接模塊代碼:
該部分的數(shù)據(jù)庫連接代碼為此網(wǎng)站訪問數(shù)據(jù)庫的公用代碼,例如:index.jsp頁面中使用include指令嵌入的right.jsp頁面,該頁面的功能是要顯示一組長途拼車信息或者上下班拼車信息。在該頁面中定義數(shù)據(jù)的實(shí)例對象去操作數(shù)據(jù)庫,從數(shù)據(jù)庫的長途拼車信息表或者上下班拼車信息表取出對應(yīng)的一組路線信息,并在該頁面中展示出來。代碼如下所示:
public Connection getConn() throws ClassNotFoundException
{
Connection ct=null;
try{
Class.forName("com.mysql.jdbc.Driver");
ct=DriverManager.getConnection("jdbc:mysql://localhost:3306/ e?useUnicode=true&characterEncoding=GBK","root","111111");
}catch(Exception e)
{
e.printStackTrace();
}
return ct;
}
5 結(jié)束語
目前我國的拼車也存在很多的問題。管理是一方面,最重要的一方面是拼車信息還不夠流通,也就是說拼車人查找拼車信息以及找到可靠的拼車伙伴還是比較困難。還有很多的人依然使用QQ群或者發(fā)傳單的方式來發(fā)布拼車的信息。這對于拼車在我國的普及不利。解決的辦法是提供更好地信息交流平臺。一個(gè)好的交流平臺不僅能夠帶動(dòng)人們尋找拼車信息的積極性,而且還可以促進(jìn)人們共享自己所擁有資源的積極性,比如說可以更方便地把自己的拼車意愿發(fā)布到拼車平臺上,能夠方便地找到有同樣拼車意愿的人們。
參考文獻(xiàn):
[1] 郭克華. Java Web 開發(fā)與應(yīng)用[M]. 北京: 清華大學(xué)出版社, 2012.
[2] 朱雪琴. Java Web項(xiàng)目開發(fā)案例導(dǎo)航[M]. 北京: 電子工業(yè)出版社, 2012.
[3] 李興華. Java Web開發(fā)實(shí)戰(zhàn)經(jīng)典[M]. 北京: 清華大學(xué)出版社, 2010.
[4] 張躍平, 耿祥義. Jsp程序設(shè)計(jì)[M]. 北京: 清華大學(xué)出版社, 2009.
[5] 張孝祥. Java Web 開發(fā)內(nèi)幕---高級特性[M]. 北京: 清華大學(xué)出版社, 2007.
[6] 史斌星. Java基礎(chǔ)編程貫通教程[M]. 北京: 清華大學(xué)出版社, 2005.
[7] Zhang Dongmei, Zhou Yingcao, Zhao Qing, et al. ANYDRILL drilling engineering design and technology software [J]. Oil Forum, 2012(01): 17-19.
[8] Li Dawei. Situation analysis and discussion on development of the professional application software in PETROCHINA[J]. Computer Applications of Petroleum, 2008, 60(4):2-5.