毕业设计论文小区ADSL上网记费系统ADSL用户自查_第1页
毕业设计论文小区ADSL上网记费系统ADSL用户自查_第2页
毕业设计论文小区ADSL上网记费系统ADSL用户自查_第3页
毕业设计论文小区ADSL上网记费系统ADSL用户自查_第4页
毕业设计论文小区ADSL上网记费系统ADSL用户自查_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2008届毕业设计(论文) 小区ADSL上网记费系统-ADSL用户自查询模块摘 要 本小区ADSL上网记费系统是一个应用于小区ADSL上网管理的软件,实现了向ADSL用户提供各种各样的满足个性化需求的应用服务的功能 。本设计完成了系统中的用户自查询模块,实现了用户对个人需求查询的功能。 该系统使用Java语言,采用Oracle(10g)、PL-Sql、Hibernate,Spring,Struts,Jsp,Javascript,Html等技术,基于 Tomcat + Eclipse + Sun OS 5.8开发平台开发设计的,整个系统基于MVC模式(M-模型层,V-视图层,C-控制器)完成了程

2、序界面的设计及自查询功能模块的具体实现.使用Oracle(10g)完成了数据库具体设计,进行从而完成了整个系统的开发。 用户通过本模块可以在线查询自身的信息(个人信息、上网记录、记费帐单、使用品牌)。它具有良好的可操作性,可靠性高、健壮性好,可扩充性和可维护性的特点。完全可以满足用户自助服务的需求。关键词:Java Jsp Hibernate Struts Oracle(10g)AbstractThis NetCT OSS is a soft applied to the management of the Telecommunication enterprise. It provides t

3、he enterprise administrator kinds of services by establishing a whole system platform ,it can provider the different users with different application services, meets the requirements of different users. The system uses the Java language eclipse environment for development,using the technology of JSP

4、,Oracle,Html, Servlet, JDBC,EJB, based on the platform ofWeblogic + Eclipse + JBuider + Sun OS 5.8 .Complying with the MVC Model it accomplishes the design of the framework of the program and the select function ,Using Oracle to accomplish the detail design of the Database , by the Jdbc and EJB to l

5、ink Database . By the combination of all the techniques,makes the system credible, expandable, strong, and friendly .The System support the function of selection information after get the powerby the right user name and password . It accomplishes select the all the information of users. Therefore,th

6、e users can get their consumption information efficiently and easily. The good features of the system is its security, credibility and strong . It can accomplish the purpose to meet the personality requirement of the user。Key Words:Java Jsp Hibernate Struts Oracle(10g)目 录摘要IAbstractII1.1 Java技术简介V1.

7、1.1 Java语言的特点V1.1.2 Java开发工具VI1.2 Struts技术简介VII1.2.1 什么是Struts?VII1.2.2 Struts的功能VIII1.3 Hibernate技术简介IX1.3.1 Hibernate概述 IX1.3.2 Hibernate的特点IX第2章系统分析和总体规划10系统的必要性和可行性102.2 需求分析102.3 总体设计11112.3.2 运行过程设计1213132.3.4 数据库设计14第3章系统具体设计153.1 数据库表设计153.2 系统界面设计21第4章运行与测试354.1 软件测试的目的和原则354.2 软件的运行与安装364.

8、2.1 J2EE应用程序的构建与部署 364.2.2 具体运行过程以及的期维护36结论38参考文献39谢辞40前 言近年来,随着计算机走进千家万户,标志着现代社会已经进入了信息时代,单独的一台孤立的计算机已不能满足人民日益增长的需求,于是,互联的进入了人民的生活、工作,使得人与人之间的信息交流突破了地域,国界的限制。因此,在数字化通讯的时代里,互联网运营也受到了极大的挑战。在小区物业管理方面,面临着成本的增高的状况。从市场的角度看,通信领域竞争在不断加剧,传统的单纯出售基础的通话服务的利润正在逐步减少,未来市场的竞争将不只是基础的通话服务的竞争,更是服务方式和服务种类的竞争。户管理系统第1章

