




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、test.java【界面】employee.javaemployeeservice.java【业务操作】hibernateemployeeserviceinter数据库login.jspemployee.javaemployeeservice.java【业务操作】hibernateemployeeserviceinter数据库loginaction.java表单失败成功mainframe.jsp雇员薪资管理系统 具体的步骤:1. 创建web项目2. 引入spring开发包3. 编写applicationcontext.xml文件(或者beans.xml),把该文件放在src目录下。4. 测试一
2、下spring 是否成功。public class testservice public void sayhello()system.out.println("hello");public class test public static void main(string args) applicationcontext ac=new classpathxmlapplicationcontext("applicationcontext.xml");testservice testservice=(testservice)ac.getbean("
3、testservice");testservice.sayhello();<!- 配置测试对象testservice -><bean id="testservice" class="com.test.testservice"></bean>5. 加入hibernate开发包。6. 因为我们是ssh,所以我们hibernate的核心文件就被spring接管了。hibernate.cfg.xml 文件对象映射文件,sessionfactory在spring的文件中配置即可。7. 在 applicatio
4、ncontext.xml中配置数据源<!- 配置数据源 -> <bean id="datasource" class="mons.dbcp.basicdatasource" destroy-method="close"> <property name="driverclassname" value="com.mysql.jdbc.driver"/> <property name="url" value="jdbc:mysql
5、:/localhost:3306/emp1"/> <property name="username" value="root"/> <property name="password" value="123"/> <!- 连接池启动时的初始值 -><property name="initialsize" value="30"/> <!- 连接池的最大值 -> <property name=&quo
6、t;maxactive" value="500"/> <!- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxidle为止 -><property name="maxidle" value="2"/><!- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -><property name="minidle" value="1"/></b
7、ean>8. 配置sessionfactory对象<bean id="sessionfactory" class="org.springframework.orm.hibernate3.localsessionfactorybean"> <property name="datasource" ref="datasource"/> <property name="mappingresources"> <list> <value>co
8、m/domain/employee.hbm.xml</value> </list> </property> <property name="hibernateproperties"> <value> hibernate.dialect=org.hibernate.dialect.oracledialect hibernate.hbm2ddl.auto=updatehibernate.show_sql=false </value> </property></bean>9. 编写do
9、main对象和映射文件employee.hbm.xml ->测试srping和hibernate是否可以结合使用->okpublic class employee private integer id;private string name;private string email;private string pwd;private integer grade;private java.util.date hiredate;private float salary;public employee(string name, string email, string pwd, int
10、eger grade,date hiredate, float salary) = name;this.email = email;this.pwd = pwd;this.grade = grade;this.hiredate = hiredate;this.salary = salary;public employee() <?xml version="1.0" encoding="utf-8"?><!doctype hibernate-mapping public "-/hibernate/hibern
11、ate mapping dtd 3.0/en" " <hibernate-mapping package="com.domain"><class name="employee" table="employee"><!- 主键策略 -><id name="id" type="java.lang.integer"><generator class="increment"/></id><
12、;property name="name" type="java.lang.string"><column name="name" length="64"/></property><property name="email" type="java.lang.string"><column name="email" length="64"/></property><p
13、roperty name="hiredate" type="java.util.date"><column name="hiredate" /></property><property name="salary" type="java.lang.float"><column name="salary" /></property><property name="pwd" type=&qu
14、ot;java.lang.string"><column name="pwd" length="32"/></property><property name="grade" type="java.lang.integer"><column name="grade" length="3"/></property></class></hibernate-mapping>public
15、 class test public static void main(string args) applicationcontext ac=new classpathxmlapplicationcontext("applicationcontext.xml");/testservice testservice=(testservice)ac.getbean("testservice");/testservice.sayhello();employee employee=new employee("ddc","abc&quo
16、t;,"111",1,new java.util.date(),234.56f);sessionfactory sessionfactory=(sessionfactory)ac.getbean("sessionfactory");session s=sessionfactory.opensession();transaction ts=s.begintransaction();s.save(employee);mit();启动mysql服务,连接数据库,观察记录是否插入成功。10. 建立接口,考虑分层设计public interface employe
17、eserviceinter /声明一些方法public void addemployee(employee e);public list<employee> showemployee();public void updemployee(employee e);/根据id删除雇员public void delemployee(integer id);public class employeeservice implements employeeserviceinter private sessionfactory sessionfactory;public sessionfactor
18、y getsessionfactory() return sessionfactory;public void setsessionfactory(sessionfactory sessionfactory) this.sessionfactory = sessionfactory;public void addemployee(employee e) session s=sessionfactory.opensession();transaction ts=s.begintransaction();s.save(e);mit();public void delemployee(integer
19、 id) / todo auto-generated method stubpublic list<employee> showemployee() / todo auto-generated method stubreturn null;public void updemployee(employee e) / todo auto-generated method stub<bean id="employeeservice" class="com.service.imp.employeeservice"><property
20、 name="sessionfactory" ref="sessionfactory"/></bean>11. 使用事务管理器来统一管理事务。<!- 配置事务管理器 -><bean id="txmanager" class="org.springframework.orm.hibernate3.hibernatetransactionmanager"> <property name="sessionfactory" ref="sessio
21、nfactory"/></bean><!- 启用事务注解 -><tx:annotation-driven transaction-manager="txmanager"/>/这里配置transactional的作用是让spring的事务管理器接管employeeservice中的所有事务transactionalpublic class employeeservice implements employeeserviceinter private sessionfactory sessionfactory;public s
22、essionfactory getsessionfactory() return sessionfactory;public void setsessionfactory(sessionfactory sessionfactory) this.sessionfactory = sessionfactory;public void addemployee(employee e) /session s=sessionfactory.opensession();/transaction ts=s.begintransaction();/s.save(e);/mit();sessionfactory.
23、getcurrentsession().save(e);public class test public static void main(string args) applicationcontext ac=new classpathxmlapplicationcontext("applicationcontext.xml");/testservice testservice=(testservice)ac.getbean("testservice");/testservice.sayhello();employee employee=new empl
24、oyee("aaddc","abc","111",1,new java.util.date(),234.56f);/sessionfactory sessionfactory=(sessionfactory)ac.getbean("sessionfactory");/session s=sessionfactory.opensession();/transaction ts=s.begintransaction();/s.save(employee);/mit();employeeserviceinter empl
25、oyeeserviceinter=(employeeserviceinter)ac.getbean("employeeservice");employeeserviceinter.addemployee(employee);12. 整合struts13. 引入struts开发包14. 创建struts-config.xml 方法 /web-inf 目录下 ,创建login.jsp和mainframe.jspstruts-config.xml <?xml version="1.0" encoding="utf-8"?><
26、;!doctype struts-config public "-/apache software foundation/dtd struts configuration 1.1/en" "/struts/dtds/struts-config_1_1.dtd"> <struts-config><form-beans><form-bean name="employeeform" type="com.web.forms.employeeform&
27、quot;/></form-beans><action-mappings><action path="/login" parameter="flag" name="employeeform" type="com.web.action.loginaction"><forward name="ok" path="/web-inf/mainframe.jsp"></forward><forward name=&
28、quot;err" path="/web-inf/login.jsp"></forward></action></action-mappings></struts-config>login.jsp <body> <h1>管理员登录</h1> <form action="/myssh02/login.do?flag=login" method="post"> id:<input type="text"
29、 name="id"/><br/><br/>pw:<input type="password" name="pwd"/><br/><br/> <input type="submit" value="登陆"> <input type="reset" value="重填"> </form> </body>mainframe.jsp <body
30、> <h1>请选择您需要的操作</h1> <br> <a href="#">添加雇员</a><br><br> <a href="#">显示雇员</a><br><br> <a href="#">删除雇员</a><br><br> <a href="#">查询雇员</a><br><br> &
31、lt;a href="#">退出</a><br><br> </body>public class employeeform extends actionform private string id;private string pwd;public string getid() return id;public void setid(string id) this.id = id;public string getpwd() return pwd;public void setpwd(string pwd) this.p
32、wd = pwd;public class loginaction extends dispatchaction /响应登陆请求public actionforward login(actionmapping mapping, actionform form,httpservletrequest request, httpservletresponse response)throws exception /取出表单,先简单验证employeeform employeeform=(employeeform)form;system.out.println("success");
33、if("123".equals(employeeform.getpwd()return mapping.findforward("ok");elsereturn mapping.findforward("err");/响应注销请求public actionforward loginout(actionmapping mapping, actionform form,httpservletrequest request, httpservletresponse response)throws exception return super
34、.execute(mapping, form, request, response);15. 在web.xml中配置我们的struts<servlet><servlet-name>struts</servlet-name><servlet-class>org.apache.struts.action.actionservlet</servlet-class><init-param><param-name>config</param-name><param-value>/web-inf/s
35、truts-config.xml</param-value></init-param><load-on-startup>0</load-on-startup></servlet><servlet-mapping><servlet-name>struts</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>16. 修改index.jsp <body> <body> &l
36、t;jsp:forward page="/web-inf/login.jsp"></jsp:forward> </body> </body>17. 让spring接管action问题:如果还没有在spring中配置struts组件,如何获得一个servicespring管理各层applicationcontext.xml<beean databasesource/><bean sessionfactory/><!- 配置事务管理器,统一管理sessionfactory的事务 -><bean
37、id="txmanager" class="org.springframework.orm.hibernate3.hibernatetransactionmanager"> <property name="sessionfactory" ref="sessionfactory"/></bean><!- 启用事务注解 -><tx:annotation-driven transaction-manager="txmanager"/><bea
38、n id="employeeservice" /><bean id="departmentservice"/>struts组件配置.原来的方法:每调用一次action,都需要调用classpathxmlapplicationcontext。因此我们可以让tomcat启动的时候,同时初始化spring容器和struts容器。我们的tomcat在启动的时候,就会实例化spring容器applicationcontext ac=new classpathxml("xx");servletcontext.setattribu
39、te("名字",ac)ac 内存:bean 对象 employeeservicebean 对象 databasesource.就可以在action文件中直接取serviceweb.xml<!- 指定spring的配置文件,默认从web根目录寻找配置文件,我们可以通过spring提供的classpath:前缀指定从类路径下寻找 -><!- tomcat在启动的时候,就会实例化spring容器,也就是实例化spring容器中的各种bean,并将其放入内存 -><context-param> <param-name>contextc
40、onfiglocation</param-name> <param-value>classpath:applicationcontext.xml</param-value></context-param><!- 对spring容器进行实例化 -><listener> <listener-class>org.springframework.web.context.contextloaderlistener</listener-class></listener>actionforward l
41、ogin/如果没有将我们的spring容器交给tomcat去管理,我们需要如下获取bean/applicationcontext ac=new classpathxmlapplicationcontext("applicationcontext.xml");/如果将spring容器交给tomcat去实例化,但是没有让spring容器来接管antion,我们需要如下获取/通过下列语句可以直接获取到spring容器实例,也就是applicationcontext/webapplicationcontext ctx=/webapplicationcontextutils.getw
42、ebapplicationcontext(this.getservlet().getservletcontext();/从spring容器中获取bean/employeeserviceinter employeeserviceinter=(employeeserviceinter)ctx.getbean("employeeservice");添加验证方法public interface employeeserviceinter /声明一些方法public void addemployee(employee e);public list<employee> sho
43、wemployee();public void updemployee(employee e);/根据id删除雇员public void delemployee(integer id);/如果该雇员存在,则返回该雇员的所有信息,否则返回空public employee checkemployee(employee e);实现验证方法public employee checkemployee(employee e) string hql="from employee where id=? and pwd=?"list<employee> list=sessionf
44、actory.getcurrentsession().createquery(hql).setstring(0, e.getid()+"").setstring(1,e.getpwd().list();if (list.size()=1)return list.get(0);elsereturn null;/响应登陆请求public actionforward login(actionmapping mapping, actionform form,httpservletrequest request, httpservletresponse response)throws
45、 exception employeeform employeeform=(employeeform)form;/if("123".equals(employeeform.getpwd()/return mapping.findforward("ok");/else/return mapping.findforward("err");/webapplicationcontext ctx=webapplicationcontextutils.getwebapplicationcontext(this.getservlet().getse
46、rvletcontext();employeeserviceinter employeeserviceinter=(employeeserviceinter)ctx.getbean("employeeservice");/ 构建一个employee对象employee e=new employee();e.setid(integer.parseint(employeeform.getid();e.setpwd(employeeform.getpwd();e=employeeserviceinter.checkemployee(e);if(e!=null)/把雇员信息放入se
47、ssion,以备后用request.getsession().setattribute("loginuser",e) ;return mapping.findforward("ok");elsereturn mapping.findforward("err");接管action1) 在struts-config.xml文件中添加如下代码配置:<!- 配置代理请求处理 delegatingrequestprocessor ,它的用处是 -><controller> <set-property propert
48、y="processorclass" value="org.springframework.web.struts.delegatingrequestprocessor"/></controller>2) 在applicationcontext.xml文件中配置我们的action路径<!- 配置action -><bean name="/login" class="com.web.action.loginaction"><property name="empl
49、oyeeserviceinter" ref="employeeservice"></property></bean>struts-config中的type就可以不要了3) 这我们就可以通过spring容器来获取action,和配置action的一些属性.loginaction中获取spring容器也可以不要了public class loginaction extends dispatchaction employeeserviceinter employeeserviceinter;public employeeserviceint
50、er getemployeeserviceinter() return employeeserviceinter;public void setemployeeserviceinter(employeeserviceinter employeeserviceinter) system.out.println("通过setemployeeserviceinter获取");this.employeeserviceinter = employeeserviceinter;/响应登陆请求public actionforward login(actionmapping mapping
51、, actionform form,httpservletrequest request, httpservletresponse response)throws exception /取出表单,先简单验证employeeform employeeform=(employeeform)form;/system.out.println("success");/if("123".equals(employeeform.getpwd()/return mapping.findforward("ok");/else/return mappin
52、g.findforward("err");/如果没有将我们的spring容器交给tomcat去管理,我们需要如下获取bean/applicationcontext ac=new classpathxmlapplicationcontext("applicationcontext.xml");/如果将spring容器交给tomcat去实例化,但是没有让spring容器来接管antion,我们需要如下获取/通过下列语句可以直接获取到spring容器实例,也就是applicationcontext/webapplicationcontext ctx=/weba
53、pplicationcontextutils./getwebapplicationcontext(this.getservlet().getservletcontext();/ 构建一个employee对象employee e=new employee();e.setid(integer.parseint(employeeform.getid();e.setpwd(employeeform.getpwd();/从spring容器中获取bean/employeeserviceinter employeeserviceinter=(employeeserviceinter)ctx.getbean(
54、"employeeservice");e=employeeserviceinter.checkemployee(e);if(e!=null)/把雇员信息放入session,以备后用request.getsession().setattribute("loginuser",e) ;return mapping.findforward("ok");elsereturn mapping.findforward("err");4) 通过使用sping来接管我们的action,还有一个好处,可以解决action 是单例的问题
55、.通过在applicationcontext.xml文件中配置属性 <bean scope=”singlton/prototype/request/sesssion/global session”/>18. 添加欢迎信息<body> <h1>欢迎$ 请选择您需要的操作</h1> <br> <a href="#">添加雇员</a><br><br> <a href="#">显示雇员</a><br
56、><br> <a href="#">删除雇员</a><br><br> <a href="#">查询雇员</a><br><br><a href="#">退出</a><br><br></body>19. 完成添加雇员的任务mainframe.jspemployeeaction.javaaddempui.jsppublic class employeeaction ex
57、tends dispatchaction private employeeserviceinter employeeserviceinter;public actionforward addempui(actionmapping mapping, actionform form,httpservletrequest request, httpservletresponse response)throws exception return mapping.findforward("goaddempui");/处理添加雇员请求public actionforward addem
58、p(actionmapping mapping, actionform form,httpservletrequest request, httpservletresponse response)throws exception /简单测试employeeform employeeform=(employeeform)form;/system.out.println(employeeform.getemail()+" "+employeeform.getgrade();/return null;/创建employee对象employee e=new employee();e
59、.setemail(employeeform.getemail();e.setgrade(integer.parseint(employeeform.getgrade() );e.sethiredate(new java.util.date();e.setname(employeeform.getname();e.setpwd(employeeform.getpwd();e.setsalary(float.parsefloat(employeeform.getsalary();try employeeserviceinter.addemployee(e); catch (exception e
60、1) system.out.println(e1.getmessage();return mapping.findforward("opererr");return mapping.findforward("operok");public employeeserviceinter getemployeeserviceinter() return employeeserviceinter;public void setemployeeserviceinter(employeeserviceinter employeeserviceinter) this.e
61、mployeeserviceinter = employeeserviceinter;在struts-config.xml中配置employeeaction<action-mappings><action path="/login" parameter="flag" name="employeeform"><forward name="ok" path="/web-inf/mainframe.jsp"></forward><forward n
62、ame="err" path="/web-inf/login.jsp"></forward></action><action path="/employee" parameter="flag" name="employeeform"><forward name="goaddempui" path="/web-inf/addempui.jsp"/></action></action-ma
63、ppings> 创建addempui.jsp<body><h1>添加雇员</h1><form action="$pagecontext.request.contextpath/employee.do?flag=addemp" method="post"><table><tr><td>name:</td><td><input type="text" name="name"/></td></tr><tr><td>e-mail:</td><td><input type="text" name="email"/><
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于大数据的2025年健康管理服务平台精准营销报告
- 2025年共享出行平台信用评价体系与用户信用评价体系应用研究报告
- 金融科技赋能财富管理:2025年财富管理行业风险管理创新报告
- 共享办公空间增值服务行业报告:2025年市场细分与竞争态势
- 2025年营养师考试冲刺试卷:实操技能与心理营养策略解析
- 企业销售漏斗管理与跟进工具
- 2025年北京市苹果种植收购合同
- 2025内蒙古呼伦贝尔陆港国际有限公司市场化选聘总经理、副总经理2人笔试备考附答案详解(黄金题型)
- 2025年入团团员考试题库综合试卷及答案详解(各地真题)
- 教师招聘之《小学教师招聘》高分题库含答案详解(考试直接用)
- 安全标准化台帐汇编优质资料
- 法考客观题历年真题及答案解析卷一(第1套)
- 第一单元 项目2:走进IC卡收费系统-初始信息系统 课件 高中信息技术必修2
- GB/T 36964-2018软件工程软件开发成本度量规范
- GB/T 13667.3-2013钢制书架第3部分:手动密集书架
- 贝恩咨询模板课件
- 被巡察单位需提供资料清单(模版)
- 《大学物理》教学全套课件
- 林下经济的主要模式课件
- JJF 1076-2020-数字式温湿度计校准规范-(高清现行)
- GB 24427-2021 锌负极原电池汞镉铅含量的限制要求
评论
0/150
提交评论