JavaWeb课程设计_第1页
JavaWeb课程设计_第2页
JavaWeb课程设计_第3页
JavaWeb课程设计_第4页
JavaWeb课程设计_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1 JavaWeb 课程设计 题目 客户信息管理系统 专 业 计算机科学与技术 年 级 计 091 3 学 号 200925501348 作 者 刘丹凤 指导老师 贺秉庚 完成时间 2012 年 6 月 17 日 2 目录 JavaWeb 课程设计 1 题目 客户信息管理系统 1 一 课程设计目的 4 二 课程设计内容与目标 5 三 系统设计 6 1 系统特点 6 2 功能设计 6 3 用户界面草图 7 4 页面迁移图 9 5 页面功能设计 9 四 数据库设计 10 1 数据库表 10 2 数据库操作图 12 五 功能模块的详细设计 13 1 程序目录结构图 13 2 数据库访问模块 13 3 共通 Servlet 的处理 15 4 登录模块 22 5 页面导航设计 24 5 客户资料维护模块 26 6 客户来电信息模块 33 7 客户回访信息模块 35 8 客户重要信息提示模块 36 六 对本系统开发的思考总结 39 七 对软件开发方法的体会 39 八 自主创新声明 40 九 致谢 40 3 一 课程设计目的一 课程设计目的 课程设计是一项重要的实践性教学环节 在教师的指导下 以学生为中心 充分调动学生的积极性和能动性 重视学生自学 能力的培养 Java Web 数据库系统应用开发与实例 是为教育技术学本 科专业开设的专业选修课程 课程的主要目标是要求学生掌握基 本的Web应用程序开发和设计的流程及相关的技术技能 本课程在 讲解相关理论知识的基础上 按照一定的组织原则和现有实验条 件安排了一定数量的实验 通过这些实验使学生初步掌握开发和 设计Web数据库系统的基本方法和基本技能 然而由于这些实验是 分时分批按一定的技术种类和实验目的实施的 固然可以有目的 地训练和培养学生某个方面技能 但明显的不连续性使学生不能 从整体上把握如何系统地开发和设计一个完整 Web数据库系统应 用程序 通过本课程设计可以较好地解决这个问题 通过本课程设计可以使学生充分认识开发和设计 Web应用程 序的的重要性和复杂性 充分了解 Web应用程序的设计和开发的 基本过程 掌握常用的 Web开发技术 充分把握各项技术的特点 和应用领域以及各项技术之间的相互关系 进一步体会各项技术 在Web应用程序中地位和作用从而对各种技术有比较清醒的认识 在此基础上习得 Web开发技术平台的选择能力 4 二 课程设计内容与目标二 课程设计内容与目标 课题名称课题名称 客户信息管理系统 设计目标设计目标 本系统模拟企业对于客户信息的管理 操作人员可以添加 修改客户信息 针 对客户来电进行记录 并对客户的重要信息进行提醒 等等 设设计计方方法法 jsp mysql动态网页制作工具配合相关技术 如 HTML CSS JavaScript xml等 设设计计要要求求 利用Web应用程序的客户端开发技术 包括 Jsp HTML CSS JavaScript HTML XML MySql等 设计一个符合要求的 Java Web数据库应用系统 并实现用户交互功能的设计 达到Java Web应用程序可用性 和易用性目标 开发模式 开发模式 MVC 模式 MVC 模式的目的就是实现 Web 系统的职能分 工 Model 层实现系统中的业务逻辑 通常可以用JavaBean 或 EJB 来实现 View 层用于与用户的交互 通常用 JSP 来实现 Controller 层是 Model 与 View 之间沟通的桥梁 它可以分派 用户的请求并选择恰当的视图以用于显示 同时它也可以解释用 户的输入并将它们映射为模型层可执行的操作 开开发发工工具具 windows7 eclispe jdk1 7 tomcat7 0 mysql5 5 3 系统设计系统设计 1 系统特点系统特点 本系统尝试从一些简单的层面对于企业客户信息的管理进行一 种探索 针对企业和客户的交流行为进行系统化管理 力求做到客 户信息的准确 快捷和可追溯性 本系统包括 3 个主要层面 客户信息维护 客户来电记录和客户回 5 访记录 2 功能设计功能设计 4 个模块 1 客户资料信息维护模块 客户信息输入 修改和删除 2 客户来电信息模块 来电信息添加和来电信息查询 3 客户回访信息模块 回访信息添加和回访信息查询 4 客户重要信息提示模块 用例图 UseCase 6 3 用户界面草图用户界面草图 登录草图 导航页面草图 7 其它功能见后面操作效果图 4 页面迁移图页面迁移图 从页面迁移图中可以看出 本系统的页面迁移基本上发生在模块内部 整体比较简单而清 晰 8 5 页面功能设计页面功能设计 所有页面的 pageId 和对应页面的 Jsp 文件名及所对应的功能 9 4 数据库设计数据库设计 1 数据库表 数据库表 1 用户表 user 2 客户信息表 Customer 3 客户来电表 IncomeCall 4 客户回访表 FeedBackCall 10 2 数据库操作图 数据库操作图 11 5 功能模块的详细设计功能模块的详细设计 1 程序目录结构图 程序目录结构图 2 数据库访问模块 数据库访问模块 数据库的设计是需要针对每个模块而不是每个页面进行设置数据库模块 所有的数据 访问类 DUser DIncome Dcustomer DFeedback DRemind 从同一个父类 Dcommom 继 承 该父类提供了一个方法 getDBConnection 来获取数据库的链接 12 DCommon代码代码 public class DCommon public Connection getDBConnection 尝试连接数据库 try 载入MySQL的JDBC驱动类 Class forName CommonConst DB DRIVER CLASSNAME Connectionconn DriverManager getConnection CommonConst DB CONN STRING 获得数据库连接 return conn catch Exception ex ex printStackTrace return null 13 3 共通共通 Servlet 的处理的处理 本系统中一旦代码出现了异常 将直接向上抛出 一直抛到共通 类 Servlet 进行处理 在共通 Servlet 中发现异常 将页面跳转到错误处理页面 并把 错误信息在页面上显示出来 同时提供一个往登录页面迁移的链接 对应的共通 Servlet 的相关代码如下 public class CommonServlet extends HttpServlet 保存各页面 Id 对应的 action 类的对象 private Hashtable hPageHandler new Hashtable 配置文件的存放位置 private JXPathContext configContext null public void init 取得配置文件 并获得其中的 dom 元素 String filePath getInitParameter configXML String fileRealPath getServletContext getRealPath filePath 尝试建立配置文件的 DOM try org jdom input SAXBuilder builder new SAXBuilder org jdom Document pDoc builder build fileRealPath configContext JXPathContext newContext pDoc GlobalObjectProvider init configContext catch Exception e System out println Servlet 初始化失败 14 初始化共通类以获取页面信息 CommonConst init 每一种动作第一次执行的时候 初始化对应的类 public void doPost HttpServletRequest request HttpServletResponse response throws ServletException IOException 设置提交表单的中文编码 request setCharacterEncoding GBK HttpSession mySession request getSession true 得到用户输入信息 String sPageId request getParameter pageId String sActionId request getParameter actionId if sPageId null sPageId equals sActionId null sActionId equals 非法进入页面 跳转到首页 mySession invalidate response sendRedirect login jsp return 如果非法进入页面 登录页面除外 if sPageId equals S001 response sendRedirect login jsp return try 根据 pageId 获得处理对象 如果没有则创建一个对象 Object oActionObject hPageHandler get sPageId if oActionObject null 根据配置文件创建一个新对象 15 String sClassName String configContext getValue ch08 config page id sPageId className oActionObject Class forName sClassName newInstance hPageHandler put sPageId oActionObject 取得方法名 String sMethodName String configContext getValue ch08 config page id sPageId action id sActionId methodName 生成对应的参数 并调用对应对象的对应方法 inputData 是根据传入的参数做成的 Hashtable inputData new Hashtable Enumeration params request getParameterNames while params hasMoreElements String sParaName String params nextElement inputData put sParaName request getParameter sParaName outputData 是下一个页面的值域 在此只是被初始化 Hashtable outputData new Hashtable 生成参数列表 Class paraType Class forName java util Hashtable Class forName java util Hashtable Class forName javax servlet http HttpSession Object paraObj inputData outputData mySession 生成 Method 对象 Method invokeMethod oActionObject getClass getMethod sMethodName paraType 调用方法 invokeMethod invoke oActionObject paraObj 根据 outputData 的结果决定下一个页面 String sNextPageId String outputData get pageId String sRealPagePath String configContext getValue ch08 config page id sNextPageId path 设置下一个页面的值域 mySession setAttribute sNextPageId outputData response sendRedirect sRealPagePath return 16 catch Exception e 页面处理出错 跳转到错误处理页面 e printStackTrace Hashtable outputData new Hashtable outputData put exception e 设置错误页面的值域 mySession setAttribute CommonConst VIEWID ERROR outputData response sendRedirect error jsp return public void doGet HttpServletRequest request HttpServletResponse response throws ServletException IOException doPost request response 错误页面 17 4 登录模块登录模块 由于本系统用户角色只有一种 不存在跳转到不同页面的问题 处理相对简单一些 如果用户登录成功 则将用户信息放到 session 中 并将页面跳转到导航页面 1 登录页面控制模块 ALogin 相关代码如下 public class ALogin public void doLogin Hashtable inputData Hashtable outputData HttpSession mySession throws Exception 获取输入信息 String sUsername String inputData get username String sPassword String inputData get password 校验用户输入信息 LUser lUser LUser GlobalObjectProvider getLogicService CommonConst LOGIC KEY USER 如果对应的类没有的话 报错并返回login页面 if lUser null throw new Exception 发生了内部错误 请联系技术人员 获取用户信息 User userInfo lUser getUserInfo sUsername sPassword if userInfo null outputData put pageId CommonConst VIEWID LOGIN outputData put errMsg 用户名密码检查失败 请重新 输入 outputData put username sUsername 18 return else outputData put pageId CommonConst VIEWID MENU 往session中设置用户信息 mySession setAttribute loginUser userInfo return 2 登录效果图 5 页面导航设计页面导航设计 1 页面位置信息和页面的 pageid 息息相关 考虑用一个全局变量来存这个信息 然后通过在共通文件中来访问这个全局变量来获取对应页面的名称 为了达到这个目的设 置一个成员变量 pageinfo 和对应的设置方法 init 对应代码如下 public static Hashtable pageInfos new Hashtable 数据库相关常量 public static String DB DRIVER CLASSNAME com mysql jdbc Driver public static String DB CONN STRING jdbc mysql localhost ch08 user root 初始化 public static void init pageInfos put S002 目录页面 19 pageInfos put S110 客户资料 客户资料录入页面 pageInfos put S120 客户资料 客户资料修改一览页面 pageInfos put S121 客户资料 客户资料修改详细页面 pageInfos put S130 客户资料 客户资料删除页面 pageInfos put S210 客户来电 快速反应条件输入页面 pageInfos put S211 客户来电 快速反应结果一览页面 pageInfos put S220 客户来电 客户来电信息添加页面 pageInfos put S230 客户来电 客户来电信息查找页面 pageInfos put S231 客户来电 客户来电信息一览页面 pageInfos put S232 客户来电 客户来电信息详细页面 pageInfos put S310 客户回访 客户回访信息添加页面 pageInfos put S320 客户回访 客户回访信息查找页面 pageInfos put S321 客户回访 客户回访信息一览页面 pageInfos put S322 客户回访 客户回访信息详细页面 pageInfos put S410 客户重要信息提醒页面 获得页面信息 public static String getPageInfo String sPageId return String pageInfos get sPageId 2 页面外观设计 为四个模块设计不同颜色风格的 CSS 代码 tr head1 color black background color aaccaa tr content1 color black background color eeffee 20 cursor hand tr head2 color black background color ccaaaa tr content2 color black background color ffeeee cursor hand tr head3 color black background color aaaacc tr content3 color black background color eeeeff cursor hand tr head4 color black background color ccccaa tr content4 color black background color ffffee cursor hand 3 导航页效果图 5 客户资料维护模块客户资料维护模块 1 客户资料录入 单击导航页面链接进入客户资料录入页面 注意两个方面 一是页面对应的显示元素 和输入元素的颜色和当前模块的颜色想吻合 而是在用户输入信息并单击 登录 按钮时 将客户信息登入数据库 然后页面直接转入修改一览 页面控制类 ACustomerAdd public class ACustomerAdd 21 追加一个客户 public void doRegister Hashtable inputData Hashtable outputData HttpSession mySession throws Exception 首先获得要追加的客户详细信息 String sRealname String inputData get realname String sSex String inputData get sex String sBirthday String inputData get birthday String sPhone String inputData get phone String sCellphone String inputData get cellphone String sAddress String inputData get address String sStartDate String inputData get startDate String sMemo String inputData get memo 生成一个Customer对象以调用 Customer customer new Customer customer setRealname sRealname customer setSex sSex customer setBirthday sBirthday customer setPhone sPhone customer setCellphone sCellphone customer setAddress sAddress customer setStartDate sStartDate customer setMemo sMemo 调用对应的logic类 LCustomer lCustomer LCustomer GlobalObjectProvider getLogicService CommonConst LO GIC KEY CUSTOMER 添加对应的记录 lCustomer addCustomer customer 然后重新检索 并将页面迁移到一览页面 Vector vCustomers lCustomer getAllCustomer outputData put pageId 22 CommonConst VIEWID CUSTOMER LIST 往值域中设置当前位置信息 mySession setAttribute customers vCustomers outputData put pageIndex new Integer 0 return 效果图 2 客户资料修改 public class ACustomerModify 修改一个客户信息 public void doRegister Hashtable inputData Hashtable outputData HttpSession mySession throws Exception 首先获得要修改的客户详细信息 String sCustomerId String inputData get customerId String sRealname String inputData get realname String sSex String inputData get sex 23 String sBirthday String inputData get birthday String sPhone String inputData get phone String sCellphone String inputData get cellphone String sAddress String inputData get address String sStartDate String inputData get startDate String sMemo String inputData get memo 生成一个Customer对象以调用 Customer customer new Customer customer setCustomerId sCustomerId customer setRealname sRealname customer setSex sSex customer setBirthday sBirthday customer setPhone sPhone customer setCellphone sCellphone customer setAddress sAddress customer setStartDate sStartDate customer setMemo sMemo 调用对应的logic类 LCustomer lCustomer LCustomer GlobalObjectProvider getLogicService CommonConst LO GIC KEY CUSTOMER 添加对应的记录 lCustomer modifyCustomer customer 然后重新检索 并将页面迁移到一览页面 Vector vCustomers lCustomer getAllCustomer outputData put pageId CommonConst VIEWID CUSTOMER LIST 往值域中设置当前位置信息 mySession setAttribute customers vCustomers outputData put pageIndex new Integer 0 return 24 3 客户资料删除 public class ACustomerDelete 到首页 public void doFirst Hashtable inputData Hashtable outputData HttpSession mySession throws Exception 首页的index一定为0 outputData put pageId CommonConst VIEWID CUSTOMER DELETE 往值域中设置当前位置信息 outputData put pageIndex new Integer 0 25 return 到末页 public void doLast Hashtable inputData Hashtable outputData HttpSession mySession throws Exception 首先获得全部客户信息 并计算出最后一页的位置 Vector allCustomers Vector mySession getAttribute customers int iMax allCustomers size int iMaxPage int Math ceil double iMax 20 int iIndex iMaxPage 1 20 首页的index一定为0 outputData put pageId CommonConst VIEWID CUSTOMER DELETE 往值域中设置当前位置信息 outputData put pageIndex new Integer iIndex return 到前页 public void doPrev Hashtable inputData Hashtable outputData HttpSession mySession throws Exception 首先获得当前页 String sCurPage String inputData get curPage int iCurPage new Integer sCurPage intValue int iIndex iCurPage 2 20 outputData put pageId CommonConst VIEWID CUSTOMER DELETE 往值域中设置当前位置信息 26 outputData put pageIndex new Integer iIndex return 到次页 public void doNext Hashtable inputData Hashtable outputData HttpSession mySession throws Exception 首先获得当前页 String sCurPage String inputData get curPage int iCurPage new Integer sCurPage intValue int iIndex iCurPage 20 outputData put pageId CommonConst VIEWID CUSTOMER DELETE 往值域中设置当前位置信息 outputData put pageIndex new Integer iIndex return 到首页 public void doSpec Hashtable inputData Hashtable outputData HttpSession mySession throws Exception 首先获得指定页码 String sSpecPage String inputData get spec 获得全部客户信息 并计算出最后一页的位置 Vector allCustomers Vector mySession getAttribute customers int iMax allCustomers size int iMaxPage int Math ceil double iMax 20 int iSpec new Integer sSpecPage intValue 如果指定页大于全部页码 则跳转到第一页 if iSpec iMaxPage 27 iSpec 1 指定页 outputData put pageId CommonConst VIEWID CUSTOMER DELETE 往值域中设置当前位置信息 outputData put pageIndex new Integer iSpec 1 20 return 修改某条记录 public void doDelete Hashtable inputData Hashtable outputData HttpSession mySession throws Exception 首先获得要修改的客户ID String sCustomerId String inputData get customerId 获得对应的客户的详细信息 然后迁移到客户详细信息修改页面 调用对应的logic类 LCustomer lCustomer LCustomer GlobalObjectProvider getLogicService CommonConst LO GIC KEY CUSTOMER 删除对应的记录 lCustomer deleteCustomerById sCustomerId 然后重新检索 并定位到第一页 Vector vCustomers lCustomer getAllCustomer 由于需要在页面迁移中使用题库 所以放到session中 28 mySession setAttribute customers vCustomers 然后迁移到指定页面 outputData put pageId CommonConst VIEWID CUSTOMER DELETE 往值域中设置当前位置信息 outputData put pageIndex new Integer 0 return 6 客户来电信息模块客户来电信息模块 快速反应页面的设计代码 public class AQuickCondition 追加一个客户 public void doSearch Hashtable inputData Hashtable outputData HttpSession mySession throws Exception 首先获得要查找的相关资料 String sCustomerId String inputData get customerId String sRealname String inputData get realname String sSex String inputData get sex if sSex null sSex 29 String sPhone String inputData get phone String sStartDate String inputData get startDate String sIncomeDate String inputData get incomeDate String sFeedbackDate String inputData get feedbackDate 调用对应的logic类 LCustomer lCustomer LCustomer GlobalObjectProvider getLogicService CommonConst LO GIC KEY CUSTOMER 然后检索 并将页面迁移到一览页面 Vector vCustomers lCustomer getCustomers sCustomerId sRealname sSex sPhone sStartDate sIncomeDate sFeedbackDate 检索出来了数据 if vCustomers size 0 outputData put pageId CommonConst VIEWID QUICK LIST 往值域中设置当前位置信息 mySession setAttribute customers vCustomers outputData put pageIndex new Integer 0 else 重新显示条件录入页面 outputData put customerId sCustomerId outputData put realname sRealname outputData put sex sSex outputData put phone sPhone outputData put startDate sStartDate outputData put incomeDate sIncomeDate 30 outputData put feedback sFeedbackDate outputData put pageId CommonConst VIEWID QUICK CONDITION outputData put initMsg 检索结果为0件 请重新指定 查询条件 return 7 客户回访信息模块客户回访信息模块 public class AFeedbackCondition 查找 public void doSearch Hashtable inputData Hashtable outputData 31 HttpSession mySession throws Exception 首先获得要查找的相关资料 String sCustomerId String inputData get customerId String sCallFrom String inputData get callFrom String sFromTime String inputData get fromTime String sToTime String inputData get toTime 调用对应的logic类 LFeedback lFeedback LFeedback GlobalObjectProvider getLogicService CommonConst LO GIC KEY FEEDBACK 然后检索 并将页面迁移到一览页面 Vector vFeedbacks lFeedback getFeedbacks sCustomerId sCallFrom sFromTime sToTime outputData put pageId CommonConst VIEWID FEEDBACK LIST 往值域中设置当前位置信息 mySession setAttribute feedbacks vFeedbacks outputData put pageIndex new Integer 0 return 32 8 客户重要信息提示模块客户重要信息提示模块 public class ARemind 到首页 public void doFirst Hashtable inputData Hashtable outputData HttpSession mySession throws Exception 首页的index一定为0 outputData put pageId CommonConst VIEWID INFOR REMIND 33 往值域中设置当前位置信息 outputData put pageIndex new Integer 0 return 到末页 public void doLast Hashtable inputData Hashtable outputData HttpSession mySession throws Exception 首先获得全部客户信息 并计算出最后一页的位置 Vector allCustomers Vector mySession getAttribute customers int iMax allCustomers size int iMaxPage int Math ceil double iMax 20 int iIndex iMaxPage 1 20 首页的index一定为0 outputData put pageId CommonConst VIEWID INFOR REMIND 往值域中设置当前位置信息 outputData put pageIndex new Integer iIndex return 到前页 public void doPrev Hashtable inputData Hashtable outputData HttpSession mySession throws Exception 首先获得当前页 String sCurPage String inputData get curPage int iCurPage new Integer sCurPage intValue int iIndex iCurPage 2 20 outputData put pageId 34 CommonConst VIEWID INFOR REMIND 往值域中设置当前位置信息 outputData put pageIndex new Integer iIndex return 到次页 public void doNext Hashtable inputData Hashtable outputData HttpSession mySession throws Exception 首先获得当前页 String sCurPage String inputData get curPage int iCurPage new Integer sCurPage intValue int iIndex iCur

温馨提示

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

评论

0/150

提交评论