9、开发语言和开发工具简介1.1 Java技术简介Java是近代出现的新一代面向对象程序设计语言,由Sun公司推出,起初用于家电产品上的软件编程。后来,经过Sun公司的不断推出新的版本,目前版本已达到1.6。Java是一种简单的、面向对象的、分布式的、解释的、健壮的、安全的、结构中立的、可移植的、性能很优异的、多线程的、动态的语言。1.1.1 Java语言的特点Java与C的区别是C是面向过程的语言,而Java是面向对象的语言,Java与C+语言非常相近,但比C+简单,在Java中取消息了对指针的操作,抛弃了C+中的一些不是绝对必要的功能,如头文件、预处理文件、指针、结构、运算符重载、多重继承以及

10、自动强迫同型。Java实现了自动的垃圾收集,简化了内存管理的工作。2. 面向对象 Java是面向对象的语言,将世间万物都看成对象,将对象所具有的共性抽取出来,就是对象的类。Java提供了简单的类机制和动态的构架模型。对象中封装了它的状态变量和方法,很好地实现了模块化和信息隐藏;而类则提供了一类对象的原型,通过继承和重载机制,子类可以使用或重新定义父类或超类所提供的方法,从而既实现了代码的复用。3. 多线程 多线程的实现方式可以通过软件或硬件实现,Java是语言级别的多线程,通过JVM实现,多线程使应用程序可以同时进行不同的操作,处理不同的事件。在多线程机制中,不同的线程处理不同的任务,他们之间

11、互不干涉,不会由于一处等待影响其他部分,这样容易实现网络上的实时交互操作。4. 分布式Java是面向网络的语言。通过它提供的类库可以处理TCP/IP协议,用户可以通过URL地址在网络上很方便的访问其他对象。5. 跨平台Java是通过JVM实现其跨平台的,JVM通过不同的接口与操作系统交互,上层通过相同的接口与Java语言交互,Java是一种网络语言,为使Java程序能在网络的任何地方运行,Java解释器生成与体系结构无关的字节码结构的文件格式。Java语言环境还提供了用于访问底层操作系统功能的类组成的包,当程序使用这些包时,可以确保它能运行在各种支持Java的平台上。6. 安全性用于网络、分布

12、环境下的Java必须要防止病毒的入侵,Java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止了程序员使用欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。1.1.2 Java开发工具JDKJDK(Java Development Kit)是一个写Java的applet和应用程序的程序开发环境。它由一个处于操作系统层之上的运行环境还有开发者编译,调试和运行用Java语言写的applet和应用程序所需的工具组成。1. Java编译器(Javac命令)Java编译器将Java源代码文件编译成可执行的Java字节码。Java源代码文件的扩展名为 .java,Ja

13、va编译器把这种扩展名的文件编译成扩展名为.class的文件。源文件中的每个类在编译后都将产生一个class文件,这意味一个Java源代码文件可能编译生成多个class文件。2. Java解释器(java命令)Java解释器对编译生成的字节码格式的可执行程序的运行提供支持,它是运行非图形Java程序的命令行工具。ECLIPSE1.2 Struts技术简介 什么是Struts?1.2.2 Struts的功能1.3 Hibernate技术简介HibernateHibernate第2章 系统分析和总体规划2.1 系统的必要性和可行性 一、必要性: 随着人们生活水平的不断提高,信息技术的飞速发展,传统

14、的通讯业务服务已不能满足人们的生活节奏。对于物业管理部门来说,由于服务种类的增多,必须急于降低成本。对于电信行业,未来市场的竞争将不只是基础的通话服务的竞争,更是服务方式和服务种类的竞争。由于IP技术在通信领域中统治地位的确立,未来通信市场的竞争,将围绕着互联网及其相关服务展开,并且由于信息时代个性化需求的特征。目通过网络资源的整合,使电信运营商需要在提供基础服务的同时,广泛开拓增值服务市场,向用户提供各种各样的满足个性化需求的应用服务,是有其必要性的。 二、可行性: (1)经济可行性:该系统需要两台服务器,一台NAS网络接入服务器,一台AAA服务器,运行安装TOMCAT服务器即可,但对于物业

