




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软 件 学 院课程设计报告书课程名称 Java EE 课程设计 设计题目 学生个人学分统计系统 专业班级 学 号 姓 名 指导教师 2014 年 1 月目 录1 设计时间12 设计目的13设计任务14 设计内容14.1数据库分析14.1.1 E-R图14.1.2逻辑设计14.2程序流程的实现24.2.1程序流程图24.2.2程序关系层次图24.3系统代码实现24.3.1工程目录结构44.3.2 实体类的实现44.3.3 Action类的实现44.3.4 JSP页面的实现44.3.5配置信息的实现44.3.6 JAR包45程序测试205.1 登录测试205.2 查询测试205.3 增加测试205
2、.4 删除测试206 总结与展望23参考文献24251 设计时间2014年1月19号2014年1月22号2 设计目的Java EE 与中间件课程设计是对所学Java EE 与中间件课程的小结,是提高学生对所学知识综合应用能力的一种方式,是集中实践性环节之一。要求同学们对课程中所学习到的知识综合运用,开发有一定规模的Java Web 程序。利用所学Java Web 程序设计知识,开发设计一套基于Java EE 平台的小型管理系统,掌握Struts2、Spring 及Hibernate 三大框架的配置和使用,巩固数据库基本操作,培养学生分析问题、解决实际问题能力。3设计任务(一)必备功能说明:(1
3、)功能描述:用户以合法身份登录系统后,才能进行所有操作;用户可以添加、查看和删除课程信息(课程编码、课程名称、课程类别(选修和必修)、学分数);统计出自己添加的必修课的学分和选修课的学分。(2)添加课程信息(3)查看课程信息(4)删除课程信息(5)分别统计必修课和选修课的总学分(二)开发语言与开发环境:MyEclipse6.0、Java、数据库(mysql)、后台交互语言为Java。采用Struts2和Hibernate组合框架设计。4 设计内容 4.1数据库分析4.1.1 E-R图userusernamepassword图4-1 用户表E-R图cnamectypecreditcourseci
4、d图4-2 课程表E-R图4.1.2 逻辑设计1.关系模式 user(username ,password);course(cid,cname,ctype,credit);2. 系统表表4-1 数据表course列名数据类型长度是否为空含义usernamevarchar50N主键,用户名passwordvarchar50Y用户密码 表4-2 数据表course列名数据类型长度是否为空含义cidint8N课程编码,主键, cnamevarchar50Y课程名称ctypevarchar50Y课程类别creditint8Y学分数4.2程序流程的实现4.2.1 程序流程图登录界面输入用户名称和密码验证
5、用户名和密码成功页面错误页面执行操作选择操作NY结束开始是否结束YN图4-3 程序流程图4.2.2 程序层次关系图登录模块密器、解密模块成功模块密器、解密模块失败模块密器、解密模块删除模块查询模块添加模块图4-4 层次关系图4.3 系统代码实现 4.3.1 工程目录结构图4-5 工程目录结构如图4-5,其中src目录下有Hibernate配置文件“hibernate.cfg.xml”和Struts2配置文件“ struts.xml”;在com.hjg.action包下有数据库表user和course的实体类及其映射文件;在com.hjg.action包下有实现登录验证、查询、插入、删除的act
6、ion方法;WebRoot目录下是实现程序的登录、插入等功能及返回页面。 4.3.2 实体类的实现1.本程序有两个实体类,代表用户信息的实体类的类名为“User”,它的实现代码如下:public class User private String username;private String password;public String getUsername() return username;public void setUsername(String username) this.username = username;public String getPassword() retur
7、n password;public void setPassword(String password) this.password = password;类User的映射文件为“User.hbm.xml”,它的关键代码如下:<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-/Hibernate/Hibernate Mapping DTD 3.0/EN""<!- Mapping file autogene
8、rated by MyEclipse Persistence Tools-><hibernate-mapping><class name="com.hjg.domain.User"><id name="username"></id><property name="password"></property></class></hibernate-mapping>2. 代表课程信息的实体类的类名为“Course”,它的实现代码如下:pub
9、lic class Course private int cid;private String cname;private String ctype;private int credit;public int getCid() return cid;public void setCid(int cid) this.cid = cid;public String getCname() return cname;public void setCname(String cname) ame = cname;public String getCtype() return ctype;public vo
10、id setCtype(String ctype) this.ctype = ctype;public int getCredit() return credit;public void setCredit(int credit) this.credit = credit;类Course的映射文件为“course.hbm.xml”,它的关键代码如下:<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-/Hibernate/Hibe
11、rnate Mapping DTD 3.0/EN""<!- Mapping file autogenerated by MyEclipse Persistence Tools-><hibernate-mapping><class name="com.hjg.domain.Course"><id name="cid"></id><property name="cname"></property><property name=&q
12、uot;ctype"></property><property name="credit"></property></class></hibernate-mapping>4.3.3 Action类的实现1.验证登录信息的Action类的类名为“LoginAction”,它继承了Struts2提供的ActionSupport类,并在execute()方法中验证登录,它的实现代码如下:public class LoginAction extends ActionSupportprivate String
13、 username;private String password;public String getUsername() return username;public void setUsername(String username) this.username = username;public String getPassword() return password;public void setPassword(String password) this.password = password;public String execute()throws ExceptionConfigu
14、ration cfg=new Configuration();SessionFactory sf=cfg.configure().buildSessionFactory();Session session=sf.openSession();session.beginTransaction();Query query=session.createQuery("from User as u where u.username='"+this.username+"' and u.password='"+this.password+&quo
15、t;'");List list=query.list();if(list.size()=0)return "error"elsereturn "success"2.查询课程信息的Action类的类名为“SelectAction”,它继承了Struts2提供的ActionSupport类,并在execute()方法中进行查询并返回结果,它的实现代码如下:public class SelectAction extends ActionSupport public String execute() throws Exception calcu
16、late1();calculate2();return "select"public List<Course> allCourse() Configuration cfg = new Configuration();SessionFactory sf = cfg.configure().buildSessionFactory();Session session = session = sf.openSession();Transaction transaction = session.beginTransaction();Query query = sessio
17、n.createQuery("from Course");List<Course> list= query.list();for (Course s : list) System.out.print(s.getCid() + " ");System.out.print(s.getCname() + " ");System.out.print(s.getCredit() + " ");System.out.println(s.getCtype();mit();session.close();return
18、list;public int calculate1() int sum1 = 0;Configuration configuration = new Configuration().configure();SessionFactory sessionFactory = configuration.buildSessionFactory();Session session = sessionFactory.openSession();Transaction transaction = session.beginTransaction();Query query = session.create
19、Query("from Course");List<Course> list = query.list();for (Course s : list) System.out.println(s.getCtype();if (s.getCtype().equals("必修") sum1 += s.getCredit();mit();session.close();return sum1;public int calculate2() int sum2 = 1;Configuration configuration = new Configura
20、tion().configure();SessionFactory sessionFactory = configuration.buildSessionFactory();Session session = sessionFactory.openSession();Transaction transaction = session.beginTransaction();Query query = session.createQuery("from Course");List<Course> list = query.list();for (Course s :
21、 list) System.out.println(s.getCtype();if (s.getCtype().equals("选修") sum2 += s.getCredit();mit();session.close();return sum2;3.删除课程信息的Action类的类名为“DeleteAction”,它继承了Struts2提供的ActionSupport类,并在execute()方法中删除和输入id相同的项,它的实现代码如下:public class DeleteAction extends ActionSupport private String cid
22、;public String getCid() return cid;public void setCid(String cid) this.cid = cid;public String execute() throws Exception int ci = Integer.parseInt(cid);String hql = "delete from Course where cid=" + String.valueOf(ci);Configuration cfg = new Configuration();SessionFactory sf = cfg.configu
23、re().buildSessionFactory();Session session = sf.openSession();Transaction transaction = session.beginTransaction();Query query = session.createQuery(hql);query.executeUpdate();mit();session.close();return "delete"4.增加课程信息的Action类的类名为“InsertAction”,它继承了Struts2提供的ActionSupport类,并在execute()方法
24、中增加输入的项,它的实现代码如下:public class InsertAction extends ActionSupport private String cid;private String cname;private String ctype;private String credit;private Course c = new Course();public String getCid() return cid;public void setCid(String cid) this.cid = cid;public String getCname() return cname;pu
25、blic void setCname(String cname) ame = cname;public String getCtype() return ctype;public void setCtype(String ctype) this.ctype = ctype;public String getCredit() return credit;public void setCredit(String credit) this.credit = credit;public String execute() throws Exception Course c=new Course();in
26、t ci = Integer.parseInt(cid);String ca = cname;String ct = ctype;int cr = Integer.parseInt(credit);c.setCid(ci);c.setCname(ca);c.setCredit(cr);c.setCtype(ct);Configuration cfg = new Configuration();SessionFactory sf = cfg.configure().buildSessionFactory();Session session = sf.openSession();Transacti
27、on transaction = session.beginTransaction(); session.save(c);mit();session.close();return "insert"4.3.4 JSP页面的实现1.登录页面login.jsp代码,用于填写用户名和密码并提交:<% page language="java" import="java.util.*" pageEncoding="utf-8"%><% taglib prefix="s" uri="
28、;/struts-tags"%><html><head><title>登录页面</title></head><body><s:form action="login"><s:textfield name="username" label="用户名:" value="" required="true" /><br><s:password name="passwo
29、rd" label="密码:" value="" required="true" /><br><s:submit value="登录" /></s:form></body></html>2.登录成功页面success.jsp代码,登陆成功后可选择下一步操作:<% page language="java" import="java.util.*" pageEncoding="UTF-8&
30、quot;%><html> <head> <title>登录成功</title> </head> <body> 登录成功,请选择操作<br> <a href="select.jsp">查询操作</a> <a href="delete.jsp">刪除操作</a> <a href="insert.jsp">增加操作</a> </body></html>3.
31、登录失败页面error.jsp代码,登录失败后必须返回登录页面重新登录:<% page language="java" import="java.util.*" pageEncoding="UTF-8"%><html> <head> <title>登录失败</title> </head> <body>用户名或密码错误,请返回重新登录! <a href="login.jsp">返回</a> </body&
32、gt;</html>3.查询页面select.jsp代码,查询数据库course表的内容及选修课和必修课的总学分:<% page language="java"import="java.util.*,com.hjg.action.*,com.hjg.domain.*"pageEncoding="utf-8"%><html><head><title>查询页面</title></head><body>所有课程<%SelectAction
33、sa = new SelectAction();List<Course> list = sa.allCourse();%><table><tr><td>课程编码</td><td>课程名称</td><td>课程学分</td><td>课程类别</td></tr><%for (Course s : list) %><tr><td><%=s.getCid()%></td><td>&l
34、t;%=s.getCname()%></td><td><%=s.getCredit()%></td><td><%=s.getCtype()%></td></tr><%></table>必修总学分:<%=sa.calculate1()%><br>选修总学分:<%=sa.calculate2()%><br><a href="success.jsp">返回</a></body&g
35、t;</html>4.删除页面delete.jsp代码,根据输入的id号删除表中的项:<% page language="java" pageEncoding="UTF-8"%><% taglib prefix="s" uri="/struts-tags"%><html><head><title>My JSP 'delete.jsp' starting page</title></head><bod
36、y>请输入你要删除课程的ID号:<s:form action="delete"><s:textfield name="cid" label="id号:" value="" required="true" /><br><s:submit value="提交" /></s:form></body></html>5.增加页面insert.jsp代码,根据输入内容向表中插入数据:<% pa
37、ge language="java" pageEncoding="UTF-8"%><% taglib prefix="s" uri="/struts-tags"%><html><head><title>My JSP 'delete.jsp' starting page</title></head><body>请输入你要增加的课程:<s:form action="insert">&
38、lt;s:textfield name="cid" label="id号:" value="" required="true" /><s:textfield name="cname" label="课程名:" value="" required="true" /><s:textfield name="ctype" label="课程类型:" value="&quo
39、t; required="true" /><s:textfield name="credit" label="学分:" value="" required="true" /><br><s:submit value="提交" /></s:form></body></html>4.3.5 配置信息的实现1.struts2配置文件struts.xml,主要实现了各个Action类的跳转:<?xml
40、version="1.0" encoding="GBK"?><!DOCTYPE struts PUBLIC "-/Apache Software Foundation/DTD Struts Configuration 2.0/EN" "/dtds/struts-2.0.dtd"><struts><package name="com" extends="struts-default"><
41、;action name="login" class="com.hjg.action.LoginAction"><result name="success">/success.jsp</result><result name="error">/error.jsp</result></action><action name="select" class="com.hjg.action.SelectAction&quo
42、t;><result name="select">/select.jsp</result></action><action name="delete" class="com.hjg.action.DeleteAction"><result name="delete">/select.jsp</result></action><action name="insert" class="com.hjg.action.InsertAction"><result name="insert">/select.js
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教育课程设计变更控制措施实施方案
- 机场周边环境绿化施工部署措施
- 2025年贵州旅游行业洞察报告及未来五至十年预测分析报告
- 施工现场环境安全管理措施
- 一年级道德与法制课外活动计划
- 公共设施噪音防治与加固措施
- 职业晋升计划
- 人教版道德与法治课程资源开发计划
- 生态休闲养生茶馆项目创业计划书
- 一年级下册数学复习计划重点
- 2024年6月高等学校英语应用能力考试B级真题2
- 2024年重庆市中考英语试卷真题B卷(含标准答案及解析)+听力音频
- 2024年越南电信 服务领域ICT投资趋势行业现状及前景分析2024-2030
- 厦门2024年福建厦门市儿童医院(复旦大学附属儿科医院厦门医院)招聘笔试历年典型考题及考点附答案解析
- 2023年湖南省普通高等学校对口招生考试机电类专业综合知识试题附答题卡
- 医院用工合同医院用工合同书(2024版)
- 管培生培养方案
- 口腔正畸学之矫治器及其制作技术常用器械课件
- 2024届江苏省淮安市数学高一下期末考试试题含解析
- JTG-H30-2015公路养护安全作业规程
- 危险化学品考试试题(含答案)
评论
0/150
提交评论