8.3.2 用户表示层
在用户表示层中,主要是一些相关的JSP页面,用于实现图8-2~8-7所示的页面。该层中的JSP页面应该放在对应项目的WebRoot目录下。本章只给出相应JSP页面中最核心部分的代码,详细代码及效果可以参考本书附带光盘中的程序源代码。
1.博客个人维护管理中心首页(blogAdminMain.jsp)
该页面为框架页,整个页面一共分成三个部分,具体对应页面文件及功能如下。
• adminTop.jsp页面:顶端页面,一般可以放置网站的logo或者广告条;
• adminLeft.jsp页面:管理主菜单,提供博客进入不同维护管理界面的超级链接;
• adminMain.jsp页面:一个欢迎页面,实际使用时,可以在该页面中加入相关的系统使用说明等信息。
2.左侧框架页面(adminLeft.jsp)
在该页面中,提供了博客进入不同维护管理界面的超级链接。核心程序代码及相关解释如下:
……
<font color="#000000">管理主菜单</font>
……
<font color="#000000"><a href="adminArticle.jsp" target="main">文章管理</a></font>
</td>
</tr>
<tr>
<td width="100%" height="8" align="center">
<font color="#000000"><a href="adminSort.jsp" target="main">分类管理</a></font>
</td>
</tr>
<tr>
<td width="100%" height="8" align="center">
<font color="#000000"><a href="adminLink.jsp" target="main">链接管理</a></font>
</td>
</tr>
<tr>
<td width="100%" height="7" align="center">
<font color="#000000"><a href="adminSelf.jsp" target="main">个人资料管理</a></font>
</td>
</tr>
<tr>
<td width="100%" height="7" align="center">
<font color="#000000"><a href="adminLogo.jsp" target="main">个人logo管理</a></font>
</td>
…….
在上面的页面中,如果博客单击“文章管理”超级链接,将跳转到“adminArticle.jsp”页面,以进行文章信息的维护管理功能。如果博客单击“分类管理”超级链接,将跳转到“adminSort.jsp”页面,以进行文章分类信息的维护管理功能。如果博客单击“链接管理”超级链接,将跳转到“adminLink.jsp”页面,进行链接信息的维护管理功能。如果博客单击“个人资料管理”超级链接,将跳转到“adminSelf.jsp”页面,进行个人基本信息的维护管理功能。如果博客单击“个人logo管理”超级链接,将跳转到“adminLogo.jsp”页面,进行图片的上传,实现个人Logo的维护管理功能。
3.文章信息管理页面(adminArticle.jsp)
本页面是在单击“文章管理”超级链接后跳转到的页面,在该页面中,博客可以分类显示文章信息列表,并删除对应的文章记录。核心程序代码如下:
……
<script language="javascript" src="images/adminArticle.js" type="text/ javascript"></script>
……
<body text="#FCD447" onload="loadRequest()">
……
<font color="#FF0000"><b>Blog文章管理</b></font>
</td>.
……
<font color="#FF0000"><b>文章分类</b></font>
<select id="sort" onchange="sortChange()">
</select>
……
<td width="25%" align="center">
<b>文章名称</b>
</td>
<td width="25%" align="center">
<b>发表时间</b>
</td>
<td width="50%" colspan="2" align= "center">
<b>操作</b>
</td>
</tr>
<tbody id="articleList"></tbody>
……
注意:在该页面中,使用了Ajax技术,在页面装载时通过onload事件调用了“loadRequest()”函数,该函数包含在JavaScript脚本文件“adminArticle.js”中。该函数借助Ajax提交“"adminArticle?action=load" ”请求,以获取服务器端数据库中的文章及分类信息,以进行文章列表信息和文章分类信息的动态装入工作。对应HTML中的DOM对象的名称分别为“sort”和“articleList”。
当用户在文章分类的下拉列表框中,选择对应的文章类别后,通过onchange事件调用“sortChange()”函数,在该函数中借助Ajax技术提交“"action=show" + "&sortid="+ sortid”请求,以获取数据服务器中指定文章分类的文章信息列表,动态装入到名称为“articleList”的动态表格中。
用户单击动态表格中对应文章记录的删除按钮时,根据脚本文件“adminArticle.js”中的设定,将提交“"adminArticle?action=delete" + "&articleid=" + id”请求,以删除指定文章编号的文章信息,然后动态刷新名称为“articleList”的动态表格中的数据。
4.文章分类信息管理页面(adminSort.jsp)
本页面是在单击“分类管理”超级链接后跳转到的页面,在该页面中,博客可以对文章的分类信息进行添加及删除等操作。核心程序代码如下:
……
<script language="javascript" src="images/adminSort.js" type="text/javascript"> </script>
……
……
……
<b><font color="#FF0000">新分类名称</font></b><b><font color="#FF0000">:</font></b>
<input style="BORDER-RIGHT: #e78d00 1px solid; BORDER-TOP: #e78d00 1px solid; BORDER-LEFT: #e78d00 1px solid; WIDTH: 125px; BORDER-BOTTOM: #e78d00 1px solid; " name="name">
<input class="button-submit" type="submit" value="添加" onclick="addSort()">
……
<td width="25%" align="center">
<b>分类名称</b>
</td>
<td width="50%" colspan="2" align="center">
<b>操作</b>
</td>
</tr>
<tbody id="sortList"></tbody>
……
该页面中同样使用了Ajax技术,在页面装载时通过onload事件调用了“loadRequest()”函数,该函数包含在JavaScript脚本文件“adminSort.js”中。该函数借助Ajax提交“"adminSort?action=load"”请求,以获取服务器端数据库中的文章分类信息,进行文章分类信息的动态装入工作。对应HTML中的DOM对象的名称分别为“sortList”。
当用户在新分类名称的文本框中,输入待增加的分类名称之后,单击“添加”按钮,将调用“addSort()”函数,该函数将提交“"action=add" + "&name="+ name”请求,将对应的分类信息保存到数据库对应的分类信息表中。为了解决中文信息的乱码问题,这里采用的是POST方式提交数据信息。
当用户单击动态表格中对应分类记录的删除按钮时,根据脚本文件“adminSort.js”中的设定,将提交“"adminSort?action=delete" + "&id=" + id”请求,以删除指定分类编号的分类信息,然后动态刷新名称为“sortList”的动态表格中的数据。
5.链接信息管理页面(adminLink.jsp)
本页面是在单击“链接管理”超级链接后跳转到的页面,在该页面中,博客可以对博客页面中的友情链接信息列表进行添加及删除等操作。核心程序代码如下:
……
<script language="javascript" src="images/adminLink.js" type="text/javascript"> </script>
……
<body text="#FCD447" onload="loadRequest() ">
……
<b><font color="#FF0000">新链接名称:</font></b>
<input style="BORDER-RIGHT: #e78d00 1px solid; BORDER-TOP: #e78d00 1px solid; BORDER-LEFT: #e78d00 1px solid; WIDTH: 125px; BORDER-BOTTOM: #e78d00 1px solid; " name="name">
<b><font color="#FF0000">地址:</font></b>
<input style="BORDER-RIGHT: #e78d00 1px solid; BORDER-TOP: #e78d00 1px solid; BORDER-LEFT: #e78d00 1px solid; WIDTH: 125px; BORDER-BOTTOM: #e78d00 1px solid; " name="url">
<input class="button-submit" type="submit" value="添加" style="width: 40; height: 20" onclick="addLink() ">
……
<td width="25%" align="center">
<b>链接名称</b>
</td>
<td width="46%" align="center">
<b>链接地址</b>
</td>
<td width="29%" colspan="2" align="center">
<b>操作</b>
</td>
</tr>
<tbody id="linkList"></tbody>
……
该页面中同样使用了Ajax技术,在页面装载时,通过onload事件调用了“loadRequest()”函数,该函数包含在JavaScript脚本文件“adminLink.js”中。该函数借助Ajax提交“"adminLinks?action=load"”请求,以获取服务器端数据库中的链接信息,进行链接信息的动态装入工作。对应HTML中的DOM对象的名称分别为“linkList”。
当用户在新链接名称及链接地址文本框中,输入待增加的信息之后,单击“添加”按钮,将调用“addLink()”函数,在该函数中,将提交“"action=add" + "&name="+ name + "&url="+ url1”请求,将对应的链接信息保存到数据库对应的链接信息表中。为了解决中文信息的乱码问题,这里采用的是POST方式提交数据信息。
当用户单击动态表格中删除按钮时,根据脚本文件“adminLink.js”中的设定,将提交“"adminLinks?action=delete" + "&id=" + id”请求,以删除指定链接编号的链接信息,然后动态刷新名称为“linkList”的动态表格中的数据。
6.个人基本信息管理页面(adminSelf.jsp)
本页面是在单击“个人资料管理”超级链接后跳转到的页面,在该页面中,博客可以对个人基本信息编辑修改。核心程序代码如下:
……
<%
Blog blog = (Blog)session.getAttribute(Constants.LOGIN_USER_KEY);
Integer modiFlag = (Integer)session.getAttribute(Constants.MODIFY_OK_KEY);
if (modiFlag!=null){
out.println("修改成功!");
session.removeAttribute(Constants.MODIFY_OK_KEY);
}
%>
……
<b><font color="#FF0000">博客个人资料</font></b>
……
…… <form method="post" action="saveSelf">
博客标题
</td>
<td>
<input class="text" size="26" name="subject" value="<%=blog.getSubject()%>">
……
博客密码
</td>
<td>
<input class="text" size="20" name="psw" value=" <%=blog.getPassword()%>">
……
<td class="redfont" nowrap width="10%" height="30">
确认密码
</td>
<td>
…… <input class="text" size="20" name= "psw2"value=
"<%=blog.getPassword()%>">
<td class="redfont" height="30">
博客邮件地址
</td>
<td width="90%">
<input class="text" size="20" name="email" value="<%=blog.getEmail()%>">
……
<input class="button-submit" id="save" type="submit"
value="确认修改" name="save">
……
页面获取登录验证通过后,借助session的对应属性保存博客相关信息,然后在对应的表单中动态装入。
当博客完成对应信息的修改,单击“确认修改”按钮之后,将提交“saveSelf”请求,以借助Servlet程序完成数据库中对应数据表信息的更新工作。
7.个人Logo图片管理页面(adminLogo.jsp)
本页面是在单击“个人Logo管理”超级链接后跳转到的页面,在该页面中,博客可以实现图片上传,以更换自己的Logo图片。核心程序代码如下:
……
<%
Integer modiFlag = (Integer)session.getAttribute(Constants.MODIFY_OK_KEY);
if (modiFlag!=null){
out.println("修改成功!");
session.removeAttribute(Constants.MODIFY_OK_KEY);
}
%>
……
……
<form enctype="multipart/form-data" method ="post"action="saveLogo">
<tr>
<td class="redfont" valign="top" height="30">
博客图片
</td>
<td>
<input type="file" name="image">
……
<input class="button-submit" id="save" type="submit" value="确认修改" name="save">
……
当博客借助浏览按钮选择了对应的图片文件,单击“确认修改”按钮之后,将提交“saveLogo”请求以借助Servlet实现图片文件的上传。注意该表单中的enctype="multipart/form-data"设置是为了确保文件信息的正确传递。
| 回书目 上一节 下一节 |
|
· 系统分析师自测获奖名.. · Linux结课考试自测获奖.. · 上周Linux系统命令的使.. · 上周真题冲刺测试获奖.. · 全国计算机等考四级模.. · 08年3月各大网上书店及.. |
· 网络工程师模拟测试获.. · 全国计算机软考考试指.. · 3月24日WCF聊天活动 积.. · 全国计算机等级考试四.. · 软件项目估计:第2版 · 系统分析师基础知识自.. |
|
||||
| · Vista SP1对决XP SP3 · 华为路由器配置 · 2008年上半年全国软考.. · AIX操作系统管理应用(.. · 华为员工自杀频频拷问.. · 三层交换技术专题 · ARP攻击防范与解决方案 · 隐私保护技术探讨 |
· 反垃圾邮件技术应用 · 龙芯要做中国的“奔腾” · Windows Server 2008专.. · AMD Phenom三核处理器.. · 路由器设置与口令恢复 · 微软Forefront企业安全.. · LAMP技术精解 · 企业数据恢复指南 |
|||
|
||||
| · SQL Server 2008/2005.. · SOA 面向服务架构 · SQL Server 2008/2005.. · iSCSI应用与发展 · RAID——磁盘阵列基础 · Apache技术专题 · 中间件应用技术专题 · 三层交换技术专题 |
· SQL Server入门到精通 · Apache技术专题 · 国际文档格式标准开战 · 路由器设置与口令恢复 · 打造安全服务器 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 |
|||
|
||||
| · iSCSI应用与发展 · 中间件应用技术专题 · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · iSCSI应用与发展 · 三层交换技术专题 |
· Apache技术专题 · 企业数据恢复指南 · RAID——磁盘阵列基础 · 路由器设置与口令恢复 · SOA 面向服务架构 · ADSL应用面面俱到 · ADSL应用面面俱到 · 反垃圾邮件技术应用 |
|||