15、管理部门来说,其产生的效益是完全可行的。 (2)操作可行性:计算机在生活小区居民的家庭中已有一定的比例,而这些计算机已不在单单是一个孤立的计算机,而是网络中的一个结点,而此系统可方便这些用户查询自身的上网记录和自身信息等,所以是可行的。 (3)技术可行性:本系统采用Java语言,基于Tomcat+ Eclipse + Sun OS 5.8开发平台,采用JSP,Oracle,Hibernate技术,使用Struts框架,开发者掌握这些技术就可以具备开发此系统的能力,这些技术都是公开的,且开发者容易掌握的。所以,技术方面也是可行的。2.2 需求分析1.数据需求: 此系统主要完成用户自身信息的查询功

16、能,因此,需要的数据信息包括:用户信息:包括用户帐号和密码等信息。帐单信息,包括用户日帐单信息,月帐单信息,年帐单信息。品牌信息,包括包月,流量,小时等。2.功能需求: 功能需求分析的任务是弄清用户对目标系统数据处理功能所提出的需求。本系统的功能需求有: (1)用户通过自已的用户名和密码进入系统。 (2)用户可以查询自已的上网记录。 (3)用户可以查询日报表。 (4)用户可以查询月报表。(5)用户可以查询年报表。(6)用户可以查询品牌类型信息。2.3 总体设计2.3.1 系统功能设计1. 功能定义:(1)日报表:按小时从RadAcct流水帐表中整合到UserDay。 (2)月报表:按天合并日报

17、表UserDay生成所有用户计费数据月表UserMonth (3)年报表:按月合并月表UserMonth生成所有用户计费数据年表UserYear;2. 系统功能:本模块的主要功能是客户端通过个人用户帐号和密码登录系统,实现对个人所有信息的查询,是用户利用网络通过此系统对用户个人信息查询的主要途径。 其主要功能如下:(1)用户登录ADSL用户通过合法帐号和密码进入系统,实现对用户信息的查询操作。通过设置用户密码保证用户信息的安全性。(2)日清单查询查询用户在某一时段的上网历史记录。(3)日帐单查询用户可以输入指定的某天查询某日的消费情况(4)月帐单查询用户可以输入指定的月份查询某月的消费情况(5

18、)年帐单查询用户可以查询输入指定的年份查询某年的总的消费情况(6) 品牌查询 用户可以查询品牌类型信息3 .系统功能结构图:此系统基于Struts框架进行设计,利用JSP+JavaBean+Action进行编程。通过对所做模块的功能需求分析,该模块主要功能可分为六大部分,系统用例如图2-1所示。图2-1 系统用例图2.3.2 运行过程设计 本系统使用Struts框架搭建而成,基于MVC的模式,在客户端使用jsp和用户进行交互,对于用户的请求由action进行处理,转而调用相应的模型层。在模型层调用业务逻辑层,对于处理后的结果再由action转发到相应的jsp,呈现给用户。客户端登录:(1)js

19、p页面接收用户转入的用户名、密码等信息。(2)通过http发送到服务器端。(3)服务器端接收用户的请求,交给WEB容器,由容器调用相就的Action。(4)服务器端验证通过后,将处理的结果返回给客户端。.图2-2 Struts模型图2.3.3 系统流程图开始进入用户登录界面填写身份验证信息身份验证是否通过进入用户主界面结束图2-3 系统流程图流程图详解:ADSL用户打开浏览器,输入网址,进入登陆界面,输入用户名和密码,点击登陆后,由浏览器发出一个登陆请求,容器获得请求后,转发到相应的action中,在action中调用登陆的业务逻辑层中的方法,判断用户身份的合法性,如果用户为合法用户,在act

