版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.一、准备工作:MyEclipse 整合 SSH 步骤(基于操作和配置文件):1. JDK -> jdk1.6.0_17 安装(环境变量配置):JAVA_HOME = C: jdk1.6.0_17;PATH = %JAVA_HOME%bin; %JAVA_HOME%jrebin;CLASSPATH = .;%JAVA_HOME%libtools.jar;%JAVA_HOME%libdt.jar;在 Cmd -> java version 查看 JDK 的版本是否与刚配好的版本一致。2. apache-tomcat-6.0.24:解压即可;3. myEclipse 8.5:安装(略)
2、:最高可提供:框架:Java EE 5Spring 3.0Hibernate 3.3Struts 2.14. DB:以 MySQL 5.1 为例。二、打开 myEclipse 先配置好 Tomcat 服务器和 JDK 操作好下图所示:1. Window -> Preferences -> Java: Installed JREs在这里可以不使用 myEclipse 自带的 JDK,得 Add自己安装好的 JDK:2. Window -> Preferences -> MyEclipse -> Servers: Tomcat 6.x在这里配置 Tomcat 服务器,
3、我们这里是选择 6.x。Browse自己将 Tomcat 解压放的目录,再选择 Enable,将它启用,然后 Apply 应用一下就 Ok 了。13. Window -> Preferences: Tomcat 6.x -> JDK 选择前面我们配好的 JDK 版本。24. 现在我们来启动 Tomcat 服务器,打开内部的浏览器测试 Tomcat 有没有配置成功,如下图所示:则表示 Tomcat 服务器配置成功。5. Window -> Preferences -> Java -> Build Path: User Libraries 在这里配置用户自己要用 ja
4、r 包的 Libraries。<说明> 这一步可以到后面需要添加自己的 jar 包时,再做也可以的。6. Window -> Preferences -> Java Build Path:在这里将自己上面配置好的 Libraries 添加到编译请求的路径里。<说明> 这一步可以到后面需要添加自己的 jar 包时,再做也可以的。3三、创建好 Web 项目,最先 Add Spring 如下图所示:1. 选择项目名,右击 ->MyEclipse ->Add Spring Capabilities2. 勾选好 Spring3.0 的五个核心 Librar
5、ies,注意将它们 Copy 到/WebRoot/WEB-INF/lib 目录下,再点击 Next > :453. 完成后,项目中将会出现 Spring 添加的东西,有时候可能会出现不名的错误,现在暂时不需管它(推荐刷新项目),有些原因是因为 Spring 的 Xml 配置文件里引入的东西有冲突。四、创建数据源,切换到 MyEclipse Database Explorer 窗口,如下图所示:61. 在左边 DB Browser 的窗口里,右击选择 New新建一个数据源,出如下图所示的窗口:根据自己项目所建的数据库来选择配置,引入连接驱动 JARs 包。2. 配好后,点击 Test Dr
6、iver 来测试配置连接是否成功。下图所示则表示成功了,再进行下一步操作。73. Schema Details 选择连接映射的数据库,没必要将全部的数据库连接进来。4. 配置好以后,然后选择它将它 Open connection打开看一看,能否将数据连接过来:8五、再将窗口切换回来,现在添加 Hibernate 3.31. 选择项目名,右击 ->MyEclipse ->Add Hibernate Capabilities,这里可以选择支持Annotations 注解方式来进行 SSH 的集成。注意将 Library Copy 到/WebRoot/WEB-INF/lib 目录下:2.
7、 在对话框中选择 Spring configuration file,表示我们希望将 Hibernate 托管给 Spring进行管理,这是将 Hibernate 与 Spring 进行整合的基础。然后点击 Next:3. 在出现的对话框中选择 Existing Spring configuration file。因为我们已经添加了 Spring的配置文件,所以这里选择的是已存在的配置文件。MyEclipse 会自动找到存在的那个文件。9然后在 SessionFactory ID 中输入 Hibernate 的 SessionFactory 在 Spring 配置文件中的 Bean ID的名字
8、,这里我们输入 sessionFactory 即可。然后点击 Next:4. 在出现的对话框中的 Bean Id 里面输入数据源在 Spring 中的 Bean ID 的名字,这里我们输入 dataSource。然后在 DB Driver 里面选择我们刚刚配置好的 ssh,MyEclipse 会将其余的信息自动填写到表格里面。然后点击 Next105. 在出现的对话框中取消 Create SessionFactory class。点击 Finish 即可。六、最后再 Add Struts Capabilities: Struts2.1 1. 选择 Struts 2.x 之后配置窗口会变成下图所
9、示,导入 Struts2.1 的 Jars 不可选入到/WebRoot/WEB-INF/lib 目录下。(以后我们再讲怎自己手动 Add Struts 整合)112. 下一步再根据自己的情况另勾选 Struts 集成的应用包,Finish 一下就好了。第二种: 自己手动添加 Struts 整合:找到自己收录的 Struts 2.x 架包,手动将 Jars Ctrl+C再 Ctrl+V 到/WebRoot/WEB-INF/lib 目录下, 再将主要的 xml 配置文件 struts.xml 拷贝到/src/目录下即可。到这里,我们整个项目的框架就算初步成形了,下面我们可以到 MyEclipse
10、Java Enterprise视图下查看一下整个项目的结构,再进行后续操作。如下图所示:12七、Hibernate Reverse Engineering 反向生成 Pojo 类,自动生成映射关系:1. 再进入到 MyEclipse Database Explorer 视图,全选中所有的表,右击选择 HibernateReverse Engineering操作,如下图所示:132. Java src folder: 选项 Browse到自己新建好的包下面,我这里是放到 Model(或者DTO)层,如下图所示:3. 再选择*.hbm.xml 和 POJO 映射,注意我们不需选择:Create a
11、bstract class,再 Next:144. 下一步再选择 Id Generator 的生成策略,我们选 native,再点 Next>,如下图所示:5. 接下来,默认选项,直接点击 Finish 完成这项操作,如下图所示:156. 最后回到 MyEclipse Java Enterprise 视图,查看是否已成功生成映射文件,如下图所示:到这里我们就将 SSH 整合的所有操作都做好了,接下来就是进行编码工作,修改相应的XML 配置文件,最后到完成项目,发布 web 项目, 启动 web 服务器,运行测试项目。祝君马到成功!*八、添加在 Web.xml 文件里的配置:1. Spri
12、ng 和 Struts 集成的配置,加载 Spring 容器:(Struts.x 的方式: servlet、plug-in):<!- 配置FilterDispatcher过滤器,以便加Spring容器 -><filter><filter-name>FilterDispatcher</filter-name><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class></filter><filter-mapping&g
13、t;<filter-name>FilterDispatcher</filter-name><url-pattern>/*</url-pattern></filter-mapping><!- 配置Spring容器:指定Spring文件的路径,让spring知道事务管理的bean所在-><context-param><param-name>contextConfigLocation</param-name><!- /WEB-INF/applicationContext-*.xml,cl
14、asspath*:applicationContext-*.xml -><param-value>/WEB-INF/applicationContext.xml</param-value></context-param>16<!- 在Struts2感知下,Spring容器的加载 -><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>
15、2. 添加连接池的配置,这里以 Proxool 为例:<!- 添加读连接池配置文件的servlet节点 -><servlet><servlet-name>proxoolServletConfigurator</servlet-name><servlet-class>xool.configuration.ServletConfigurator</servlet-class><init-param><param-name>xmlFile</param-n
16、ame><param-value>/WEB-INF/ProxoolConf.xml</param-value></init-param><!- 由于proxool要先加载,所以启动优先级要比spring高,否则在spring加载时会报错 -> <load-on-startup>0</load-on-startup></servlet>3. 添加事务配置 Hibernate 使用 Session 的关闭与开启由 spring 来管理,针对 Hivernate懒加载;把一个 Hibernate Session
17、 和一次完整的请求过程对应的线程相绑定:<!-配置 OpenSessionInViewFilter或OpenSessionInViewInterceptor -><filter><filter-name>hibernateFilter</filter-name><filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class><!- singleSession默认为true,若设为false则等
18、于没用OpenSessionInView -><init-param><param-name>singleSession</param-name><param-value>true</param-value><init-param></filter><filter-mapping><filter-name>hibernateFilter</filter-name><url-pattern>*.do(/*)</url-pattern></fi
19、lter-mapping>4. 添加字符编码过滤器:<!- Character Encoding 配置 -><filter><filter-name>Spring character encoding filter</filter-name><filter-class>17org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-
20、name><param-value>GBK</param-value></init-param></filter><filter-mapping><filter-name>Spring character encoding filter</filter-name><url-pattern>/*</url-pattern></filter-mapping>5. 引入 DWR 框架,做 Ajax 应用:<!- 引入DWR框架 -><servlet>&
21、lt;servlet-name>DWRServlet</servlet-name><servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class><init-param><param-name>debug</param-name><param-value>true</param-value></init-param><load-on-startup>2</load-on-startup&
22、gt;</servlet><servlet-mapping><servlet-name>DWRServlet</servlet-name><url-pattern>/dwr/*</url-pattern></servlet-mapping>另外附加 2.连接池配置 :DBCP、Proxool、C3P0、JNDI 方式1. 导入连接池 Jar 包:Copy 到/WEB-INF/lib 目录下;修改好连接池的配置文件并将它 Copy 到/WEB-INF/目录下。2. 在 applicationContext.xml
23、 中改 dataSource 节点(后续会讲)。九、添加在 Spring 的 applicationContext.xml 文件里的配置:1. 连接池 dataSource 的配置:<!- 连接池 dataSource的配置 -><bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName"value="org.log
24、xool.ProxoolDriver"></property><property name="url" value="proxool.DBPool"></property></bean><bean id="sessionFactory"18">class="org.springframework.orm.hibernate3.LocalSessionFactoryBean<property name=&q
25、uot;dataSource"><ref bean="dataSource" /></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop><!- Show SQL语句设置 -><prop key="hibernate.s
26、how_sql">true</prop><prop key="hibernate.format_sql">true</prop></props></property><property name="mappingResources"><list><value>com/./DTO/SysUser.hbm.xml</value><value>com/./DTO/SysRole.hbm.xml</value><
27、;value>com/./DTO/SysRight.hbm.xml</value>. .</list></property></bean>2. 添加处理业务逻辑的 Beans,可以是 DAOImpl、_Interceptor、导入 xml 文件等:<!- 处理整个用户业务操作的DAO一个Bean -> <bean id="userDAO" class="com.Java7Group4CRM.DAOImp.SysUserDAOImp"><property name=&quo
28、t;sessionFactory" ref="sessionFactory"></property></bean><!- 处理用户登录的Action -><bean id="loginAction"class="com.*.Actions.LoginAction" scope="prototype"><property name="userDAo" ref="userDAO"></propert
29、y></bean><!- 验证用户权限的全局拦截器 -><bean id="action2ActionInterceptor"class="com.*.interceptor.Action2ActionInterceptor"></bean>3. 配置事务管理.相当于 Spring AOP 面向切面的配置:A. 配置spring提供的事务管理的bean: HibernateTransactionManager对象.<!- spring提供的事务管理的bean -><bean id=&
30、quot;transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory"></property>19</bean>B. 配置spring提供的将事务管理作为切面的作用于目标对象的代理bean:TransactionProxyFactoryBean对象.<!-
31、spring提供的 将事务管理 作为切面 作用于目标对象的代理 bean -><bean id="proxyObj"class="erceptor.TransactionProxyFactoryBean" abstract="true"> <!这是一个抽象类,只供类(target对象)继承 -><property name="transactionManager" ref="transactionMa
32、nager" /><property name="transactionAttributes"><!-下面是配置出管理事务对应的(Dao的)方法 -><props><prop key="up*">PROPAGATION_REQUIRED</prop></props></property></bean>C.现在可以配置target目标对象(Dao).这里与普通的Dao配置不同<bean id="accountDao" p
33、arent="proxyObj"><!这里指明其父类为以上代理bean -><property name="target"><!-下面用匿名bean用作它本身的属性作为目标对象 -><bean class="com.*.daoimp.AccountDaoImp"><property name="sessionFactory" ref="sessionFactory"></property></bean>&l
34、t;/property></bean><!- 导入其他模块的配置文件 -><import resource="applicationContext_basd.xml"/>十、添加在 Struts2.x 中 struts.xml 文件的配置:1. 在主 struts.xml 配置文件里,可以引入其他模块的 struts_*.xml 文件和处理乱码的配置:<!- 导入其他模块的Actions配置文件 -><include file="struts_right.xml"/><!- 处理编码
35、乱码的问题 -><constant name="struts.i18n.encoding" value="gbk"/>2. 模块化的 struts_*.xml 配置文件:添加 Spring 代理:<!- 作国际化用的全局的资源文件的配置 -><!-<constant name="struts.custom.i18n.resources" value="resourceFile"/>-><!-通过url来匹配action是由spring来生成action,须
36、在struts.xml中这里配置一个相当于Spring的代理添加StrutsSpringObjectFactory所在的架包struts2-spring-plugin.jar到”/WEB-INF/lib”下-><constant name="struts.objectFactory"value="org.apache.struts2.spring.StrutsSpringObjectFactory" />20<!- CRM数据字典模块:分模块以<package>标签分开 -> <package name=&
37、quot;CRM_Basd" extends="struts-default"><interceptors><!- 功能模块的拦截器的声明 -><interceptor name="isAction2Action"class="action2ActionInterceptor"/><interceptor name="rightInterceptor" class="rightInterceptor"/><!- 声明一个作局部
38、的权限拦截器椎栈 -><interceptor-stack name="rightStack"><interceptor-ref name="rightInterceptor" /><interceptor-ref name="defaultStack" /></interceptor-stack><!- 作全局拦截器椎栈区分Action跳转到Action -><interceptor-stack name="globalStack">&
39、lt;interceptor-ref name="isAction2Action" /><interceptor-ref name="defaultStack" /></interceptor-stack></interceptors><!- 应用全局的拦截器椎栈 -><default-interceptor-ref name="globalStack" /><global-results><result name="none"&g
40、t;/html/rightError.jsp</result></global-results><!- = 数据字典业务处理的Action /= -><!- 加载数据字典条目BasDict并分页使用的Action -><action name="loadBasDictAction" class="basDictAction"method="loadBasDict"><!- 加入局部权限拦截 -><interceptor-ref name="righ
41、tStack"></interceptor-ref><result name="success">/html/basd/dict.jsp</result><result name="input">/html/basd/dict.jsp</result></action><action name="basDictLinkAction1" class="basDictAction"method="link1Pages
42、"><!- 未加入局部拦截器,全局拦截器将起效 -><result name="success">/html/basd/dict.jsp</result><result name="input">/html/basd/dict.jsp</result></action></package><!- CRM数据字典模块结束,下面可接其他模快的<package> ->21十一、组织编写代码:1. DAO 接口实现层对象的核心代码:/成员化
43、HibernateTemplate对象:private HibernateTemplate hibernateTemplate;/提供注入HibernateTemplate对象的setSessionFactory()方法public void setSessionFactory(SessionFactory sessionFactory) this.hibernateTemplate = new HibernateTemplate(sessionFactory);/用户登录方法public List loginUser(final SysUser user) throws ExceptionL
44、ist loginUser = (List) hibernateTemplate.execute(newHibernateCallback()public Object doInHibernate(Session session)throws HibernateException, SQLException Query q = session.createQuery("from SysUser u where u.usrName=? and u.usrPassword=?");q.setParameter(0, user.getUsrName();q.setParamete
45、r(1, user.getUsrPassword();return q.list(););return loginUser;/*用户登录后:获取TA的角色*/public SysRole getUserRole(SysUser loginUser) throws ExceptionSysRole role = null;String hql = "from SysRole sr where sr.roleId="+loginUser.getSysRole().getRoleId().toString().trim();role = (SysRole)hibernateTem
46、plate.find(hql).get(0);return role;2. Action的核心代码:public class LoginAction extends ActionSupport implements ServletRequestAware /IoC注入一个Request和DAOprivate HttpServletRequest request;private SysUserDAOImp userDAo;public void setServletRequest(HttpServletRequest request) this.request = request;22publi
47、c void setUserDAo(SysUserDAOImp userDAo) this.userDAo = userDAo;private String usrName;private String usrPassword;. ./表单字段public String login() throws Exception System.out.println("usrName: "+usrName);Map session = null;SysUser user = new SysUser();user.setUsrName(usrName);user.setUsrPassw
48、ord(usrPassword);List list = userDAo.loginUser(user);/排除验证完成后未查到符合的数据行时,调用get(0)索引溢出异常if(list.size()!=0)/ 使用作用域对象容器ActionContextSysUser loginUser = (SysUser)list.get(0);session = ActionContext.getContext().getSession();session.put("logId", loginUser.getUsrId();session.put("logName&quo
49、t;, loginUser.getUsrName();/*登录成功以后,再获取用户的角色*/SysRole loginRole = userDAo.getUserRole(loginUser);String roleName = loginRole.getRoleName();session.put("roleName", roleName);/*得到用户登录的角色以后,再获取用户所拥有的权限集合(操作节点集合) * 并将它保存到Session作用域中,以做权限校验*/List rights = userDAo.getUserRight(loginRole);session
50、.put("rightList", rights);System.out.println("logId:" + loginUser.getUsrId();return SUCCESS;elsereturn INPUT;public void validateLogin() /表单验证if(this.usrName=null|"".equals(this.usrName)addFieldError("usrName", "用户名不能为空");23if(usrPassword=null|"".equals(usrPassword)addFieldError("usrPassword", "登录密码不能为空");/作用域对象传值:request.setAttribute("productPageDB", pageDB);request.getSession(false).getAttribute("logId")Map session = ActionContext.getContext().getSession();session.put("logI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025农村离婚协议范本
- 足部皲裂病因介绍
- (分析)白玉开采项目立项申请报告
- (2024)新能源智能装备建设项目可行性研究报告写作模板(一)
- (2024)电子商务新城可行性研究报告申请建议书(一)
- 山东省菏泽市郓城县第一中学2023-2024学年七年级上学期第一次月考生物试题(原卷版)-A4
- 2023-2024学年天津市部分区高三(上)期末语文试卷
- 2023年铍项目融资计划书
- 2023年鞋用乳液胶粘剂项目融资计划书
- 安全培训课件-安全管理
- 方形真空干燥机验证方案
- 肿瘤基础知识示范课件
- 肺炎链球菌介绍及肺炎链球菌肺炎介绍
- 私营企业员工年度绩效评价表
- 医院护理品管圈成果汇报缩短脑卒中静脉溶栓患者DNT完整版本PPT易修改
- 防汛物资台账参考模板范本
- 气道廓清技术及护理课件
- 体育与健康人教六年级全一册篮球基础知识(共15张PPT)
- 乘风破浪PPT模板
- 时间序列分析课程论文
- 银行操作风险讲座-PPT课件
评论
0/150
提交评论