




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录一、设计目的2二、功能介绍2三、程序流程3四、设计步骤4五、设计总结12六、程序清单12七、参考文献27一、 设计目的J2EE框架技术实践是计算机相关专业的必修专业基础课程,其实践性,应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业学生学习J2EE框架技术实践课程后,进行的一次全面的综合训练,J2EE框架技术实践的目的是加深对理论教学内容的理解和掌握,是学生较系统的掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。二、 功能介绍1、具有新用户注册功能。2、
2、具有注册用户登录功能。3、具有学生学籍的录入功能。4、具有数据查询功能,可以实现查询全部信息和按条件执行查询。5、具有按条件删除数据功能。三、 程序流程程序开始点注册进入注册界面注册点登录/注册点登录登录注册成功进入学籍管理系统主界面点击搜索/点击显示全部学籍/添加新学籍信息显示所有学生的学籍信息进入添加学籍界面,添加学籍显示文本框中输入的学号的学生学籍信息点击删除按钮删除该学号学生的学籍信息程序结束四、 设计步骤1、 打开IE浏览器,在地址栏中输入http:/localhost:8080/StudocManage/点回车,则进入学生学籍管理系统的登录界面,如图4-1所示:图4-1 登录界面2
3、、 若输入用户名、密码,点击“登录按钮”,如果用户名、密码验证成功,则进入学生学籍管理系统的主界面,如图4-2-1所示:图4-2-1 学生学籍管理系统主界面 验证用户的核心代码:public String execute() Manageruser mu=new Manageruser(); mu.setUsername(username); mu.setUserpwd(userpwd); if(managerServicesInter.checkUser(mu)!=null) ServletActionContext.getRequest().getSession().setAttribut
4、e("validateuser", mu); return "success" else return INPUT; 若点击“注册用户”的超链接,则进入管理员注册界面,如图4-2-2所示:图4-2-2 管理员注册界面注册管理员的核心代码:public String add()Manageruser mu=new Manageruser();mu.setEMail(email);mu.setSex(sex);mu.setTel(tel);mu.setUsername(username);mu.setUserpwd(userpwd);managerServi
5、cesInter.saveManager(mu);if(ServletActionContext.getRequest().getSession().getAttribute("validateuser")!=null)return SUCCESS;else ServletActionContext.getRequest().getSession().setAttribute("validateuser", mu); return SUCCESS;3、 登录成功后,点击“管理管理员信息”按钮,则弹出“全部管理员信息”,“添加管理员信息”,“搜索管理员信息
6、”三个超链接;a、 点击“全部管理员信息”,则系统将所有管理员的信息罗列出来,如图4-3-1所示:并且,每个管理员后边都有一个“删除用户”和“修改用户”按钮,点击相应的按钮后,则进行相应的操作。图4-3-1 管理员信息列表显示管理员列表的核心代码:public String execute() throws Exception if(pageNow=0) pageNow=1; this.setPageSize(5); /设置当前页共有5条记录 int pageCount=managerServicesInter.getPage(pageSize); HttpServletRequest req
7、uest=ServletActionContext.getRequest(); request.setAttribute("pageCount", pageCount); request.setAttribute("pageNow",pageNow);List<Object> list=managerServicesInter.showManagerList(pageNow, pageSize);request.setAttribute("managerList", list);return super.execute()
8、;b、点击“添加管理员”按钮,则进入到管理员注册界面,如图4-2-2所示。c、点击“搜索管理员”按钮,则进入搜索管理员页面,如图4-3-2所示。图4-3-2 管理员搜索界面搜索管理员的核心代码:public String managerSearch()if("search".equals(myselect)Manageruser mu=managerServicesInter.QuerryManager(managername);List<Object> list=new ArrayList<Object>();if(mu!=null)list.ad
9、d(mu);ServletActionContext.getRequest().setAttribute("managerList",list);return SUCCESS;if("likesearch".equals(myselect)List<Object> list=managerServicesInter.showManagerListWithlike(managername);ServletActionContext.getRequest().setAttribute("managerList",list);r
10、eturn SUCCESS;elsereturn ERROR;4、 在学生学籍管理系统的主页面若点击“管理学生学籍信息”按钮,弹出“全部学生学籍”,“添加学生学籍”,“搜索学生学籍”三个按钮,如图4-4-1所示:图4-4-1 管理学生学籍信息a、 点击“全部学生学籍”按钮,则进入学生学籍信息列表中,如图4-4-2所示:图4-4-2 学生学籍信息列表显示学生学籍信息列表的核心代码:public String execute() throws Exception if(pageNow=0) pageNow=1; this.setPageSize(5); /设置当前页共有5条记录 int pageC
11、ount=studocServicesInter.getPage(pageSize); HttpServletRequest request=ServletActionContext.getRequest(); request.setAttribute("pageCount", pageCount); request.setAttribute("pageNow",pageNow);List<Object> list=studocServicesInter.showStudocList(pageNow, pageSize);request.se
12、tAttribute("stuinfolist", list);return super.execute();在学生学籍列表中有“详细信息”、“修改信息”、“删除学籍”三个按钮,点击“详细信息”,则将该学生的学籍详细信息罗列出来,如图4-4-3所示:图4-4-3 学生学籍卡片显示学生学籍卡片的核心代码:public String show()Studoc studoc=studocServicesInter.QuerryStudoc(classno);String sex=studoc.getSex();if(sex.equals("nan")sex=&
13、quot;男"elsesex="女"studoc.setSex(sex);String hunyin=studoc.getHunyin();if(hunyin.equals("yes")hunyin="已婚"elsehunyin="未婚"studoc.setHunyin(hunyin);String zhengzhi=studoc.getZhengzhi();if(zhengzhi.equals("ordernary")zhengzhi="群众"else if(zh
14、engzhi.equals("tuanyuan")zhengzhi="团员"elsezhengzhi="党员"studoc.setZhengzhi(zhengzhi);Date birthday=studoc.getBirthday();SimpleDateFormat df=new SimpleDateFormat("yyyy-mm-dd");try birthday=df.parse(birthday.toString(); catch (ParseException e) e.printStackTrace(
15、);studoc.setBirthday(birthday);ServletActionContext.getRequest().setAttribute("studocshowinfo", studoc);return "StudocShow"b、 点击“添加学生学籍”按钮,则进入添加学生学籍界面,如图4-4-4所示:图4-4-4 添加学生学籍信息添加学生学籍信息的核心代码:public String add()Studoc sd=new Studoc(classno, name, sex, email, minzu, birthday, hunyin
16、, tel, zhengzhi, address, zhuanye, classname, xuelicengci, youbian, guhua);studocServicesInter.saveStudoc(sd);return SUCCESS;填完所有学生学籍信息后,点击“添加学籍信息”按钮,如果操作成功,则出现操作成功界面,如图4-4-5所示,如果失败,则出现操作失败界面,如图4-4-6所示:图4-4-5 操作成功界面图4-4-6 操作失败界面5、 在学生学籍管理系统主界面如果点击“退出系统”按钮,则系统给出提示,问其是否确定退出系统,如果选择是,则退出学生学籍管理系统,如图4-5-1
17、所示:图4-5-1 退出系统退出系统进行提示的核心代码:<a href=”javascript:sefl.close()” >退出系统</a>五、 设计总结两周的时间很快就过去了,在这短暂的J2EE框架技术实践过程中,我们在一起学习,加深我们对J2EE框架技术实践认识的深度,平时没怎么太在乎。现在知道自己错了,因为在课设过程中,必须得对J2EE框架技术实践的知识特别了解,而且必须自己动手去做。体会了从事系统开发工作需要特别严谨认真的态度和作风,一点都马虎不得。每一个细微的细节都必须十分的注意,如果不认真思考决策,就会出现或大或小的错误,如果早期的错误隐藏下来,对后面的工
18、作影响就会很大,甚至有时要推倒很多前面做的工作重来。给我们印象最深刻的是在代码调试的过程,以为在该部分是需要非常仔细、谨慎的。因为有一点马虎的地方就有可能导致代码错误。六、 程序清单(部分)applicationContext.xml文件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans" xmlns:xsi="/2001/XMLSchem
19、a-instance" xmlns:tx="/schema/tx" xmlns:context="/schema/context" xsi:schemaLocation=" /schema/context/spring-context-2.5.xsd"><!- 启用注解扫描 -><context:annotation-config
20、/><!- 配置数据源 -><bean id="dataSource" class="mons.dbcp.BasicDataSource" destroy-method="close"> <!- 配置驱动链接什么的! -> <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/> <property name="
21、;url" value="jdbc:sqlserver:/localhost:1433;DatabaseName=studoc"/> <property name="username" value="sa"/> <property name="password" value="admin"/> <!- 连接池启动的初始值 -> <property name="initialSize" value="3&quo
22、t;/> <!- 连接池的最大值 -> <property name="maxActive" value="500"/> <!- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减到maxIdle位置 -> <property name="maxIdle" value="2"/> <!- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去 一些连接,以免洪峰来时来不及申请-> <property na
23、me="minIdle" value="1"/></bean><!- 配置会话工厂SessionFactory -><bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property n
24、ame="mappingResources"> <list> <value>com/sen/studoc/domain/Manageruser.hbm.xml</value> <value>com/sen/studoc/domain/Studoc.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <value> hibernate.hbm2ddl
25、.auto=update hibernate.show_sql=true hibernate.format_sql=true hibernate.cache.use_query_cache=true vider_class=org.hibernate.cache.EhCacheProvider </value> </property></bean><!- 配置managerServicesImp,通过注解的方式注入值 -><bean id="managerServicesImp" c
26、lass="com.sen.studoc.services.imp.ManagerServicesImp"/><bean id="studocServicesImp" class="com.sen.studoc.services.imp.StudocServicesImp"/><!- 配置事务管理器,统一管理sessionFactory的事务 -><bean id="txManager" class="org.springframework.orm.hibernate3
27、.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"/></bean><!- 启用事务注解 -><tx:annotation-driven transaction-manager="txManager"/><bean id="login" class="com.sen.studoc.action.LoginAction&qu
28、ot;> <property name="managerServicesInter" ref="managerServicesImp"></property></bean><bean id="show" class="com.sen.studoc.action.ShowAction"/><bean id="manager" class="com.sen.studoc.action.ManagerAction">
29、 <property name="managerServicesInter" ref="managerServicesImp"></property></bean><bean id="managerlist" class="com.sen.studoc.action.ManagerListAction"> <property name="managerServicesInter" ref="managerServicesImp&qu
30、ot;></property></bean><bean id="goupdate" class="com.sen.studoc.action.GoUpdateAction"> <property name="managerServicesInter" ref="managerServicesImp"></property> <property name="studocServicesInter" ref="stud
31、ocServicesImp"></property></bean><bean id="ajaxcl" class="com.sen.studoc.action.AjaxClAction"> <property name="managerServicesInter" ref="managerServicesImp"></property></bean><bean id="search" class=&qu
32、ot;com.sen.studoc.action.SearchAction"> <property name="managerServicesInter" ref="managerServicesImp"></property> <property name="studocServicesInter" ref="studocServicesImp"></property></bean><bean id="stumanage&
33、quot; class="com.sen.studoc.action.StudocManagerAction"> <property name="studocServicesInter" ref="studocServicesImp"></property></bean><bean id="stuinfolist" class="com.sen.studoc.action.StuinfoListAction"> <property na
34、me="studocServicesInter" ref="studocServicesImp"></property></bean></beans>Struts2.xml文件<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-/Apache Software Foundation/DTD Struts Configuration 2.0/EN"pache.o
35、rg/dtds/struts-2.0.dtd"><struts> <constant name="struts.i18n.encoding" value="gbk"></constant> <constant name="struts.devMode" value="true" /> <constant name="struts.objectFactory" value="spring" /> <
36、;package name="studoc" namespace="/" extends="struts-default"> <action name="login" class="login"> <result name="success" type="chain">show</result> <result name="input">/Login.jsp</result&g
37、t; </action> <action name="show" class="show"> <result name="success">/MainFrame.jsp</result> <result name="error">/Login.jsp</result> </action> <action name="mang" class="manager"> <result
38、 name="success">/OperateOk.jsp</result> <result name="input">/Error.jsp</result> <result name="error">/AdminAbout_error.jsp</result> </action> <action name="manglist" class="managerlist"> <result name=&
39、quot;success">/Main_managerList.jsp</result> <result name="input">/Error.jsp</result> </action> <action name="goupdate" class="goupdate"> <result name="success">/Main_update.jsp</result> <result name="s
40、tudocupdateOk">/StuInfo_updateInfo.jsp</result> <result name="input">/Login.jsp</result> </action> <action name="ajaxcl" class="ajaxcl"></action> <action name="search" class="search"> <result name=
41、"success">/Main_Searchresult.jsp</result> <result name="stusearch">/StuInfo_searchResult.jsp</result> <result name="error">/Error.jsp</result> </action> <action name="stumanage" class="stumanage"> <resu
42、lt name="success">/OperateOk.jsp</result> <result name="StudocShow">/StuInfo_showInfo.jsp</result> <result name="error">/Error.jsp</result> </action> <action name="stuinfolist" class="stuinfolist"> <res
43、ult name="success">/StuInfo_ListInfo.jsp</result> <result name="error">/Error.jsp</result> </action> </package></struts>以下为Action类public class AjaxClAction extends ActionSupportprivate String parameter;private ManagerServicesInter managerSer
44、vicesInter;public ManagerServicesInter getManagerServicesInter() return managerServicesInter;public void setManagerServicesInter(ManagerServicesInter managerServicesInter) this.managerServicesInter = managerServicesInter;public String getParameter() return parameter;public void setParameter(String p
45、arameter) this.parameter = parameter;public String execute()HttpServletResponse response=ServletActionContext.getResponse();response.setCharacterEncoding("utf-8");PrintWriter out = null;tryout = response.getWriter();if(parameter=null|parameter.equals("")out.print("用户名不能为空!&q
46、uot;);elseString username=URLDecoder.decode(parameter, "utf-8");if(managerServicesInter.IsThisUser(username)out.print("<img src='public/Image/infook.jpg'/><span style='color:green'>此用户名可用!<span>");elseout.print("<img src='public/Image
47、/infonook.jpg'/><span style='color:red'>此用户名已用!请重换用户名!</span>");catch(Exception e)e.printStackTrace();finallyif(out!=null)out.close();out=null;return SUCCESS;public class GoUpdateAction extends ActionSupportprivate String id;private String username;private String user
48、pwd;private String sex;private String EMail;private String tel;private String stuno; /学生学籍学号private ManagerServicesInter managerServicesInter;private StudocServicesInter studocServicesInter;public StudocServicesInter getStudocServicesInter() return studocServicesInter;public void setStudocServicesIn
49、ter(StudocServicesInter studocServicesInter) this.studocServicesInter = studocServicesInter;public String getStuno() return stuno;public void setStuno(String stuno) this.stuno = stuno;public ManagerServicesInter getManagerServicesInter() return managerServicesInter;public void setManagerServicesInte
50、r(ManagerServicesInter managerServicesInter) this.managerServicesInter = managerServicesInter;public String getId() return id;public void setId(String id) this.id = id;public String getEMail() return EMail;public void setEMail(String eMail) EMail = eMail;public String getUsername() return username;p
51、ublic void setUsername(String username) this.username = username;public String getUserpwd() return userpwd;public void setUserpwd(String userpwd) this.userpwd = userpwd;public String getSex() return sex;public void setSex(String sex) this.sex = sex;public String getEmail() return EMail;public void s
52、etEmail(String EMail) this.EMail = EMail;public String getTel() return tel;public void setTel(String tel) this.tel = tel;Overridepublic String execute() /处理超链接传值乱码问题! try sex=new String(sex.getBytes("ISO-8859-1"),"gbk"); catch (UnsupportedEncodingException e) e.printStackTrace();
53、/这段代码告诉我一个道理:设计数据库时,性别字段中绝对不能填"男"和"女"if(sex.equals("男")sex="nan"else if(sex.equals("女")sex="nv"Manageruser manageruser=new Manageruser();manageruser.setId(Integer.parseInt(id);manageruser.setEMail(EMail);manageruser.setUsername(username);ma
54、nageruser.setUserpwd(userpwd);manageruser.setSex(sex);manageruser.setTel(tel);ServletActionContext.getRequest().setAttribute("manager", manageruser);return SUCCESS;public String oridinaryManUpdate() /解决超链接传值乱码问题try username=new String(username.getBytes("ISO-8859-1"),"gbk&quo
55、t;); catch (UnsupportedEncodingException e) e.printStackTrace();Manageruser mu=managerServicesInter.QuerryManager(username);sex=mu.getSex();if(sex.equals("男")mu.setSex("nan");else if(sex.equals("女")mu.setSex("nan");ServletActionContext.getRequest().setAttribut
56、e("manager", mu);return SUCCESS; public String studocupdate()Studoc studoc=studocServicesInter.QuerryStudoc(stuno);Date date=studoc.getBirthday();SimpleDateFormat dateformat=new SimpleDateFormat("yyyy-MM-dd");try date=dateformat.parse(date.toString(); catch (ParseException e) e.p
57、rintStackTrace();studoc.setBirthday(date);ServletActionContext.getRequest().setAttribute("studocupdateinfo", studoc);return "studocupdateOk"public class LoginAction extends ActionSupportprivate String username;private String userpwd;private ManagerServicesInter managerServicesInt
58、er;public ManagerServicesInter getManagerServicesInter() return managerServicesInter;public void setManagerServicesInter(ManagerServicesInter managerServicesInter) this.managerServicesInter = managerServicesInter;public String getUsername() return username;public void setUsername(String username) th
59、is.username = username;public String getUserpwd() return userpwd;public void setUserpwd(String userpwd) this.userpwd = userpwd; Overridepublic String execute() Manageruser mu=new Manageruser(); mu.setUsername(username); mu.setUserpwd(userpwd); if(managerServicesInter.checkUser(mu)!=null) ServletActionC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 装潢印刷的智能监测系统考核试卷
- 口腔中的微生物
- 职场技能提升解锁成功的新篇章考核试卷
- 项目经理年底汇报
- XXX石油服务集团股份有限公司ESG管理制度
- Pyripyropene-B-生命科学试剂-MCE
- 中考二轮复习高频考点突破考点2;方程与方程组
- 电力行业水电商业模式稳定低利率时代价值凸显
- 2025年乡村振兴农村电子商务基础设施建设资金申请指南
- 分布式能源系统生物质能源应用2025年与生物质能发电技术专利布局研究报告
- 2025年内蒙古能源集团煤电板块所属单位招聘笔试参考题库含答案解析
- 2024年全国财会知识竞赛考试题库(浓缩500题)
- 2024年青海省中考生物地理合卷试题(含答案解析)
- 政府投资项目审计与报告案例信息讲解课件
- 妇产科课件-女性生殖系统炎症
- 三甲医院体检报告单A4
- 污水处理缺氧、厌氧、好氧的工艺流程分析
- 子午线轮胎断面分析
- 年产5000t柠檬酸发酵车间工厂设计 - 副本
- 银行保函(URDG758)讲义
- 停止等待协议实验报告
评论
0/150
提交评论