20、ion中跳转到用户主界面,如果不成功而返回到登陆界面,并提示用户错误信息。用户进行重新登陆。2.3.4 数据库设计数据库设计就是设计程序所需数据的类型、格式、长度和组织方式。因为数据库应用系统主要是处理大量的数据,所以数据库设计的优劣,直接影响整个数据库应用系统的性能和执行速率。 根据本系统的功能需求分析,本系统的数据库可包括七个表,分别是用户表(users),帐单明细表(radacct),日帐单信息表(userday), 月帐单信息表(usermonth), 年帐单信息表(useryear),品牌信息表(products),品牌类型表(productstype),用户帐号表(radcheck

21、)。第3章 系统具体设计3.1 数据库表设计1.年帐单信息表 该表包含用户登录名,登录服务器名,退出时间,资费代号,登录时间长度等信息。具体如表31。表 3-1 UserYear 表字段名类型字段宽度小数位数索引Login_name字符型20Login_ip字符型32logout_date日期型8lab_ip字符型32time_duration数值型82建表语句:create table USERYEAR( ID NUMBER primary key, USERNAME VARCHAR2(30) not null,/用户名 NASIPADDRESS VARCHAR2(15),/IP地址 OND

22、ATE DATE,/登陆时间 TIME_DURATION NUMBER,/时长 FLUX NUMBER/流量);2. 月帐单信息表 该表包含用户登录名,登录服务器名,退出时间,资费代号,登录时间长度等信息。具体如表32表3-2 UserMonth 表 字段名类型字段宽度小数位数索引Login_name字符型20Login_ip字符型32logout_date日期型8lab_ip字符型32time_duration数值型82建表语句:create table USERMONTH( ID NUMBER primary key, USERNAME VARCHAR2(30) not null, /用户

23、名 NASIPADDRESS VARCHAR2(15),/ip地址 ONDATE DATE,/时间 TIME_DURATION NUMBER,/时长 FLUX NUMBER/流量);3.日帐单信息表 该表包含用户登录名,登录服务器名,退出时间,资费代号,登录时间长度等信息。具体如表33。表3-3 UserDay 表字段名类型字段宽度小数位数索引Login_name字符型20Login_ip字符型32logout_date日期型8lab_ip字符型32time_duration数值型82建表语句:create table USERDAY( ID NUMBER primary key, USERN

24、AME VARCHAR2(30) not null,/用户名 NASIPADDRESS VARCHAR2(15),/IP地址 ONDATE DATE,/登陆时间 TIME_DURATION NUMBER,/时长 FLUX NUMBER/流量 );4. 资费信息表 该表包含资费号,资费名,月租费base_fee,资费单价,折扣等信息;其中资费号作为主键,资费名唯一。具体如表34。表3-4 Product 表字段名类型字段宽度小数位数索引price_id数值型10主键pricing_name字符型32唯一base_fee数值型82rate_fee数值型42pricing_Desc字符型642建表语

