文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何使用MyEclipse整合SSH模式

2023-06-18 00:27

关注

本篇内容介绍了“如何使用MyEclipse整合SSH模式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

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

MyEclipse整合SSH过程概述

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

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

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

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

MyEclipse整合SSH登陆范例

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

< body>    < form action="loginAction.do" method="post">          < table border="1">        < tr>< td>name:< /td>        < td>< input type="text" name="name"/>< /td>< /tr>        < tr>< td>password:< /td>        < td>< input type="password" name="password"/>< /td>< /tr>        < tr>< td colspan="2" align="center">             < input type="submit" value="login"/>        < input type="reset" value="reset"/>        < /td>        < /tr>          < /table>    < /form>    < /body>

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

< action-mappings>        < !-- login action -->            < action name="loginActionForm" path="/loginAction"                scope="request"                type="org.springframework.web.struts.DelegatingActionProxy">                < forward name="success" path="/success.jsp">< /forward>                < forward name="failed" path="/failed.jsp" redirect="true">< /forward>            < /action>        < /action-mappings>                < message-resources            parameter="com.yourcompany.struts.ApplicationResources" />        < plug-in            className="org.springframework.web.struts.ContextLoaderPlugIn">            < set-property property="contextConfigLocation"                value="/WEB-INF/applicationContext.xml" />        < /plug-in>

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

< !-- 依赖注入action -->        < bean name="/loginAction" class="com.dc.action.LoginAction">            < property name="userService" ref="userService">< /property>        < /bean>                < !-- 依赖注入UserDAO -->        < bean id="userDAO" class="com.dc.dao.UserDAOImpl">            < property name="sessionFactory" ref="SessionFactory">< /property>        < /bean>                < !-- 依赖注入UserService -->        < bean id="userService" class="com.dc.dao.UserServiceImpl">            < property name="dao" ref="userDAO">< /property>        < /bean>

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

< !-- 配置连接数据库和事物管理参数 -->        < bean id="dataSource"            class="org.apache.commons.dbcp.BasicDataSource">            < property name="driverClassName"                value="com.mysql.jdbc.Driver">            < /property>            < property name="url"                value="jdbc:mysql://127.0.0.1:3306/test">            < /property>            < property name="username" value="root">< /property>            < property name="password" value="root">< /property>        < /bean>        < bean id="SessionFactory"            class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">            < property name="dataSource">                < ref bean="dataSource">< /ref>            < /property>            < property name="hibernateProperties">                < props>                    < prop key="hibernate.dialect">                        org.hibernate.dialect.MySQLDialect                    < /prop>                    < prop key="hibernate.show_sql">true< /prop>                    < prop key="hibernate.format_sql">true< /prop>                < /props>            < /property>            < property name="mappingResources">                < list>                    < value>com/dc/pojo/User.hbm.xml< /value>< /list>            < /property>        < /bean>

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

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

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

//用户登录验证        public ActionForward execute(ActionMapping mapping, ActionForm form,                HttpServletRequest request, HttpServletResponse response) {            LoginActionForm laf = (LoginActionForm) form;            String name = laf.getName();            String password = laf.getPassword();            User user=userService.getUserByParam(name, password);            if(user!=null){                HttpSession session=request.getSession();                session.setAttribute("user", user);                return mapping.findForward("success");            }            return mapping.findForward("failed");        }

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

“如何使用MyEclipse整合SSH模式”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