正文

都市供求信息網(wǎng)(22)

JSP項(xiàng)目開(kāi)發(fā)案例全程實(shí)錄(第2版) 作者:明日科技


若用戶(hù)沒(méi)有登錄,則進(jìn)入登錄頁(yè)面,在該頁(yè)面中輸入用戶(hù)名和密碼后提交表單進(jìn)行登錄,請(qǐng)求將被提交到LogInOutAction類(lèi)中的Login()方法進(jìn)行身份驗(yàn)證。Login()方法的代碼如下:

例程50 代碼位置:光盤(pán)\TM\01\src\com\yxq\action\LogInOutAction.java

/* 功能:查詢(xún)數(shù)據(jù)表,驗(yàn)證是否存在該用戶(hù) */

public String Login(){

String sql="select * from tb_user where user_name=? and user_password=?";

Object[] params={user.getUserName(),user.getUserPassword()}; //獲取輸入的用戶(hù)名和密碼,并保存

OpDB myOp=new OpDB();

if(myOp.LogOn(sql, params)){ //存在該用戶(hù),登錄成功

session.put("loginUser",user); //保存當(dāng)前用戶(hù)到session中

return LOGIN; //進(jìn)入后臺(tái)

}

else{ //用戶(hù)名或密碼錯(cuò)誤

addFieldError("loginE",getText("city.login.wrong.input")); //保存提示信息

return INPUT; //返回登錄頁(yè)面

}

}

請(qǐng)求被提交給Login()方法之前,需要進(jìn)行表單驗(yàn)證,所以可實(shí)現(xiàn)validateLogin()方法來(lái)驗(yàn)證表單,其實(shí)現(xiàn)代碼比較簡(jiǎn)單,這里不再給出,具體代碼可查看本書(shū)附帶光盤(pán)。

5.配置cityinfo.xml文件

之所以能在觸發(fā)“進(jìn)入后臺(tái)”超鏈接和提交登錄表單后,請(qǐng)求LogInOutAction類(lèi)相應(yīng)的方法進(jìn)行處理,是因?yàn)樵赾ityinfo.xml文件中指定了它們之間的關(guān)系。配置代碼如下:

例程51 代碼位置:光盤(pán)\TM\01\WEB-INF\classes\cityinfo.xml

<!-- 管理員登錄/退出 -->

<action name="log_*" class="com.yxq.action.LogInOutAction" method="{1}">

<result name="input">/pages/admin/Login.jsp</result>

<result name="login">/pages/admin/view/AdminTemp.jsp</result>

<result name="logout" type="redirectAction">goindex</result>

</action>

1.10 后臺(tái)頁(yè)面設(shè)計(jì)

1.10.1 后臺(tái)頁(yè)面概述

本系統(tǒng)中的所有后臺(tái)頁(yè)面都采用同一個(gè)頁(yè)面框架,該頁(yè)面框架采用二分欄結(jié)構(gòu),分為4個(gè)區(qū)即頁(yè)頭、側(cè)欄、頁(yè)尾和內(nèi)容顯示區(qū),該頁(yè)面框架的總體結(jié)構(gòu)與前臺(tái)頁(yè)面框架的結(jié)構(gòu)相同。網(wǎng)站后臺(tái)首頁(yè)的運(yùn)行效果如圖1.51所示。

1.10.2 后臺(tái)頁(yè)面的技術(shù)分析

本系統(tǒng)中,實(shí)現(xiàn)后臺(tái)頁(yè)面框架的JSP文件為AdminTemp.jsp,該頁(yè)面的布局如圖1.52所示。

本系統(tǒng)中,對(duì)后臺(tái)管理員所有請(qǐng)求的響應(yīng)都通過(guò)該框架頁(yè)面進(jìn)行顯示。在AdminTemp.jsp文件中主要采用include動(dòng)作和include指令來(lái)包含各區(qū)域所對(duì)應(yīng)的JSP文件。其實(shí)現(xiàn)技術(shù)與前臺(tái)頁(yè)面的實(shí)現(xiàn)技術(shù)是相同的,讀者可查看1.6.2節(jié)介紹的前臺(tái)頁(yè)面實(shí)現(xiàn)技術(shù)分析。

1.10.3 后臺(tái)頁(yè)面的實(shí)現(xiàn)過(guò)程

根據(jù)以上的頁(yè)面概述及技術(shù)分析,需要分別創(chuàng)建實(shí)現(xiàn)各區(qū)域的JSP文件,如實(shí)現(xiàn)頁(yè)頭的top.jsp、實(shí)現(xiàn)內(nèi)容顯示區(qū)的main.jsp、實(shí)現(xiàn)側(cè)欄的right.jsp、實(shí)現(xiàn)頁(yè)尾的end.jsp等。下面主要介紹框架頁(yè)面AdminTemp.jsp和main.jsp頁(yè)面的實(shí)現(xiàn)。

在AdminTemp.jsp頁(yè)面中應(yīng)用include指令和動(dòng)作標(biāo)識(shí)來(lái)包含各區(qū)域?qū)?yīng)的JSP文件。代碼如下:

例程52 代碼位置:光盤(pán)\TM\01\pages\admin\view\AdminTemp.jsp

<table>

<tr><td colspan="2"><%@ include file="top.jsp"%></td></tr> <!-- 包含頁(yè)頭文件 -->

<tr><td colspan="2"></td></tr>

<tr>

<td><jsp:include page="main.jsp"/></td> <!-- 包含main.jsp文件 -->

<td><jsp:include page="right.jsp"/></td> <!-- 包含側(cè)欄文件 -->

</tr>

<tr><td colspan="2"></td></tr>

<tr><td colspan="2"><%@ include file="end.jsp" %></td></tr> <!-- 包含頁(yè)尾文件 -->

</table>

在main.jsp文件中實(shí)現(xiàn)了內(nèi)容顯示區(qū)中的背景圖片,并在該頁(yè)面中加載要顯示在內(nèi)容顯示區(qū)中的JSP文件。代碼如下:

例程53 代碼位置:光盤(pán)\TM\01\pages\admin\view\main.jsp

<%

String mainPage=(String)request.getAttribute("mainPage");

if(mainPage==null||mainPage.equals(""))

mainPage="default.jsp";

%>

<table>

<tr><td><img src="images/default_t.jpg"></td></tr>

<tr><td background="images/default_m.jpg" valign="top"><jsp:include page="<%=mainPage%>"/></td></tr>

<tr><td><img src="images/default_e.jpg"></td></tr>

</table>


上一章目錄下一章

Copyright ? 讀書(shū)網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)