25、句:create table PRODUCTS( ID NUMBER primary key, NAME VARCHAR2(32) not null unique,/品牌名 BASE_FEE NUMBER(8,2) default 0,/基本费率 RATE_FEE NUMBER(8,2) default 0,/费率 DAILY_LIMIT NUMBER,/每日限制时长 MONTH_LIMIT NUMBER,/月限制时长 UP_LIMIT NUMBER,/上行限制 DOWN_LIMIT NUMBER,/下行速率 SFEE NUMBER(8,2), REMARK VARCHAR2(2000),/备

26、注 PRODUCTSTYPEID NUMBER references PRODUCTSTYPE(ID);5. 用户表 该表包含用户号,用户名,用户登录名,用户登录密码等用户的详细信息。用户号作为主键,不可重复,不为空;用户登录名是用户登录的唯一标识,唯一;登录密码和用户登录名一起,作为安全性验证。只有用户登录名和密码都正确才可以登录系统。具体如表35。表3-5 User 表字段名类型字段宽度小数位数索引user_id数值型20主键user_name字符型32login_name字符型10唯一login_password字符型32user_status数值型2user_phone字符型32use

27、r_email字符型32enroll_date日期型close_date日期型payment_style数值型2career数值型2nationality数值型2sex数值型2company字符型32mail_address字符型32phone_code字符型16建表语句:create table USERS( ID NUMBER primary key, LOGIN_NAME VARCHAR2(20) not null unique,/登陆名 REAL_NAME VARCHAR2(20) ,/真实姓名 LOGIN_PASSWORD VARCHAR2(20) not null,/登陆密码 EM

28、AIL VARCHAR2(50) not null unique,/EMAIL地址 SEX NUMBER(1),/性别 ADDRESS VARCHAR2(200) not null,/住址 REGISTER_DATE DATE,/注册日期 TELEPHONE VARCHAR2(20),/电话 POSTCODE VARCHAR2(10),/邮编 REMARK VARCHAR2(1000),/备注 ROLEID NUMBER(10) references ROLES(ID);6.品牌类型表 该表包含品牌名,注释。具体如表36。表3-6 ProductsType 表字段名类型字段宽度小数位数索引id

29、数值型10主键name字符型10remark字符型32建表语句:create table PRODUCTSTYPE( ID NUMBER primary key, NAME VARCHAR2(32) not null unique,/品牌类型名 REMARK VARCHAR2(2000)/备注);7.帐单明细表 该表包含用户登录号,登录时间,离开时间,服务器名,和登录时间长度等信息。具体如表37。表3-7 RadAcct 表字段名类型字段宽度小数位数索引login_ip字符型32login_date日期型logout_date日期型lab_ip字符型42time_duration数值型82建表

30、语句:create table RADACCT( RADACCTID INTEGER primary key, ACCTSESSIONID VARCHAR2(32) not null, ACCTUNIQUEID VARCHAR2(32), USERNAME VARCHAR2(32) not null, REALM VARCHAR2(30), NASIPADDRESS VARCHAR2(15) not null,/IP地址 NASPORTID NUMBER(12),/NAS端口地址 NASPORTTYPE VARCHAR2(32),/NAS端口类型 ACCTSTARTTIME DATE,/上线时

31、间 ACCTSTOPTIME DATE,/下线时间 ACCTSESSIONTIME NUMBER(12), ACCTAUTHENTIC VARCHAR2(32), CONNECTINFO_START VARCHAR2(32), CONNECTINFO_STOP VARCHAR2(32), ACCTINPUTOCTETS NUMBER(12), ACCTOUTPUTOCTETS NUMBER(12), CALLEDSTATIONID VARCHAR2(50), CALLINGSTATIONID VARCHAR2(50), ACCTTERMINATECAUSE VARCHAR2(32), SERV

32、ICETYPE VARCHAR2(32), FRAMEDPROTOCOL VARCHAR2(32), FRAMEDIPADDRESS VARCHAR2(15), ACCTSTARTDELAY NUMBER(12), ACCTSTOPDELAY NUMBER(12);7.用户帐号表在USERS表中保存的是用户的信息,在此表中保存的是帐号信息,一个用户可以有多个帐号。具体如表38。表3-7 RadCheck 表字段名类型字段宽度小数位数索引id字符型32username字符型30attribute字符型30op字符型42userid字符型productid字符型value字符型40建表语句:cre

33、ate table RADCHECK( ID INTEGER primary key, USERNAME VARCHAR2(30) not null, ATTRIBUTE VARCHAR2(30),/属性 OP VARCHAR2(2) not null,/操作符 VALUE VARCHAR2(40),/值 USERSID NUMBER references USERS(ID),/用户ID PRODUCTSID NUMBER references PRODUCTS(ID)/产品ID);3.2 系统界面设计1. 登录界面实现过程:本页面主要实现接收用户帐号和用户密码,并发送到服务器进行身份验证,返

34、回验证结果后判断是否进入主页面。界面如图3-1所示: 图31 登录界面public class LoginAction extends Action public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception LoginForm loginForm = (LoginForm) form;/获得登陆用户名String loginName = loginForm.getLogi

35、nName();/获得登陆密码String loginPassword = loginForm.getLoginPassword();/获得验证码String verifyCode_client = loginForm.getVerifyCode();HttpSession session = request.getSession();try String verifyCode_server = (String) session.getAttribute("verifyCode");/判断验证码是否正确if (verifyCode_client.equals(verifyC

36、ode_server) IService iService = BeanFactory.getService();/判断用户是否是管理员if (loginForm.isManager() /管理员登陆 Adminadmin=iService.adminLogin(loginName, loginPassword);List roles = iService.getAllRoles();List products = iService.getAllProducts();session.setAttribute("products", products);session.set

37、Attribute("roles", roles);session.setAttribute("admin", admin);return mapping.findForward("admin"); else /普通用户登陆User user = iService.userLogin(loginName, loginPassword);List roles = iService.getAllRoles();session.setAttribute("roles", roles);session.setAttribu

38、te("user", user);return mapping.findForward("customer"); else session.setAttribute("message", "验证码错误!");return mapping.findForward("failed"); catch (Exception e) e.printStackTrace();session.setAttribute("message", e.getMessage();return mapp

39、ing.findForward("failed");2. 用户界面用户信息验证通过后,直接进入用户操作界面,该界面包含用户所有可操作信息。包括私人信息查询和帐单查询,资费查询,本系统主要实现用户对帐单的查询。用户单击链接“帐单查询”,即可进入帐单查询界面。界面如图32所示:图32 用户界面 用户通过单击“帐单查询”进入此界面。该界面包括用户对个人帐单查询的所有操作,用户可以日清单查询,日报表,月报表,年帐单等的查询。 单击日清单查询的提交按钮,进入日清单查询界面,可以查询用户每日的登录次数和个人消费。 单击日报表查询的提交按钮,进入月报表查询界面,查询用户每日24小时的登录

40、次数,并统计出该日总计登录时长,和用户个人消费。 单击月报表查询的提交按钮,进入月报表查询界面,查询用户每个月31天中各天的登录时长,并且统计该用户一个月总的消费。单击年帐单查询的提交按钮,进入月报表查询界面,查询用户一年12个月每月的登录时长,并且统计一年内用户的总消费。界面如图33所示:图33 帐单查询界面具体实现代码如下: public class DoReckonAction extends Action public ActionForward execute(try /通过用户名获得用户定购的所有服务userServices = service.findUserServices(u

41、ser.getUserId();Collection labLoginName = new Vector();/使用迭代器循环输出到界面各个标签里对应的帐务帐号,业务帐号和登录的服务器for(Iterator it = userServices.iterator();it.hasNext();) UserService userService = (UserService)it.next();labLoginName.add(new LabelValueBean(userService.getLabLoginName()+":"+ userService.getLabIp(

42、),userService.getLabLoginName();request.setAttribute("labLoginName",labLoginName);/通过request 服务器读取用户提交的内容 Collectionresult=service.getUserreckon(user.getUserId(), rockdexForm.getYear(),rockdexForm.getMonth();request.setAttribute("userreckon",result);double totalCost = 0.0;for(Ite

43、rator it=result.iterator();it.hasNext();) totalCost += (UserReckon)it.next().getCost();/取得用户的消费总计 request.setAttribute("totalcost",new Double(totalCost);Calendar c = Calendar.getInstance();/创建日历类的实例,实现统计日期显示 if(c.get(Calendar.YEAR)=rockdexForm.getYear()&& (c.get(Calendar.MONTH)+1)=

44、rockdexForm.getMonth() request.setAttribute("currDay",Integer.toString (c.get(Calendar.DAY_OF_MONTH);else c.set(rockdexForm.getYear(),rockdexForm.getMonth()-1,1); (c.getActualMaximum(Calendar.DAY_OF_MONTH);return mapping.findForward("success"); catch (Exception e) e.printStackTra

45、ce();return mapping.findForward("failure");用户通过单击“帐单查询”界面的年报表查询列的“提交”按钮,即进入此界面。界面显示出用户一年内各月的时长统计和该年费用总计等信息。界面如图34所示:图34 年报表界面主要实现过程代码如下:public class ShowUserYearAction extends Action public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServlet

46、Response response) ShowUserMonthForm showUserMonthForm = (ShowUserMonthForm) form;String year = showUserMonthForm.getYear();String name = showUserMonthForm.getBusinessName();List useryears = null;Radcheck radcheck = null;Double totalTime = 0D;/总时长Double totalFlux = 0D;/总流量Double totalFee = 0D;/总费用tr

47、y IService iService = BeanFactory.getService();List list = iService.showUserYear(name, year);if (list.size() >= 2) radcheck = (Radcheck) list.get(0);useryears = (List) list.get(1);Long productType = radcheck.getProduct().getProductType().getId();Iterator iter = useryears.iterator();while (iter.ha

48、sNext() Useryear useryear = (Useryear) iter.next();totalTime += useryear.getTimeDuration();totalFlux += useryear.getFlux();/ 按月租收费if (productType = 1) totalFee = radcheck.getProduct().getBaseFee()* useryears.size();/ 按小时收费 else if (productType = 2) totalFee = totalTime * radcheck.getProduct().getRat

49、eFee();/ 按流量收费 else if (productType = 3) totalFee = totalFlux * radcheck.getProduct().getSfee(); else if (productType = 4) totalFee = radcheck.getProduct().getBaseFee()* useryears.size() + totalTime* radcheck.getProduct().getRateFee(); catch (Exception e) e.printStackTrace();request.setAttribute(&qu

50、ot;message", e.getMessage();return mapping.findForward("failed");request.setAttribute("totalTime", totalTime);/总时长request.setAttribute("totalFlux", totalFlux);/总流量request.setAttribute("totalFee", totalFee);/总费用request.setAttribute("radcheck", ra

51、dcheck);/帐号类型request.setAttribute("useryears", useryears);/年信息return mapping.findForward("success"); 用户通过单击我的信息后,进入修改个人信息的界面,用户的所有详细信息都会呈现在页面上,对相应的信息修改后,单击修改,就可以成功修改。界面如图35所示:图35 用户修改个人信息界面主要实现过程代码如下:public class ModifyUserAction extends Action public ActionForward execute(Action

52、Mapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) UserForm userForm = (UserForm) form;/获取用户的相关信息String loginName = userForm.getLoginName();String loginPassword = userForm.getPassword1();String email = userForm.getEmail();String realName = userForm.getRealName

53、();String address=userForm.getAddress();String telephone = userForm.getTelephone();Long sex = userForm.getSex();String postcode = userForm.getPostcode();String remark = userForm.getRemark();HttpSession session = request.getSession();User user = (User) session.getAttribute("user");/重新设置用户的信

54、息user.setAddress(address);user.setEmail(email);user.setRealName(realName);user.setLoginPassword(loginPassword);user.setTelephone(telephone);user.setPostcode(postcode);user.setRemark(remark);user.setSex(sex);try IService iService = BeanFactory.getService();/将修改后的信息进行持久iService.updateUser(user); catch (Exception e) e.printStackTrace();request.setAttribute("message", e.getMessage();request.setAttribute("message", "修改用户信息成功");return mapping.findForward("success"); 用户可查看自身所有的帐户,一个用户可对应多个帐户,单击控制面板

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论