JavaWeb课程设计---客户管理系统.pdf
《JavaWeb课程设计---客户管理系统.pdf》由会员分享,可在线阅读,更多相关《JavaWeb课程设计---客户管理系统.pdf(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、枣 庄 学 院信息科学与工程学院课程设计任务书题目:客户信息管理系统姓名:桑得水学号:201212140421 专业班级:网络工程(物联网)课程:Java Web 指导教师:李钢职称:讲师完成时间:2014 年 5 月-2014 年 6 月枣庄学院信息科学与工程学院制2014年 6 月 20 日I 课程设计任务书及成绩评定课程设计的任务和具体要求课程设计要求设计一个用Java Web开发基于B/S 架构的管理系统,页面至少6 个以上,应能反应出学生综合利用Java Web知识和数据库知识完成一定的设计任务的能力,反映出学生理论联系实践的动手能力。具体要求如下:(1)明确所要开发系统的设计任务;
2、(2)做好需求分析,合理选择设计方案;(3)页面静态部分可用Dreamweaver 开发实现(4)动态页面部分可用JSP、Servlet、JavaBean等实现;(5)后台数据库可采用MySQL、Oracle、SQL Server 等实现;(6)在编写程序过程中应注意相关文档的编写;(7)认真撰写课程设计总结报告。指导教师签字:_ 日期:指导教师评语成绩:_指导教师签字:日期:II课程设计所需软件、硬件等硬件环境:CPU,主频 1GHz以上;内存 512M以上;硬盘 30G以上;1024768显示分辨率软件环境:Microsoft windows XP或以上版本 ;eclipse;JDK1.6
3、;Tomcat6.0;MySQL课程设计进度计划起至日期工作内容备注参考文献、资料索引序号文献、资料名称编著者出版单位1 沈应逵.Java Web 数据库系统应用开发与实例.北京:人民邮电出版社,2009I II目 录一、前言.错误!未定义书签。二、课程设计内容与目标.错误!未定义书签。三、系统设计.23.1 系统特点.23.2 功能设计.23.3 用户界面草图.33.4 页面迁移图.错误!未定义书签。3.5 页面功能设计.5四、数据库设计.64.1 数据库表.64.2 数据库操作图.7五、功能模块的详细设计.85.1 程序目录结构图.85.2 数据库访问模块.85.3 共通 Servlet的
4、处理.95.4 登录模块.1 错误!未定义书签。5.5 页面导航设计.155.6 客户资料维护模块.17 5.7 客户来电信息模块.2 错误!未定义书签。5.8 客户回访信息模块.25 5.9 客户重要信息提示模块.27 六、对本系统开发的思考总结.291 一课程设计目的课程设计是一项重要的实践性教学环节,在教师的指导下,以学生为中心,充分调动学生的积极性和能动性,重视学生自学能力的培养。Java Web 数据库系统应用开发与实例是为教育技术学本科专业开设的专业选修课程,课程的主要目标是要求学生掌握基本的Web 应用程序开发和设计的流程及相关的技术技能。本课程在讲解相关理论知识的基础上,按照一
5、定的组织原则和现有实验条件安排了一定数量的实验,通过这些实验使学生初步掌握开发和设计Web 数据库系统的基本方法和基本技能。然而由于这些实验是分时分批按一定的技术种类和实验目的实施的,固然可以有目的地训练和培养学生某个方面技能,但明显的不连续性使学生不能从整体上把握如何系统地开发和设计一个完整Web 数据库系统应用程序。通过本课程设计可以较好地解决这个问题。通过本课程设计可以使学生充分认识开发和设计Web 应用程序的的重要性和复杂性,充分了解 Web 应用程序的设计和开发的基本过程,掌握常用的 Web 开发技术,充分把握各项技术的特点和应用领域以及各项技术之间的相互关系,进一步体会各项技术在W
6、eb 应用程序中地位和作用从而对各种技术有比较清醒的认识,在此基础上习得Web 开发技术平台的选择能力。二课程设计内容与目标课题名称:客户信息管理系统设计目标:本系统模拟企业对于客户信息的管理,操作人员可以添加、修改客户信息,针对客户来电进行记录,并对客户的重要信息进行提醒,等等。设计方法:jsp、mysql 动态网页制作工具配合相关技术(如HTML、CSS、JavaScript、xml 等)设计要求:利用 Web 应用程序的客户端开发技术(包括Jsp、HTML、CSS、JavaScript、HTML、XML、MySql等)设计一个符合要求的Java Web 数据库应用系统,并实现用户交互功能
7、的设计,达到Java Web 应用程序可用性和易用性目标。2 开发模式:MVC模式。MVC模式的目的就是实现Web 系统的职能分工。Model 层实现系统中的业务逻辑,通常可以用JavaBean 或 EJB 来实现。View 层用于与用户的交互,通常用 JSP 来实现。Controller层是 Model与 View 之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。开发工具:windows7,eclispe,jdk1.7,tomcat7.0、mysql5.5 三、系统设计1、系统特点本系统尝试从一些简单的层面对于企业客
8、户信息的管理进行一种探索,针对企业和客户的交流行为进行系统化管理,力求做到客户信息的准确、快捷和可追溯性。本系统包括 3 个主要层面,客户信息维护、客户来电记录和客户回访记录。2、功能设计4 个模块(1)客户资料信息维护模块客户信息输入、修改和删除。(2)客户来电信息模块来电信息添加和来电信息查询。(3)客户回访信息模块回访信息添加和回访信息查询。(4)客户重要信息提示模块用例图 UseCase 3 3、用户界面草图登录草图导航页面草图4 其它功能见后面操作效果图4、页面迁移图从页面迁移图中可以看出,本系统的页面迁移基本上发生在模块内部,整体比较简单而清晰5 5、页面功能设计所有页面的 pag
9、eId 和对应页面的 Jsp 文件名及所对应的功能6 四、数据库设计1、数据库表(1)用户表 user(2)客户信息表 Customer(3)客户来电表 IncomeCall(4)客户回访表 FeedBackCall 7 2、数据库操作图8 五、功能模块的详细设计1、程序目录结构图2、数据库访问模块数据库的设计是需要针对每个模块而不是每个页面进行设置数据库模块,所有的数据访问类DUser、DIncome、Dcustomer、DFeedback、DRemind从同一个父类 Dcommom 继承,该父类提供了一个方法getDBConnection 来获取数据库的链接。9 DCommon代码publ
10、icclass 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();returnnull;3、共通 Servlet的处理本系统中一旦代码出现了异常
11、,将直接向上抛出,一直抛到共通类 Servlet1 0进行处理。在共通 Servlet中发现异常,将页面跳转到错误处理页面,并把错误信息在页面上显示出来,同时提供一个往登录页面迁移的链接。对应的共通 Servlet的相关代码如下:public class CommonServlet extends HttpServlet /保存各页面 Id 对应的 action类的对象 private Hashtable hPageHandler=new Hashtable();/配置文件的存放位置 private JXPathContext configContext=null;public void in
12、it()/取得配置文件,并获得其中的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);Globa
13、lObjectProvider.init(configContext);catch(Exception e)System.out.println(Servlet初始化失败!);/初始化共通类以获取页面信息 CommonConst.init();/每一种动作第一次执行的时候,初始化对应的类 public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException /设置提交表单的中文编码1 1 request.setCharacterEncoding
14、(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;
15、/如果非法进入页面(登录页面除外)if(!sPageId.equals(S001)&mySession.getAttribute(loginUser)=null)/非法进入页面,跳转到首页 mySession.invalidate();response.sendRedirect(./login.jsp);return;try /根据 pageId 获得处理对象,如果没有则创建一个对象 Object oActionObject=hPageHandler.get(sPageId);if(oActionObject=null)/根据配置文件创建一个新对象 String sClassName=(Str
16、ing)configContext.getValue(ch08-config/pageid=+sPageId+/className);oActionObject=Class.forName(sClassName).newInstance();hPageHandler.put(sPageId,oActionObject);/取得方法名 String sMethodName=(String)configContext.getValue(1 2ch08-config/pageid=+sPageId+/actionid=+sActionId+/methodName);/生成对应的参数,并调用对应对象的
17、对应方法 /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 Has
18、htable();/生成参数列表 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);/调用方法 invokeMeth
19、od.invoke(oActionObject,paraObj);/根据 outputData 的结果决定下一个页面 String sNextPageId=(String)outputData.get(pageId);String sRealPagePath=(String)configContext.getValue(ch08-config/pageid=+sNextPageId+/path);/设置下一个页面的值域 mySession.setAttribute(sNextPageId,outputData);response.sendRedirect(sRealPagePath);retu
20、rn;catch(Exception e)1 3 /页面处理出错,跳转到错误处理页面 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,HttpServletRes
21、ponse response)throws ServletException,IOException doPost(request,response);错误页面:1 44、登录模块由于本系统用户角色只有一种,不存在跳转到不同页面的问题,处理相对简单一些,如果用户登录成功,则将用户信息放到session 中,并将页面跳转到导航页面。(1)登录页面控制模块ALogin 相关代码如下:publicclass ALogin publicvoid doLogin(Hashtable inputData,Hashtable outputData,HttpSession mySession)throws E
22、xception /获取输入信息 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 newException(发生了内部错误,请联系技术人员!);/获取用户信息 User
23、 userInfo=lUser.getUserInfo(sUsername,sPassword);if (userInfo=null )outputData.put(pageId,CommonConst.VIEWID_LOGIN );outputData.put(errMsg,用户名密码检查失败!请重新输入。);outputData.put(username,sUsername);return;else outputData.put(pageId,CommonConst.VIEWID_MENU);/往session 中设置用户信息 mySession.setAttribute(loginUse
24、r,userInfo);1 5return;(2)登录效果图5、页面导航设计(1)页面位置信息和页面的pageid 息息相关,考虑用一个全局变量来存这个信息,然后通过在共通文件中来访问这个全局变量来获取对应页面的名称。为了达到这个目的设置一个成员变量pageinfo 和对应的设置方法 init(),对应代码如下:publicstatic Hashtable pageInfos =new Hashtable();/数据库相关常量publicstaticString DB_DRIVER_CLASSNAME=com.mysql.jdbc.Driver;publicstaticString DB_CO
25、NN_STRING=jdbc:mysql:/localhost/ch08?user=root&password=123;/初始化publicstaticvoid init()pageInfos.put(S002,目录页面);pageInfos.put(S110,客户资料 客户资料录入页面 );pageInfos.put(S120,客户资料 客户资料修改一览页面 );pageInfos.put(S121,客户资料 客户资料修改详细页面 );pageInfos.put(S130,客户资料 客户资料删除页面 );pageInfos.put(S210,客户来电 快速反应条件输入页面 );pageInf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JavaWeb 课程设计 客户 管理 系统
限制150内