版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE22软件学院课程设计报告书课程名称JavaEE课程设计设计题目个人财务系统专业班级软件工程学号姓名指导教师2011年12月目录TOC\o"1-3"\h\u95961设计时间 3208262设计目的 3141743设计任务 3111184设计内容 3297214.1设计题目 397174.1.1系统功能要求 3157384.1.2数据库存储要求 3157564.2Jsp页面设计 3162954.2.1登录界面 3286274.2.2登录成功界面 4172844.2.3查询结果界面 6176014.2.4计算结果界面 744274.3Java方法设计 7110974.3.1Servlet类 7196774.3.2Dao类 1233864.3.3domain类 17167864.3.4数据库连接类 19224495总结与展望 20401参考文献 2128196成绩评定 211设计时间2011年12月12日——12月16日2设计目的JavaEE课程设计是对所学JavaEE与中间件课程的小结,是提高学生对所学知识综合应用能力的一种方式,是集中实践性环节之一。要求同学们对课程中所学习到的知识综合运用,开发有一定规模的JavaWeb程序。3设计任务设计个人帐务管理系统,要求用户以合法的身份登录后可以对系统进行操作,用户可以查看,添加,删除和计算某段时间内帐务的收入和支出信息等。帐务信息包括收入和支出两种,还有日期和备注。4设计内容4.1设计题目个人财务管理系统4.1.1系统功能要求用只有拥有合法身份才能登录系统,用以合法身份登录后可以产看帐务信息、添加帐务信息、删除帐务信息、分别统计某个时间段内的收入和支出总额。4.1.2数据库存储要求收入支出数额,日期和备注4.2Jsp页面设计4.2.1登录界面图—1(登录界面)代码如下:<formaction="servlet/LoginServlet"method="post"><center>欢迎登陆个人财务统计系统!</center><center>用户名称:<inputtype="text"name="username"value=""><br></center><center>用户密码:<inputtype="text"name="password"value=""><br></center><center><inputtype="submit"name="subimt"value="登录"><inputtype="reset"name="reset"value="重置"></center></form>4.2.2登录成功界面图—2(登录成功查询界面)代码如下:<%Stringusername=(String)session.getAttribute("name");if(username!=null){%><center>欢迎登录:<%=username%></center><%}%><formaction="servlet/AccountController?arg=2"method="post">增加帐目明细请输入:<center>收入数额:<inputtype="text"name="incomemoney"value=""><br>支出数额:<inputtype="text"name="costmoney"value=""><br>附加备注:<inputtype="text"name="record"value=""><br>输入日期:<inputtype="text"name="time"value=""><br><inputtype="submit"name="submit1"value="保存"><br><br></center></form><formaction="servlet/AccountController?arg=1"method="post">查询帐目明细请点击:<center><inputtype="submit"name="submit2"value="查询"></center><br></form>删除帐目信息请如下:<formaction="servlet/AccountController?arg=3"method="post">请输入要删除帐目的日期:<center><inputtype="text"name="time"></center><center><inputtype="submit"name="submit3"value="删除"></center></form><formaction="servlet/AccountController?arg=4"method="post"><center>起始Id号:<inputtype="text"name="id1"value=""><br></center><center>终止Id号:<inputtype="text"name="id2"value=""><br></center><center><inputtype="submit"name="submit4"value="计算"></center></form>4.2.3查询结果界面图—3(查询结果界面)代码如下:<center>您的帐务明细如下:</center><br><tableborder=1><tr><td>帐目序号</td><td>收入数额</td><td>支持数额</td><td>附加备注</td><td>记录日期</td></tr><%Listlist=(List)request.getAttribute("accounts");MyAccountaccount=newMyAccount();for(inti=0;i<list.size();i++){account=(MyAccount)list.get(i);%><tr><td><%=account.getId()%></td><td><%=account.getIncomemoney()%></td><td><%=account.getCostmoney()%></td><td><%=account.getRecord()%></td><td><%=account.getTime()%></td></tr><%}%></table>4.2.4计算结果界面代码如下:<%Listlist=(List)request.getAttribute("result");for(inti=0;i<list.size();i++){%><%=list.get(i)%><%}%>4.3Java方法设计4.3.1Servlet类控制增删改操作的servlet类代码设计如下:packagecom.controller;importcom.dao.*;importcom.domain.MyAccount;importjava.io.IOException;importjava.io.PrintWriter;importjava.util.List;importjavax.servlet.RequestDispatcher;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;publicclassAccountControllerextendsHttpServlet{ protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{doPost(request,response); } protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ intarg=Integer.parseInt(request.getParameter("arg"));switch(arg)//根据每个form传递的不同的arg的值调用不同的方法{case1:this.findAllAccount(request,response);break;case2:this.saveAllAccount(request,response);break;case3:this.deleteSomeAccount(request,response);break;case4:this.caculateAccount(request,response);break;} } protectedvoidcaculateAccount(HttpServletRequestrequest, HttpServletResponseresponse) throwsServletException,IOException////计算帐目 { inta=0; intb=0; a=Integer.parseInt(request.getParameter("id")); b=Integer.parseInt(request.getParameter("id")); AccountDaoaccountDao=newAccountDao(); Listlist2=accountDao.caculateAccount(a,b); request.setAttribute("result",list2); RequestDispatcherrdt1=request.getRequestDispatcher("/Result1.jsp"); rdt1.forward(request,response); } publicvoidfindAllAccount(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException {///查询帐目 AccountDaoaccountDao=newAccountDao(); Listlist=accountDao.findAllAccount(); request.setAttribute("accounts",list); RequestDispatcherrdt=request.getRequestDispatcher("/Result.jsp"); rdt.forward(request,response);} publicvoidsaveAllAccount(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//添加帐目 request.setCharacterEncoding("gbk"); doubleincomemoney=0.0; doublecostmoney=0.0; incomemoney=Double.parseDouble(request.getParameter("incomemoney")); costmoney=Double.parseDouble(request.getParameter("costmoney")); Stringrecord=(String)request.getParameter("record"); Stringtime=(String)request.getParameter("time"); MyAccountmyAccount=newMyAccount(); myAccount.setIncomemoney(incomemoney); myAccount.setCostmoney(costmoney); myAccount.setRecord(record); myAccount.setTime(time); AccountDaoaccountDao=newAccountDao(); try { accountDao.saveAllAccount(myAccount); } catch(Exceptione) { e.printStackTrace(); } this.findAllAccount(request,response);} publicvoiddeleteSomeAccount(HttpServletRequestrequest, HttpServletResponseresponse) throwsServletException,IOException { //删除帐目 request.setCharacterEncoding("gbk"); Stringtime=request.getParameter("time"); MyAccountmyAccount=newMyAccount(); myAccount.setTime(time); AccountDaoaccountDao=newAccountDao(); try { accountDao.deleteSomeAccount(myAccount); } catch(Exceptione) { e.printStackTrace(); } this.findAllAccount(request,response); }}密码验证的Servlet类的代码如下:importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.RequestDispatcher;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importsunyang.domain.User;importsunyang.service.UserService;publicclassLoginServletextendsHttpServlet{ publicvoiddoGet(HttpServletRequestreq,HttpServletResponseresp) throwsServletException,IOException{doGet(req,resp); } publicvoiddoPost(HttpServletRequestreq,HttpServletResponseresp) throwsServletException,IOException{Stringusername=req.getParameter("username");Stringpassword=req.getParameter("password");Useruser=newUser();user.setUsername(username);user.setPassword(password);HttpSessionsession=req.getSession();Stringforward="";if(UserService.CheckLogin(user)){ forward="/Search.jsp"; session.setAttribute("name",username);}else{ forward="/error.jsp";}RequestDispatcherrd=req.getRequestDispatcher(forward);rd.forward(req,resp); }}4.3.2Dao类密码验证的Dao类代码设计如下:packagesunyang.service;importsunyang.domain.User;publicclassUserService{publicstaticbooleanCheckLogin(Useruser){ if(user.getUsername().equals("lb")&&user.getPassword().equals("123")) { returntrue; } returnfalse;}}帐务添加查询计算的Dao类代码设计如下:packagecom.dao;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.util.ArrayList;importjava.util.List;importcom.domain.MyAccount;importcom.util.DBCon;publicclassAccountDao{privateConnectionconn;publicListfindAllAccount(){//查询所有帐务信息 conn=DBCon.getConnection(); StringlistSQL="select*frommyaccount"; Listlist=newArrayList(); try { PreparedStatementpsmt=conn.prepareStatement(listSQL); ResultSetrs=psmt.executeQuery(); while(rs.next()) { MyAccountaccount=newMyAccount(); account.setId(rs.getInt(1)); account.setIncomemoney(rs.getDouble(2)); account.setCostmoney(rs.getDouble(3)); account.setRecord(rs.getString(4)); account.setTime(rs.getString(5)); list.add(account); } mit(); returnlist; } catch(Exceptione) { e.printStackTrace(); } finally { if(conn!=null) { try { conn.close(); } catch(SQLExceptione) { e.printStackTrace(); } } } returnlist; }publicbooleansaveAllAccount(MyAccountaccount)throwsException{//添加帐务信息 conn=DBCon.getConnection(); StringlistSQL="insertintomyaccountvalues(?,?,?,?)"; PreparedStatementpsmt=conn.prepareStatement(listSQL); try { psmt.setDouble(1,account.getIncomemoney()); psmt.setDouble(2,account.getCostmoney()); psmt.setString(3,account.getRecord()); psmt.setString(4,account.getTime()); psmt.executeUpdate(); mit(); returntrue; } catch(SQLExceptione) { conn.rollback(); e.printStackTrace(); } returnfalse;}publicbooleandeleteSomeAccount(MyAccountaccount)throwsException{ conn=DBCon.getConnection();//删除帐目 StringlistSQL="deletefrommyaccountwheretime=?"; PreparedStatementpsmt=conn.prepareStatement(listSQL); try { psmt.setString(1,account.getTime()); psmt.executeUpdate(); mit(); returntrue; } catch(SQLExceptione) { conn.rollback(); e.printStackTrace(); } returnfalse;}publicListcaculateAccount(intx,inty){ conn=DBCon.getConnection();//计算帐目的和 doubleincometotal=0.0; doublecosttotal=0.0; inti=0; Listlist2=newArrayList(); try { MyAccountaccount=newMyAccount(); for(i=x;i<=y;i++) { StringlistSQL1="selctincomemoneyfrommyaccountwhereid=i"; PreparedStatementpsmt1=conn.prepareStatement(listSQL1); ResultSetrs1=psmt1.executeQuery(); psmt1.execute(); incometotal=incometotal+rs1.getDouble(2); StringlistSQL2="selectcostmoneyfrommyaccountwhereid=i"; PreparedStatementpsmt2=conn.prepareStatement(listSQL2); ResultSetrs2=psmt2.executeQuery(); psmt2.execute(); costtotal=costtotal+rs2.getDouble(3); } mit(); account.setIncomemoney(incometotal); account.setCostmoney(costtotal); list2.add(account); returnlist2; } catch(SQLExceptione) { e.printStackTrace(); } returnlist2;}}4.3.3domain类密码验证代买设计如下:packagesunyang.domain;publicclassUser{privateStringusername;privateStringpassword; publicStringgetUsername(){ returnusername; } publicvoidsetUsername(Stringusername){ this.username=username; } publicStringgetPassword(){ returnpassword; } publicvoidsetPassword(Stringpassword){ this.password=password; }}帐务信息代码设计如下:packagecom.domain;publicclassMyAccount{ privateIntegerid; privateDoubleincomemoney; privateDoublecostmoney; privateStringrecord; privateStringtime; publicStringgetTime(){ returntime; } publicvoidsetTime(Stringtime){ this.time=time; } publicIntegergetId(){ returnid; } publicvoidsetId(Integerid){ this.id=id; } publicDoublegetIncomemoney(){ returnincomemoney; } public
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度绿色生态园区施工力工劳务分包服务合同
- 2025年度医疗设备采购与售后服务合同示例
- 2025年度跨境电商物流配送合同
- 电力设施防灾减灾的实践与思考
- 2025年度家具安装与智能控制系统集成协议
- 中国私人诊所行业投资分析、市场运行态势研究报告-智研咨询发布(2025版)
- 2025年度知识产权保护与运营顾问合同
- 2025年度建筑外墙石材干挂工程承包协议
- 2025年度绿色建筑设计与施工合同书
- 构建和谐社会从社区中医健康教育做起
- 二次供水卫生管理制度及办法(4篇)
- 中学生手机使用管理协议书
- 给排水科学与工程基础知识单选题100道及答案解析
- 2024年土地变更调查培训
- 2024年全国外贸单证员鉴定理论试题库(含答案)
- 新版中国食物成分表
- DB11∕T 446-2015 建筑施工测量技术规程
- 运输车辆挂靠协议书(15篇)
- 完整版:美制螺纹尺寸对照表(牙数、牙高、螺距、小径、中径外径、钻孔)
- 医院医疗质量管理制度完整版
- 粤剧课程设计
评论
0/150
提交评论