收藏 分销(赏)

JavaWeb课程综合训练.docx

上传人:xrp****65 文档编号:7019909 上传时间:2024-12-25 格式:DOCX 页数:37 大小:118.83KB
下载 相关 举报
JavaWeb课程综合训练.docx_第1页
第1页 / 共37页
JavaWeb课程综合训练.docx_第2页
第2页 / 共37页
点击查看更多>>
资源描述
Java Web课程综合训练 小小农场 2012/4/24 姓名:肖宁宁 班级:软件01 学号:2010161004 姓名:王梦雅 班级:软件04 学号:2010161049 姓名:段露 班级:软件04 学号:2010161047 姓名:姚伟 班级:软件04 学号:2010038046 联系电话:18783839450 小小农场信息管理系统 (一) 正文内容 (1) 页面布局解释 系统功能结构图如下: 小小农场信息 管 理 系 统 政府工作报告 农民意见管理 通知管理 药店信息管理 商店信息管理 户主信息管理 用户信息管理 数据库表设计如下: 表3-1 政府工作报告government 中文名称 字段名称 数据类型 主键 非空 编号 number 自动编号 Yes No 标题 title 文本 No Yes 报告内容 content 文本 No Yes 发布时间 time 文本 No No 发布者 writer 文本 No No 表3-2 农民意见通知ideaOfFarmer 名称 字段名称 数据类型 主键 非空 编号 number 自动编号 Yes No 信息内容 content 文本 No Yes 发布时间 time 文本 No Yes 表3-3 通知管理notice 名称 字段名称 数据类型 主键 非空 编号 number 自动编号 Yes No 主题 title 文本 No Yes 具体内容 content 文本 No Yes 通知日期 time 文本 No Yes 作者 writer 文本 No Yes 表3-4 药店信息管理dragstore 名称 字段名称 数据类型 主键 非空 编号 number 自动编号 Yes No 药品名 nameDrag 文本 No Yes 药品价格 priceDrag 数字 No Yes 剩余药品数 amountDrag 数字 No Yes 状态 state 是/否 No Yes 保质期 timeValue 数字 No Yes 说明 explanation 文本 No Yes 表3-5 商店信息管理grocer 名称 字段名称 数据类型 主键 非空 编号 number 自动编号 Yes No 商品名 nameGroce 文本 No Yes 商品价格 priceGroce 数字 No Yes 剩余商品数 amountGroce 数字 No Yes 状态 state 是/否 No Yes 保质期 timeValue 数字 No Yes 表3-6 户主信息family 名称 字段名称 数据类型 主键 非空 户名 famiyName 文本 Yes No 总工资 total 数字 No Yes 表3-7 农民信息farmer 名称 字段名称 数据类型 主键 非空 身份证号码 memberID 文本 Yes No 姓名 username 数字 No Yes 密码 password 文本 No Yes 家庭成员名 memberName 文本 No Yes 性别 gender 是/否 No Yes 年龄 memberAge 数字 No Yes 职业 memberWork 文本 No Yes 户名 famiyName 文本 No Yes (2) 页面之间关系图 C IsLoginServlet.java LoginServlet.java PageServlet.java RegisterServlet.java GetDragstore.java GetGrocer.java GeFarmer.java GetGovernment.java GetIdeaOfFarmer.java GetNotice.java GovernmentServlet.java IdeaServlet.java NoteSelectServlet.java 实例化 M DBHelper.java dragstore.java grocer.java family.java farmer.java government.java ideaOfFarmer.java notice.java test.java V entry.jsp regester.jsp index.jsp dragstore.jsp grocery.jsp family.jsp government.jsp government.jsp ideaOfFarmer.jsp notice.jsp 商店 药店 户主信息 通知 农民意见 政府工作汇报 登陆失败 首页欢迎界面 登陆 注册 用户 (3)控制层程序和模型层程序代码的解释 控制层主要采用Servlet来实现,分别用来控制实现登陆,注册,信息筛选,通知,户主信息,政府工作报告,农民意见,药店,商店,页面跳转等功能,模型层则主要采用javaBean来实现通知,户主信息,政府工作报告,农民意见,药店,商店,以及数据库与测试的功能。 (1)登陆界面: 控制层主要代码及其解释为 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ArrayList<farmer> listFarmer=GetFarmer.getFarmer();//建立一个用来储存farmer对象动态数组 ListIterator<farmer> iterator=listFarmer.listIterator();//创建一个迭代器来访问容器 HttpSession session=request.getSession(); request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); String userName=new String(request.getParameter("userName").getBytes("iso-8859-1"),"utf-8"); String password=new String(request.getParameter("passWord").getBytes("iso-8859-1"),"utf-8"); if(isLogin.isLogin(userName, password)){//判断登陆的用户名及密码是否正确 farmer farmer1=new farmer(); farmer1.setUserName(userName); farmer1.setPassword(password); session.setAttribute("userName", userName); session.setAttribute("password", password); response.sendRedirect("http://localhost:8080/VilllageWebSite/index.jsp");//将页面重定位到首页上 } else response.sendRedirect("http://localhost:8080/VilllageWebSite/entry.jsp");//在登陆失败的情况下返回登陆页面重新登陆 } isLoginServlet代码如下,它主要用于判断用户登陆时是否正确。 public class isLogin { public static boolean isLogin(String userName,String password){ ArrayList<farmer> listFarmer=GetFarmer.getFarmer(); ListIterator<farmer> iterator=listFarmer.listIterator(); while(iterator.hasNext()){ farmer farmer1=iterator.next(); if(userName.equals(farmer1.getUserName())&&password.equals(farmer1.getPassword())){ return true; } } return false; } } (2)用户注册:RegisterServlet.java主要代码如下 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { farmer farmer1=new farmer();//创建一个farmer对象 String userName=new String(request.getParameter("userName").getBytes("iso-8859-1"),"utf-8"); //获取用户名 farmer1.setUserName(userName);//设置用户名 String memberName=new String(request.getParameter("memberName").getBytes("iso-8859-1"),"utf-8"); 获取家庭成员名 farmer1.setMemberName(memberName);// 设置家庭成员名 String memberID=new String(request.getParameter("memberID").getBytes("iso-8859-1"),"utf-8"); // 获取身份证号码 farmer1.setMemberID(memberID);// 设置身份证号码 String password=new String(request.getParameter("password").getBytes("iso-8859-1"),"utf-8"); //获取密码 farmer1.setPassword(password);//设置密码 long memberAge=Long.valueOf(new String(request.getParameter("memberAge").getBytes("iso-8859-1"),"utf-8")); //获取年龄 farmer1.setMemberAge(memberAge);//设置年龄 boolean gender=Boolean.valueOf(new String(request.getParameter("gender").getBytes("iso-8859-1"),"utf-8"));//获取性别 farmer1.setGender(gender);//设置性别 String memberWork=new String(request.getParameter("memberWork").getBytes("iso-8859-1"),"utf-8"); //获取farmer的职业 farmer1.setMemberWork(memberWork);//设置farmer的职业 String familyName=new String(request.getParameter("familyName").getBytes("iso-8859-1"),"utf-8"); //获取farmer的户名 farmer1.setFamilyName(familyName);//设置farmer的户名 DBHelper db=new DBHelper("C:\\Users\\xiao\\Documents\\Village.mdb");创建数据库对象 db.getCon(); db.insert("farmer", farmer1);//插入farmer1 db.colseCon(); response.sendRedirect("http://localhost:8080/VilllageWebSite/index.jsp");//重定向到首页 } (3)通知(在通知中添加了信息选择功能主要用NoteSelectServlet实现): Notice.java主要代码如下 public class notice { private int number; private String title; private String content; private String time; private String writer; public notice(){ number=0; title=null; content=null; time=null; writer=null; } public String toString() { return "notice [number=" + number + ", title=" + title + ", content=" + content + ", time=" + time + ", writer=" + writer + "]"; } } notice.java中有4个基本成员,分别用来表示通知中的编码,标题,内容以及作者而相应的控制代码为 public class GetNotice { public static ArrayList<notice> getNotice(){ ArrayList<notice> noticelist=new ArrayList<notice>();//创建一个动态数组来储存通知列表信息 DBHelper db=new DBHelper("D:\\Village.mdb"); db.getCon(); noticelist=db.getNotice(); db.colseCon(); return noticelist; }} 信息筛选NoteSelectServlet主要代码如下: protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); String str=new String(request.getParameter("notice").getBytes("iso-8859-1"),"utf-8");//获取notice对象的信息 HttpSession session=request.getSession();//创建一个session对象 session.setAttribute("noticeSelect", str);//设置信息筛选的内容 System.out.println(str);//输出相应的通知信息 response.sendRedirect("http://localhost:8080/VilllageWebSite/index.jsp");//重定向到首页} (4)户主信息: family.java public class family { private String familyName; private long totleWage; public family(){ familyName=null; totleWage=0;}} farmer.java public class farmer { private String memberID; private String userName; private String password; private String memberName; private boolean gender; private long memberAge; private String memberWork; private String familyName; } family.java 和farmer.java都分别有2个和8个基本数据成员,分别用来表示户主及其家庭成员的基本信息 控制部分GetFarmer.java的主要代码如下 public class GetFarmer { public static ArrayList<farmer> getFarmer(){ ArrayList<farmer> listFarmer=new ArrayList<farmer>(); DBHelper db=new DBHelper("D:\\Village.mdb");//创建一个数据库对象 db.getCon(); listFarmer=db.getFarmer(); db.colseCon(); return listFarmer; } } 主要用来从数据库中获得相应得户主信息 (5)政府工作报告:模型层代码government.java的主要代码如下 public class government { private int number; private String title; private String content; private Date time; private String writer; public government(){ number=0; title=null; content=null; time=null; writer=null;} } government.java中主要设置了五个基本数据成员number,title,content,time,writer,分别用来表示政府工作报告中编号,报告标题,报告内容,发布时间以及发布者 控制层主要用GovernmentServlet.java 来实现,其主要代码如下 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8");//设置编码格式 response.setCharacterEncoding("utf-8"); String str=new String(request.getParameter("government").getBytes("iso-8859-1"),"utf-8");//获得政府工作报告的内容 HttpSession session=request.getSession(); session.setAttribute("governmentSelect", str);//设置政府工作报告的内容 System.out.println(str); response.sendRedirect("http://localhost:8080/VilllageWebSite/index.jsp");//重定向到首页 } (6)农民意见:模型层代码主要用ideaOfFarmer.java来实现,其主要代码如下: public class ideaOfFarmer { private int number; private String content; private Date time; public ideaOfFarmer(){ number=0; content=null; time=null; }} 其中ideaOfFarmer.java中主要有三个数据成员,number表示编号,time表示意见提出日期,content表示意见的主要内容 控制层主要用ideaServlet.java和GetIdeaOfFarme.java实现,其中GetIdeaOfFarme.java主要代码如下: public class GetIdeaOfFarmer { public static ArrayList<ideaOfFarmer> getIdeaOfFarmer(){ ArrayList<ideaOfFarmer> idealist=new ArrayList<ideaOfFarmer>(); DBHelper db=new DBHelper("D:\\Village.mdb");//创建一个DBHelper对象 db.getCon(); idealist=db.getIdeaOfFarmer();//从数据库中获取农民意见信息 db.colseCon(); return idealist; } } (7)商店: 模型层的主要代码为grocer.java:public class grocer { private int number;//商品编号 private String nameGrocery;//商品名称 private float priceGrocery;//商品价格 private long amountGrocery;//剩余商品数量 private boolean state;//是否有货 private Date timeValue;//商品的保质期 控制层主要用GetGrocer.java实现。其主要代码如下: public class GetGrocer { public static ArrayList<grocer> getGrocer(){ ArrayList<grocer> list=new ArrayList<grocer>(); DBHelper db=new DBHelper("D:\\Village.mdb"); db.getCon(); list=db.getGrocer();//从数据库中获取商店里的商品信息 db.colseCon(); return list; } } (8)药店: 药店的模型层代码主要由dragstore.java实现,其代码及解释如下: public class dragstore { private int number;//药品编号 private String nameDrags;//药品名 private float priceDrags;//药品价格 private long amountDrags;//剩余药品数量 private boolean state;//药品状态 private Date timeValue;//保质期 private String explanation;//药品说明书 public dragstore(){ number=0; nameDrags=null; priceDrags=0.0f; amountDrags=0; state=false; timeValue=null; explanation=null; }} 其控制层代码用GetDragStore.java来实现 public class GetDragstore { public static ArrayList<dragstore> getDragstore(){ ArrayList<dragstore> listFarmer=new ArrayList<dragstore>(); DBHelper db=new DBHelper("D:\\Village.mdb"); db.getCon(); listFarmer=db.getDragstore();//通过数据库获取药品的信息 db.colseCon(); return listFarmer; } } (9)数据库相关模型层代码,主要用DBHelper.java来实现,其主要代码如下: public class DBHelper { private static String strDBDriver="sun.jdbc.odbc.JdbcOdbcDriver"; private String strDBUrl="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="; private Connection conn=null; public DBHelper(String url){ strDBUrl+=url; } public void getCon()//打开数据库 { try { Class.forName(strDBDriver); System.out.println(strDBUrl); conn = DriverManager.getConnection(strDBUrl); }catch (Exception e) //抛出异常 { e.printStackTrace(); } } public void colseCon(){//关闭数据库 try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } public ArrayList<notice> getNotice(){//获取通知信息 ArrayList<notice> list=new ArrayList<notice>(); Statement stmt; try { stmt = conn.createStatement(); ResultSet rs=stmt.executeQuery("select * from notice"); while(rs.next()){ notice note=new notice(); note.setNumber(rs.getInt("number"));//设置通知的编号 note.setTitle(rs.getString("title"));//设置通知的标题 note.setWriter(rs.getString("writer"));//设置通知的作者 note.setContent(rs.getString("content"));//设置通知的内容 note.setTime(rs.getString("time"));//设置通知的发布日期 list.add(note);//将通知添加到list中 } } catch (SQLException e) e.printStackTrace(); } return list; } public ArrayList<dragstore> getDragstore(){//获取药店的信息 ArrayList<dragstore> list=new ArrayList<dragstore>(); Statement stmt; try { stmt = conn.createStatement(); ResultSet rs=stmt.executeQuery("select * from dragstore"); while(rs.next()){ dragstore dragstore1=new dragstore(); dragstore1.setNumber(rs.getInt("number"));//设置药品的标号 dragstore1.setNameDrags(rs.getString("nameDrags"));//设置药品的名字 dragstore1.setAmountDrags(rs.getLong("amountDrags"));//设置剩余药品数 dragstore1.setPriceDrags(rs.getFloat("priceDrags"));//设置药品的价格 dragstore1.setState(rs.getBoolean("state"));//设置药品的状态 dragstore1.setTimeValue(rs.getDate("timeValue"));//设置药品的保质期 dragstore1.setExplanation(rs.getString("explanation"));//设置药品的使用说明 list.add(dragstore1);} } catch (SQLException e) { e.printStackTrace(); } return list; } public ArrayList<ideaOfFarmer> getIdeaOfFarmer(){//获取农民意见 ArrayList<ideaOfFarmer> list=new ArrayList<ideaOfFarmer>(); Statement stmt; try { stmt = conn.createStatement(); ResultSet rs=stmt.executeQuery("select * from ideaOfFarmer"); while(rs.next()){ ideaOfFarmer idea=new ideaOfFarmer(); idea.setNumber(rs.getInt("number")); idea.setContent(rs.getString("content"));//设置农民意见的的主题内容 idea.setTime(rs.getDate("time"));//设置农民意见的发布日期 list.add(idea); } } catch (SQLException e) { e.printStackTrace(); } return list; } public ArrayList<grocer> getGrocer(){//获取商店的基本信息 ArrayList<grocer> list=new ArrayList<grocer>(); Statement stmt; try { stmt = conn.createStatement(); ResultSet rs=stmt.executeQuery("select * from grocer"); while(rs.next()){ grocer grocer1=new grocer(); grocer1.setNumber(rs.getInt("number")); grocer1.setNameGrocery(rs.getString("nameGrocery")); grocer1.setPriceGrocery(rs.getFloat("priceGrocery")); grocer1.setAmountGrocery(rs.getLong("amountGrocery")); grocer1.setState(rs.getBoolean("state")); grocer1.setTimeValue(rs.getDate("timeValue")); list.add(grocer1); } } catch (SQLException e) { e.printStackTrace(); } return list;} public ArrayList<government> getGovernment(){//获取政府工作报告基本信息 ArrayList<government> list=new ArrayList<government>(); Statement stmt; try { stmt = conn.createStatement(); ResultSet rs=stmt.executeQuery("select * from government"); while(rs.next()){ government government1=new government(); government1.setNumber(rs.getInt("number")); governm
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服