使用MyEclipse整合SSH模式:登陆范例

开发 后端
本文介绍了使用MyEclipse整合SSH模式的方法,以及SSH模式配合工作的一个范例。ssh(struts、spring、hibernate)模式就是把三个框架合理地结合在一起,以发挥各自在不同位置上的作用。

ssh(struts、spring、hibernate)模式就是把三个框架合理地结合在一起,以发挥各自在不同位置上的作用,而如何把他们整合在一起就是关键。其实把他们整合在一起并不难,但不是任何时候都需要把他们整合来使用,这要看场合,我们应该合理的使用,合适就好。但不管怎么说它都是一种不错的模式,用MyEclipse工具会很方便地把它们整合在一起。下面简单说一下过程:

MyEclipse整合SSH过程概述

1.先加struts包和配置文件。可以手动添加,也可以在myeclipse的myeclipse菜单里面把struts的环境添加上去,后面的spring会用到struts的配置文件。

2.添加spring,可以像添加struts一样把spring的环境添加上去,不过一定要添加spring的web包。可以把spring的配置文件和struts的配置文件一起放在WEN-INF目录下。

3.添加Hibernate,添加Hibernate的时候对待Hibernate的配置文件我们有两种处理方式:一:按往常一样新建一个配置文件,把它放在src目录下(一般情况);二:无需新建配置文件,而是把Hibernate的配置信息加入到spring的配置文件里面,这种方式需要建立一个dataSource数据库连接。进行ssh整合一般使用第二种方式。

4.把三个框架都添加上去之后,就需要把他们联系起来,下面以一个登录的例子说明他们是怎样配合工作的:

MyEclipse整合SSH登陆范例

1)、首先从前台发送一个登录的请求,【如下】:

  1. < body>    
  2. < form action="loginAction.do" method="post">    
  3.       < table border="1">    
  4.     < tr>< td>name:< /td>    
  5.     < td>< input type="text" name="name"/>< /td>< /tr>    
  6.     < tr>< td>password:< /td>    
  7.     < td>< input type="password" name="password"/>< /td>< /tr>    
  8.     < tr>< td colspan="2" align="center">    
  9.          < input type="submit" value="login"/>    
  10.     < input type="reset" value="reset"/>    
  11.     < /td>    
  12.     < /tr>    
  13.       < /table>    
  14. < /form>    
  15. < /body>   

2)、请求被struts截获,转到struts的配置文件寻找相对应的action【如下】,这时发现找到的是一个代理action,这个代理action就会找到用< plug-in>标签注册的spring插件,从而找到spring的配置文件。

  1. < action-mappings>    
  2.     < !-- login action -->    
  3.         < action name="loginActionForm" path="/loginAction"    
  4.             scope="request"    
  5.             type="org.springframework.web.struts.DelegatingActionProxy">    
  6.             < forward name="success" path="/success.jsp">< /forward>    
  7.             < forward name="failed" path="/failed.jsp" redirect="true">< /forward>    
  8.         < /action>    
  9.     < /action-mappings>    
  10.         
  11.     < message-resources    
  12.         parameter="com.yourcompany.struts.ApplicationResources" />    
  13.     < plug-in    
  14.         className="org.springframework.web.struts.ContextLoaderPlugIn">    
  15.         < set-property property="contextConfigLocation"    
  16.             value="/WEB-INF/applicationContext.xml" />    
  17.     < /plug-in>   

3)、在spring的配置文件中寻找跟path属性的名称相同的action,【如下】。在action调用了userService类,userService又调用了userDAO。在userDAO中我们需要做用户的登录验证。

  1. < !-- 依赖注入action -->    
  2.     < bean name="/loginAction" class="com.dc.action.LoginAction">    
  3.         < property name="userService" ref="userService">< /property>    
  4.     < /bean>    
  5.         
  6.     < !-- 依赖注入UserDAO -->    
  7.     < bean id="userDAO" class="com.dc.dao.UserDAOImpl">    
  8.         < property name="sessionFactory" ref="SessionFactory">< /property>    
  9.     < /bean>    
  10.         
  11.     < !-- 依赖注入UserService -->    
  12.     < bean id="userService" class="com.dc.dao.UserServiceImpl">    
  13.         < property name="dao" ref="userDAO">< /property>    
  14.     < /bean> 

