myEclipse10.6整合struts2.1+spring3.0+hibernate3.3(很好的文章,图片没上传)


1. 先new一个工程



2. 填写工程名称,如ssh等,选择j2ee  5.0(建议选择5.0,至于区别,大家可以去网上查  询),点击finish,然后选择yes,工程就建完了。






















3. 从这一步开始添加框架了,一般的顺序是struts-spring-hibernate或者是spring-hibernate-struts,这里我们按照struts-spring-hibernate顺序进行添加。
4. 首先添加struts,在工程上点击右键,选择【MyEcplise】,再选择--【Add Struts 。。。】

5. 弹出窗口,选择struts2.1,然后点击next

6. 然后选择需要的jar,至少选择两个如下图,其他的可以根据自己的需要选择,然后点击finish,这样struts2.1的架构就添加完成了。

7. 接下来是添加spring 的架构,在工程上右键,还是【MyEclipse】,然后选择【Add Springle...】选项,



8. 然后建议做如下选择,选择spring3.0,(spring3.1可以支持hibernate4.0,如果想要用hibernate4.0,就选择spring3.1),然后选择jar包,选择下面的copy,点击next

9. 然后点击【Browse】,这样做是改变一下spring配置文件的位置,建议把他放到和web.xml同一个地方。然后点击【ok】,在点击【finish】,spring也添加完成了。














10. 最后是添加hibernate,在添加hibernate之前,要配置一下数据库连接,这里我用的是 mysql5.0,在mysql中选择test库(也可以自己新建,这里为了简单没有新建),然后在他下面新建一张表 ,下面是我的见表语句。(为什么要现配数据库呢,这是为了在添加hibernate的时候,可以自动的在配置文件里加入数据库的连接信息,不用再去手动写,而且手动容易出错)
REATE TABLE `user` (
  `id` int(100) NOT NULL auto_increment,
  `username` varchar(500) NOT NULL,
  `password` varchar(500) NOT NULL,
  PRIMARY KEY  (`id`)
)
11. 然后在myeclipse中选择数据库视图

12. 在【MyEclipse Derby】右键选择【New】














13. Driver template 在下拉列表中选择相应的数据库,Driver name 建议写成数据库名,然后填写相应的数据库连接串、用户名、密码,在下面要添加相应的jar包,然后点击test driver,需要再次输入数据库密码 然后点击ok,如果现实如小图 说明成功(必须测试成功才能继续下一步操作),然后点击save password,然后进行【next】
































14. 然后做如下选择,点击add,会出现所有的数据库,选择你自己的就行,最后点击【finish】,
    数据库就添加完成了。





















15. 在myeclipse里,点击回到java试图

16. 下面就开始正式的添加hibernate了,和添加struts一样,在工程上右键,选择【MyEclipse】,然后是【Add Hibernate】,选择hibernate3.3,选择相应的jar包,然后next


17. 选择spring的配置文件,这样hibernate就交给spring进行管理了。然后点击next



18. 然后做如下选择,然后点击next

19. 在BD driver选择你刚才新建的驱动,然后点击next


20. 然后再做如下选择



21. 点击finish,到此所有的框架都添加完成了。

SSH框架的东西都已经加载完成了,下面我将带领大家进行一个简单的登录操作。
1) 首先切换到hibernate视图

2) 在你自己的新建的表中右键,选择hibernate逆向工程





3) 然后选择你的工程下类的路径,并填写包名,然后做如下选择,最后点击next










4) 然后如下图,选择你的表的主键策略,(可根据实际情况选择),然后点击next

5) 在这一步不用操作直接点击finish




6) 这样,hibernate就会自动生成实体类以及映射文件,以及dao类(里面包含了一些基本的方法)。

7) 下面我们开始正式的写方法,在SSH中,建议大家面向接口编程。
8) 首先要编写dao类的接口,IUserDAO,里面的方法如下
   public List findByUsername(Object username);(如果还用到其他方法,可以直接从dao类拷贝过来即可)
然后让UserDAO实现这个及接口即可。
public class UserDAO extends HibernateDaoSupport implements IUserDAO
9) 然后编写业务层接口,也就是service层的接口,
这个接口是业务层,主要用来判断用户是否登录。
package com.sinosoft.user.service;

import com.sinosoft.user.pojo.User;

public interface IUserService {
    public boolean isLogin(User user);
}
然后是编写实现这个接口的类UserService.java,代码如下


public class UserService implements IUserService {
    private IUserDAO iuserDao;
    public void setIuserDao(IUserDAO iuserDao) {//这个是用spring注入进来的
        this.iuserDao = iuserDao;
    }
    /**
     * 下面的方法是实现接口的方法
     * @param user
     * @return
     */
    public boolean isLogin(User user) {
        List f=iuserDao.findByUsername(user.getUsername());
        if(f==null||f.size()>0)
        {
          User user1=(User)f.get(0);
          if(user1.getUsername().equals(user.getUsername())&&user1.getPassword().equals(user.getPassword()))
                return true;
            else
                return false;
        }else{
            return false;
        }
    }

}
10) 因为在service中要用到dao层的方法,所以要到UserDAO类注入到UserService中,在applicationContext.xml中加入如下代码:
<bean id="userService" class="com.sinosoft.user.service.UserService">
       <property name="iuserDao" ref="UserDAO"/>
    </bean>





11) 下面编写action类代码如下
public class UserAction extends ActionSupport {
    private User user;
    private IUserService iuserService;
    public User getUser() {
        return user;
    }(必须要有的,否则会丢值)
    public void setUser(User user) {
        this.user = user;
    }

    public void setIuserService(IUserService iuserService) {
        this.iuserService = iuserService;
    }
    public String login(){
        boolean flag=iuserService.isLogin(user);
        ActionContext act = ActionContext.getContext();
        Map map = act.getSession();
        if(flag){
            map.put("username", user.getUsername()+"登陆成功!");
            return SUCCESS;
        }
        else{
            map.put("username", user.getUsername()+"用户不存在!");
            return ERROR;
        }
    }
}
然后编写登录页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>登录页面</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>
 
  <body>
    <s:form action="loginAction">
              <s:textfield name="user.username" label="Username"/>
                       <s:password name="user.password" label="Password"/>
           <s:submit value="Submit"/>   
     </s:form>
  </body>
</html>
和提示页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>提示页面
    
    
    </title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>
 
  <body>
   提示页面:.${sessionScope.username} <br>
  </body>
</html>

12) 然后在applicationContext.xml里配置action
<bean id="userAction" class="com.sinosoft.user.action.UserAction">
       <property name="iuserService" ref="userService"/>
    </bean>
然后在Struts.xml中配置action,class属性一定要写在applicationContext.xml里配置action的id。
<package name="/" extends="struts-default">
       <action name="loginAction" class="userAction" method="login">
            <result name="success">index1.jsp</result>
            <result name="error">index1.jsp</result>
      </action>  
</package>

最后还有一步就是在web.xml中原来的*.action一定要改成/*(如果没有使用struts标签就不用修改了)
<url-pattern>/*</url-pattern>
最后要加入如下代码
<listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>


这样我们的例子就做完了,最后发布工程(在这里还有一步很重要,再发不完的工程里,把lib包里的antlr-2.7.2.jar一定要删除),启动工程测试就可以了。

提交后

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值