javaee课程设计报告.docx
《javaee课程设计报告.docx》由会员分享,可在线阅读,更多相关《javaee课程设计报告.docx(47页珍藏版)》请在冰豆网上搜索。
![javaee课程设计报告.docx](https://file1.bdocx.com/fileroot1/2023-7/10/be32c27b-7163-4f21-89d0-14aa8ab362d2/be32c27b-7163-4f21-89d0-14aa8ab362d21.gif)
javaee课程设计报告
javaee课程设计报告
软件学院
课程名称JavaEE与中间件设计题目社团管理系统专业班级软件12-5班学号1220010526姓名赵立刚指导教师常戬
2015年1月
1设计时间..................................................1
2设计目的..................................................1
3设计任务..................................................1
3.1开发平台................................................1
3.2设计题目................................................1
4设计内容..................................................2
4.1需求分析................................................2
4.2总体设计................................................2
4.2.1数据库中表的设计...............................................................................2
4.2.2项目的结构设计的设计........................................................................3
4.3详细设计................................................4
4.4测试与分析.............................................17
4.4.1测试..................................................................................................17
4.4.2分析..................................................................................................20
4.5附录...................................................21
5总结与展望...............................................40
参考文献...................................................41
成绩评定...................................................42
1设计时间
2015年1月19日-2015年1月23日
2设计目的
JavaEE与中间件课程设计是对所学JavaEE与中间件课程的小结,是提高学生对所学知识综合应用能力的一种方式,是集中实践性环节之一。
要求同学们对课程中所学习到的知识综合运用,开发有一定规模的JavaWeb程序。
利用所学JavaWeb程序设计知识,开发设计一套基于JavaEE平台的小型管理系统,掌握Struts2、Spring及Hibernate三大框架的配置和使用,巩固数据库基本操作,培养学生分析问题、解决实际问题能力。
3设计任务
3.1开发平台
1).MyEclipse10及相关插件;
2).Tomcat6.0;
3).后台交互语言为Java;
4).数据库Oracle10g;
5).Struts2与Hibernate组合。
3.2设计题目
社团管理系统
必备功能说明:
1).功能描述:
用户以合法身份登录系统后,才能进行所有操作;登录系统时,有两种权限:
管理员权限和普通用户权限。
管理员用户可以查看所有学生的社团信息,以及对所有社团进行管理;可以添加、查看和删除相应的社团信息。
2).添加社团:
包括社团名称,性质,学院,负责人等等信息;
3).查看社团:
管理员可以查看及删除社团信息,其他只能查看社团的信息;
4).删除社团:
管理员和负责人可以删除;
5).对社团管理:
每年社团举行的活动记录,每次活动可以进行打分并进行统计排名。
选做功能:
多条件组合查询及分页显示功能等。
1
4设计内容
4.1需求分析
根据3.2所给的设计题目,可知得到管理员与负责人的的功能,在Oracle数据库中建
立的表:
1.管理员具备功能:
1).查看所有学生社团信息;
2).可以添加、查看和删除相应的社团信息;
3).对社团进行管理;
2.负责人具备功能:
1)查看所有负责社团信息;
2).可以添加、查看和删除相应的社团信息;
3).对社团进行管理;
3.在数据库中需要建立的表:
1).Users表:
记录管理员和负责人的用户名和密码;
2).Shetuan表:
记录社团的编号、名称、性质、学院、负责人等相关信息;
3).Huodong表:
记录的时每一个社团活动的内容和评分情况。
4.2总体设计
内容包括:
4.2.1数据库中表的设计
因为一个负责人可以负责多个社团,一个社团由一个负责人负责,一个社团有多个
活动,一个活动属于一个一个社团,所以可以得出建立表的Sql语句为:
1n
负责负责人社团
图4-1负责人与社团的关联关系
m1社团活动属于
图4-2活动与社团的关联关系
2
4.2.2项目的结构设计的设计
1)项目的整体结构:
图4-3整体结构2)项目的com.zlg.action的结构:
图4-4com.zlg.action结构3)项目的com.zlg.bean的结构:
图4-5com.zlg.bean结构
4)项目的com.zlg.factory的结构:
图4-6com.zlg.factory结构
3
5)项目的dao的结构:
图4-7dao结构
6)项目所有JSP页面:
图4-8jsp页面7)项目Struts2与链接数据库的架包:
图4-9Struts2与链接数据库的架包4.3详细设计
4.3.1数据库的设计语句:
1)Users表:
记录管理员和负责人的用户名、密码和性质;
createtableUSERS(
idnumber(6)primarykey,
UNAMEvarchar(20),
4
UPASSvarchar(20)notnull,
XINGZHInumber(6));
图4-10Users表
2)Shetuan表:
记录社团的编号、名称、性质、学院、负责人等相关信息;
createtableshetuan(
sidnumber(6)primarykey,
Snamevarchar(20),
Sxingzhivarchar(20),
xueyuanvarchar(20),
Sfuzhenumber(6),
foreignkey(sfuzhe)referencesusers(id));
图4-10Shetuan表
3)Huodong表:
记录的时每一个社团活动的内容和评分情况。
createtablehuodong(
hidnumber(6)primarykey,
textvarchar(100),
sidnumber(6),
foreignkey(sid)referencesshetuan(sid));
5
图4-11Huodong表
4.3.2项目的实现:
1)com.zlg.action中的Chaozuo类,用于实现相关操作:
publicclassChaozuoextendsActionSupport{
publicStringChakans(){
returnSUCCESS;
}
publicStringTianjias(){
intid=Integer.parseInt(ServletActionContext.getRequest().getParameter("id"));
Listlist=chazhao.getyshetuan(id);
ServletActionContext.getRequest().setAttribute("yishetuan",list);
returnSUCCESS;
}
publicStringChakan(){
returnSUCCESS;
}
publicStringGuanli(){
returnSUCCESS;
}
publicStringTianjia(){
returnSUCCESS;
6
}
publicStringFanhuizhu(){
returnSUCCESS;
}
}
2)com.zlg.action中的Huodongaction类,用于实现相关操作:
publicclassHuodongaction{
privateStringtext;
publicStringgetText(){
returntext;
}
publicvoidsetText(Stringtext){
this.text=text;
}
publicStringPingfen(){
inthid=Integer.parseInt(ServletActionContext.getRequest().getParameter("id"));
intgrade=Integer.parseInt(ServletActionContext.getRequest().getParameter("grade"));
System.out.println(hid);
System.out.println(grade);
CaozuoHuodong.pingfen(hid,grade);
return"success";
}
publicStringThuodong(){
intid=Integer.parseInt(ServletActionContext.getRequest().getParameter("id"));
System.out.println(id);
CaozuoHuodong.insert(id,text);
return"success";
}
7
publicStringTianjiah(){
return"success";
}
}
3)com.zlg.action中的Loginaction类,用于实现相关操作:
publicclassLoginActionextendsActionSupport{
staticListlist1;;
privatestaticStringuname;
privateStringupass;
publicstaticStringgetUname(){
returnuname;
}
publicvoidsetUname(Stringuname){
this.uname=uname;
}
publicStringgetUpass(){
returnupass;
}
publicvoidsetUpass(Stringupass){
this.upass=upass;
}
publicStringLogin(){
list1=newArrayList();;
Listlist=dao.Gets.getuserlist();
if(list.size()==0){
System.out.println("qwertyyuuu");
returnERROR;
}else{
for(inti=0;i8
Usersusers=(Users)list.get(i);
if(users.getUname().equals(uname)&&users.getUpass().equals(upass)){
list1.add(users);
returnSUCCESS;
}
}
returnLOGIN;
}
}
/******
*获取当前登陆者的信息
*@return
*/
publicstaticListgetuList(){
returnlist1;
}
}
4)com.zlg.action中的Shetuanaction类,用于实现相关操作:
publicclassShetuanaction{
privateStringsname;
privateStringsxingzhi;
publicStringgetSname(){
returnsname;
}
publicvoidsetSname(Stringsname){
this.sname=sname;
}
publicStringgetSxingzhi(){
returnsxingzhi;
9
}
publicvoidsetSxingzhi(Stringsxingzhi){
this.sxingzhi=sxingzhi;
}
publicStringAdd(){
Stringxueyuan=ServletActionContext.getRequest().getParameter("xueyuan");
Stringfuzheren=ServletActionContext.getRequest().getParameter("fuzheren");
shetuanguanli.tianjiashetuan(sname,sxingzhi,xueyuan,fuzheren);
return"success";
}
publicStringDelete(){
intid=Integer.parseInt(ServletActionContext.getRequest().getParameter("id"));
shetuanguanli.shanchushetuan(id);
return"success";
}
publicStringSeek(){
intid=Integer.parseInt(ServletActionContext.getRequest().getParameter("id"));ServletActionContext.getRequest().setAttribute("huodong",shetuanguanli.Findhuodong(id));
return"success";
}
publicStringUpdate(){
Stringxueyuan=ServletActionContext.getRequest().getParameter("xueyuan");
Stringfuzheren=ServletActionContext.getRequest().getParameter("fuzheren");
shetuanguanli.gengxinshetuan(sname,sxingzhi,xueyuan,fuzheren);
return"success";
}
}
5)dao中的CaozuoHuodong类,用于实现相关操作:
publicclassCaozuoHuodong{
10
publicstaticvoidinsert(intid,Stringtext){
HuodongDAOhuodongDAO=newHuodongDAO();
ShetuanDAOshetuanDAO=newShetuanDAO();
Sessionsession=huodongDAO.getSession();
Transactiontransaction=session.beginTransaction();
Huodonghuodong=newHuodong();
huodong.setText(text);
Shetuanshetuan=(Shetuan)shetuanDAO.findById(id);
huodong.setShetuan(shetuan);
shetuan.getHuodongs().add(huodong);
huodongDAO.save(huodong);
mit();
session.close();
}
publicstaticvoiddelete(intid){
HuodongDAOhuodongDAO=newHuodongDAO();
Sessionsession=huodongDAO.getSession();
Huodonghuodong=huodongDAO.findById(id);
Transactiontransaction=session.beginTransaction();
huodongDAO.delete(huodong);
mit();
session.close();
}
publicstaticvoidpingfen(inthid,intgrade){
HuodongDAOhuodongDAO=newHuodongDAO();
Huodonghuodong=huodongDAO.findById(hid);
huodong.setGrade(grade);
Sessionsession=huodongDAO.getSession();
Transactiontransaction=session.beginTransaction();
11
try{
session.update(huodong);
mit();
}catch(Exceptione){
//TODO:
handleexception
}
session.close();
}
}
6)dao中的chazhao类,用于实现相关操作:
publicclasschazhao{
publicstaticListshetuan(){
Listlist=Gets.getshetuanlist();
Listl=newArrayList();
for(inti=0;iShetuanshetuan=(Shetuan)list.get(i);
UsersDAOuserdao=newUsersDAO();
Usersusers=userdao.findById(shetuan.getUsers().getId());
l.add(users);
}
returnl;}
publicstaticListPgetshetuan(){
Listlist=Gets.getshetuanlist();
Listl=newArrayList();
UsersDAOuserdao=newUsersDAO();
Stringuname=LoginAction.getUname();
Usersusers=(Users)userdao.findByUname(uname).get(0);
intk=users.getId();
for(inti=0;i12
Shetuanshetuan=(Shetuan)list.get(i);
if(shetuan.getUsers().getId()==k){
l.add(shetuan);
}
}
returnl;
}
publicstaticListgetyshetuan(intid){
Listlist=newArrayList();
ShetuanDAOshetuanDAO=newShetuanDAO();
Shetuanshetuan=shetuanDAO.findById(id);
list.add(shetuan);
returnlist;
}
}
7)dao类中的Gets,实现相关操作
publicclassGets{
publicstaticSessionFactorysessionfactory;
static{
try{
Configurationconfig=newConfiguration();
config.configure();
sessionfactory=config.buildSessionFactory();
}catch(Exceptione){e.printStackTrace();}
}
publicstaticListgetuserlist(){
Sessionsession=sessionfactory.openSession();
Transactiontx=null;
Listlist=newArrayList();
13
try{
tx=session.beginTransaction();
list=session.createQuery("fromUsersasu").list();
mit();
session.close();
}catch(Exceptione){e.printSta