(5) 扩展性好。TCP/IP、HTTP的标准性使得浏览器/服务器结构可直接接入Internet,具有良好的扩展性。
(6) 网络适应性强。无论是PSTN、DDN、帧中继、X.25、ISDN、还是CATV、ADSL,浏览器/服务器结构均能适应。
(7) 安全性好。防火墙技术保证了浏览器/服务器结构的安全性。
6.2 页面设计及代码实现
由于本系统针对用户实现功能在于当月电费查收和用户网银信息查看,故从后台功能模块开始介绍,方便演示从给用户上户、当月电费录入到用户交费的整个流程,代码实现部分仅解释说明怎样实现,具体代码详情见源程序。 6.2.1 后台功能模块实现 后台登录模块代码实现:
构建一个Admin实体,打包在cn.com.fit.Bean中,用来实例化一个admin的对象;写一个继承HttpServlet的AdminServlet类:public class AdminServlet extends HttpServlet;这个AdminServlet类中含有方法:public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException和public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException;建立映射后通过AdminServlet类中的dopost方法获取从前台页面传过来的管理员名和密码;然后调用public class AdminDao extends ConnDao里的方法public boolean checkAdminExist(String AdminName,String APassword) throws SQLException连接数据库进行匹配判断,看是否正确,正确就登录,页面跳转到后台主页面;见图6.1和图6.2;
26
图 6.1 管理员登录页面
图 6.2 管理员登录成功后跳转到后台主页面
在登录页面上,当用户名或密码为空时,会有友好的提示框弹出;实现本效果是在jsp页面上使用了所写的javascript脚本:Ext.onReady(function(){....}),效果截图见图7.3—图7.4:
图 6.3 管理员登录效果截图
27
图 6.4 管理员登录效果截图
后台主页面的实现及效果截图:
后台用到了Html中的frameset标签来设置整个页面的框架,整体上分为三个部分:top,bottom,和中间部分,其中中间部分有划分为左右两个小部分,每部分对应的都是独立的jsp页面,见上图7.2;以下截图均为页面部分截图主要显示功能模块。下图7.5是使用js特效做的左部的可收缩的菜单栏,从中可以看到后台所要实现的功能模块:
图 6.5 JS特效做的后台功能列表
28
普通用户管理及工业用户管理模块代码实现及效果截图:
由于两种用户管理模块的实现的基本功能相同,下面主要介绍普通用户管理模块的代码实现,在下面的模块中均使用到cn.com.fit.Bean包中的Users实体实例化的对象。
普通用户管理模块主要实现三种不同的功能: 1、普通用户列表显示,代码实现如下:
在子页面usersList.jsp上导入cn.com.fit.bean.*,cn.com.fit.dao.*这两个包,页面内嵌java语句:
<% UsersDao ud = new UsersDao();
List
if(u.getUClass().equals(\普通用户\
%>
<%=u.getUName()%>
...//调用AdminDao中的方法public List
图 6.6 普通用户列表
29
2、添加普通用户,代码实现如下:
通过cn.com.fit.Servlet中的UpdateUserServlet类建立起与子页面insertone.jsp的映射,在子页面的Form表单中设置action为
UpdateUserServlet,来获取页面传来的所要添加的用户的相关信息,然后再调
用UsersDao中的public boolean insertUsers(Users u)方法,在这个方法中会执行Sql语句:\,问号为接收页面所传的用户信息;成功后返回true到UpdateUserServlet,然后让页面跳转到普通用户列
表显示添加效果;如图6.6和图6.7所示:
图 6.7 添加用户模块
3、删除普通用户,代码实现如下:
通过cn.com.fit.Servlet中的DeleteUserServlet类建立起与子页面deleteone.jsp的映射,在子页面的Form表单中设置action为
DeleteUserServlet,来获取页面传来的所要删除的用户的用户名,判断用户的
类别UClass,然后调用cn.com.fit.Dao包中的usersDao中的方法public boolean isHavingUsersName(String UName),在这个方法中会执行一个sql语句:“select * from Users where UName=?;”查询数据库中是否有该用户存在,
30