前面说过,Hibernate的配置信息是添加在spring的配置文件里的,在上面的userDAO中引用的sessionFactory就需要用到这些信息【如下】。

  1. < !-- 配置连接数据库和事物管理参数 -->    
  2.     < bean id="dataSource"    
  3.         class="org.apache.commons.dbcp.BasicDataSource">    
  4.         < property name="driverClassName"    
  5.             value="com.mysql.jdbc.Driver">    
  6.         < /property>    
  7.         < property name="url"    
  8.             value="jdbc:mysql://127.0.0.1:3306/test">    
  9.         < /property>    
  10.         < property name="username" value="root">< /property>    
  11.         < property name="password" value="root">< /property>    
  12.     < /bean>    
  13.     < bean id="SessionFactory"    
  14.         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">    
  15.         < property name="dataSource">    
  16.             < ref bean="dataSource">< /ref>    
  17.         < /property>    
  18.         < property name="hibernateProperties">    
  19.             < props>    
  20.                 < prop key="hibernate.dialect">    
  21.                     org.hibernate.dialect.MySQLDialect    
  22.                 < /prop>    
  23.                 < prop key="hibernate.show_sql">true< /prop>    
  24.                 < prop key="hibernate.format_sql">true< /prop>    
  25.             < /props>    
  26.         < /property>    
  27.         < property name="mappingResources">    
  28.             < list>    
  29.                 < value>com/dc/pojo/User.hbm.xml< /value>< /list>    
  30.         < /property>    
  31.     < /bean> 

userDAO的验证方法【如下】:在这个类中继承了一个HibernateDaoSupport类,继承后在配置文件中就可以添加一个sessionFactory属性,用于获取HibernateSessionFactory。

  1. public class UserDAOImpl extends HibernateDaoSupport implements UserDAO {    
  2.     public User checkUser(String name, String password) {    
  3.         String sql = "from User u where u.name=? and password=?";    
  4.         List userList = this.getHibernateTemplate().find(sql.toString(),    
  5.                 new Object[]{name, password});    
  6.         return userList.size() == 0 ? null : (User) userList.get(0);    
  7.     }    

4)、找到action后处理用户的登录,【如下】。 userService调用了getUserByParam方法,而在getUserByParam方法中又调用了userDAO的checkUser方法。验证通过后转到成功页面,否则转到失败页面。

  1. //用户登录验证    
  2.     public ActionForward execute(ActionMapping mapping, ActionForm form,    
  3.             HttpServletRequest request, HttpServletResponse response) {    
  4.         LoginActionForm laf = (LoginActionForm) form;    
  5.         String name = laf.getName();    
  6.         String password = laf.getPassword();    
  7.         User user=userService.getUserByParam(name, password);    
  8.         if(user!=null){    
  9.             HttpSession session=request.getSession();    
  10.             session.setAttribute("user", user);    
  11.             return mapping.findForward("success");    
  12.         }    
  13.         return mapping.findForward("failed");    
  14.     } 

这就是一个简单的流程,当然还有一些细节的东西需要我们去摸索。在这过程中,三个框架都发挥了各自的作用,如果在一些比较复杂的应用里面这是很方便的。这种模式使一个系统变得灵活、易于扩展和维护,所以得到了比较广泛的应用。

以上就介绍了MyEclipse整合SSH的流程。本文来自seekereye的博客:《SSH整合》。

【编辑推荐】

  1. MyEclipse构建SSH框架浅析
  2. MyEclipse+Flex+Blzeds入门浅谈
  3. MyEclipse Flex环境配置详解
  4. MyEclipse下CVS应用浅析
  5. MyEclipse CVS配置详解
责任编辑:yangsai 来源: seekereye的博客
相关推荐

2009-06-02 14:09:37

myeclipse smyeclipse开发myeclipse

2009-07-06 18:18:28

远程攻略SecureCRTSSH 

2013-04-09 15:06:23

2015-05-28 15:32:14

Linuxssh

2011-09-09 13:28:01

Ubuntussh

2012-05-08 11:14:27

LinuxOpenSSHSSH

2018-09-20 09:12:16

2020-10-13 06:59:12

CA签名密钥SSH

2009-08-16 20:24:59

linux命令行登陆linux命令行linux命令

2010-07-13 08:30:57

SQL Server

2010-04-14 10:18:39

Linux init

2009-07-15 14:21:03

MyEclipse S

2009-07-14 16:55:32

MyEclipse S

2014-07-31 11:40:08

ssh

2011-07-20 09:27:37

Scala

2010-05-28 19:15:53

2009-08-18 11:03:31

Observer设计模

2011-04-28 10:41:12

simpleframeSimple

2009-12-25 12:58:52

GoogleChrome OS

2009-07-16 15:14:27

WebWork用户登陆
点赞
收藏

51CTO技术栈公众号