1、 Java Web课程综合训练 小小农场 2012/4/24 姓名:肖宁宁 班级:软件01 学号:2010161004 姓名:王梦雅 班级:软件04 学号:2010161049 姓名:段露 班级:软件04 学号:2010161047 姓名:姚伟 班级:软件04 学号:2010038046 联系电话:18783839450 小小农场信息管理系统 (一) 正文内容 (1) 页面布局解释 系统功能结
2、构图如下: 小小农场信息 管 理 系 统 政府工作报告 农民意见管理 通知管理 药店信息管理 商店信息管理 户主信息管理 用户信息管理 数据库表设计如下: 表3-1 政府工作报告government 中文名称 字段名称 数据类型 主键 非空 编号 number 自动编号 Yes No 标题 title 文本 No Yes 报告内容 content 文本 No Yes 发布时间 time 文本 No No 发布者 writer 文本 No No 表3-2 农民意见通
3、知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
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
5、自动编号 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 名称 字段名称 数据类型 主键 非空
6、 身份证号码 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.jav
7、a RegisterServlet.java GetDragstore.java GetGrocer.java GeFarmer.java GetGovernment.java GetIdeaOfFarmer.java GetNotice.java GovernmentServlet.java IdeaServlet.java NoteSelectServlet.java 实例化 M DBHelper.java drags
8、tore.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 商店 药店 户主信息 通知 农民意见 政府工作汇
9、报 登陆失败 首页欢迎界面 登陆 注册 用户 (3)控制层程序和模型层程序代码的解释 控制层主要采用Servlet来实现,分别用来控制实现登陆,注册,信息筛选,通知,户主信息,政府工作报告,农民意见,药店,商店,页面跳转等功能,模型层则主要采用javaBean来实现通知,户主信息,政府工作报告,农民意见,药店,商店,以及数据库与测试的功能。 (1)登陆界面: 控制层主要代码及其解释为 protected void doGet(HttpServletRequest request, HttpServletResponse response) thr
10、ows ServletException, IOException {
ArrayList
11、coding("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(
12、); 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("h
13、ttp://localhost:8080/VilllageWebSite/entry.jsp");//在登陆失败的情况下返回登陆页面重新登陆
}
isLoginServlet代码如下,它主要用于判断用户登陆时是否正确。
public class isLogin {
public static boolean isLogin(String userName,String password){
ArrayList
14、r.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(HttpServletReques
15、t 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 S
16、tring(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 passwor
17、d=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 ge
18、nder=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);//设置farme
19、r的职业 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);//插入
20、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; p
21、rivate 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
22、java中有4个基本成员,分别用来表示通知中的编码,标题,内容以及作者而相应的控制代码为
public class GetNotice {
public static ArrayList
23、 db.colseCon(); return noticelist; }} 信息筛选NoteSelectServlet主要代码如下: protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); String
24、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/Vi
25、lllageWebSite/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
26、 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
27、 getFarmer(){
ArrayList
28、rnment { 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,分别用来表示政府
29、工作报告中编号,报告标题,报告内容,发布时间以及发布者 控制层主要用GovernmentServlet.java 来实现,其主要代码如下 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8");//设置编码格式 response.setCharacterEncoding("utf-8"); String str=new
30、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");
31、//重定向到首页 } (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表示意见的主
32、要内容
控制层主要用ideaServlet.java和GetIdeaOfFarme.java实现,其中GetIdeaOfFarme.java主要代码如下:
public class GetIdeaOfFarmer {
public static ArrayList
33、lper对象 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
34、long amountGrocery;//剩余商品数量
private boolean state;//是否有货
private Date timeValue;//商品的保质期
控制层主要用GetGrocer.java实现。其主要代码如下:
public class GetGrocer {
public static ArrayList
35、 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;//剩余药品数量
36、 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 GetD
37、ragstore {
public static ArrayList
38、主要用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; } publ
39、ic void getCon()//打开数据库 { try { Class.forName(strDBDriver); System.out.println(strDBUrl); conn = DriverManager.getConnection(strDBUrl); }catch (Exception e) //抛出异常 { e.printStackTrace(); } } public void colseCon(){//关闭数据库
40、
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public ArrayList
41、 * 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.set
42、Time(rs.getString("time"));//设置通知的发布日期
list.add(note);//将通知添加到list中
}
} catch (SQLException e)
e.printStackTrace();
}
return list;
}
public ArrayList
43、 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
44、setAmountDrags(rs.getLong("amountDrags"));//设置剩余药品数 dragstore1.setPriceDrags(rs.getFloat("priceDrags"));//设置药品的价格 dragstore1.setState(rs.getBoolean("state"));//设置药品的状态 dragstore1.setTimeValue(rs.getDate("timeValue"));//设置药品的保质期 dragstore1.setExplanation(rs.getString("explanation
45、"));//设置药品的使用说明
list.add(dragstore1);}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
public ArrayList
46、eStatement(); 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"));//设置农民意见的发布日期
47、
list.add(idea);
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
public ArrayList
48、uteQuery("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("amo
49、untGrocery"));
grocer1.setState(rs.getBoolean("state"));
grocer1.setTimeValue(rs.getDate("timeValue"));
list.add(grocer1);
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;}
public ArrayList 50、ernment> list=new ArrayList
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818