正文

都市供求信息网(22)

JSP项目开发案例全程实录(第2版) 作者:明日科技


若用户没有登录,则进入登录页面,在该页面中输入用户名和密码后提交表单进行登录,请求将被提交到LogInOutAction类中的Login()方法进行身份验证。Login()方法的代码如下:

例程50 代码位置:光盘\TM\01\src\com\yxq\action\LogInOutAction.java

/* 功能:查询数据表,验证是否存在该用户 */

public String Login(){

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

Object[] params={user.getUserName(),user.getUserPassword()}; //获取输入的用户名和密码,并保存

OpDB myOp=new OpDB();

if(myOp.LogOn(sql, params)){ //存在该用户,登录成功

session.put("loginUser",user); //保存当前用户到session中

return LOGIN; //进入后台

}

else{ //用户名或密码错误

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

return INPUT; //返回登录页面

}

}

请求被提交给Login()方法之前,需要进行表单验证,所以可实现validateLogin()方法来验证表单,其实现代码比较简单,这里不再给出,具体代码可查看本书附带光盘。

5.配置cityinfo.xml文件

之所以能在触发“进入后台”超链接和提交登录表单后,请求LogInOutAction类相应的方法进行处理,是因为在cityinfo.xml文件中指定了它们之间的关系。配置代码如下:

例程51 代码位置:光盘\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 后台页面设计

1.10.1 后台页面概述

本系统中的所有后台页面都采用同一个页面框架,该页面框架采用二分栏结构,分为4个区即页头、侧栏、页尾和内容显示区,该页面框架的总体结构与前台页面框架的结构相同。网站后台首页的运行效果如图1.51所示。

1.10.2 后台页面的技术分析

本系统中,实现后台页面框架的JSP文件为AdminTemp.jsp,该页面的布局如图1.52所示。

本系统中,对后台管理员所有请求的响应都通过该框架页面进行显示。在AdminTemp.jsp文件中主要采用include动作和include指令来包含各区域所对应的JSP文件。其实现技术与前台页面的实现技术是相同的,读者可查看1.6.2节介绍的前台页面实现技术分析。

1.10.3 后台页面的实现过程

根据以上的页面概述及技术分析,需要分别创建实现各区域的JSP文件,如实现页头的top.jsp、实现内容显示区的main.jsp、实现侧栏的right.jsp、实现页尾的end.jsp等。下面主要介绍框架页面AdminTemp.jsp和main.jsp页面的实现。

在AdminTemp.jsp页面中应用include指令和动作标识来包含各区域对应的JSP文件。代码如下:

例程52 代码位置:光盘\TM\01\pages\admin\view\AdminTemp.jsp

<table>

<tr><td colspan="2"><%@ include file="top.jsp"%></td></tr> <!-- 包含页头文件 -->

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

<tr>

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

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

</tr>

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

<tr><td colspan="2"><%@ include file="end.jsp" %></td></tr> <!-- 包含页尾文件 -->

</table>

在main.jsp文件中实现了内容显示区中的背景图片,并在该页面中加载要显示在内容显示区中的JSP文件。代码如下:

例程53 代码位置:光盘\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 © 读书网 www.dushu.com 2005-2020, All Rights Reserved.
鄂ICP备15019699号 鄂公网安备 42010302001612号