zoukankan      html  css  js  c++  java
  • Struts2.3.4+Hibernate3.6+Spring3.0.5框架整合(新手看看)

    工欲善其事,必先利其器,相关的下载就不多说,数据库是MySql5.1

    新建一个WEB工程,将如下的包导入工程的WEB-INF/lib目录下,

    导入包的说明:struts2.3.4中因为使用c3p0连接数据库所以导入了c3p0.jar,其它的就是struts2.3.4的基本的包的导入,上图中的slf4j-nop-1.6.1.jar导不导入影响不大,然后导入Hibernate的核心包,以及Spring中dist目录下的所有包,去掉重复的包,保留较高的版本,结果如上图所示,如果你想使用struts2,Hibernate以及Spring的更多的功能,请导入相关的包。

    下面是web.xml文件的配置

    web.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
     3   <display-name>SSHFramework</display-name>
     4   
     5   <!-- 加载Spring的配置文件 -->
     6   <context-param>
     7       <param-name>contextConfigLocation</param-name>
     8       <param-value>/WEB-INF/config/applicationContext.xml</param-value>
     9   </context-param>
    10   <!-- 加载spring的监听器 -->
    11   <listener>
    12     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    13   </listener>
    14  
    15   <!-- struts2的配置 -->
    16   <filter>
    17       <filter-name>struts2</filter-name>
    18       <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    19       <init-param>
    20           <param-name>config</param-name>
    21           <param-value>struts-default.xml,struts-plugin.xml,../config/struts.xml</param-value>
    22       </init-param>
    23   </filter>
    24   <filter-mapping>
    25       <filter-name>struts2</filter-name>
    26       <url-pattern>/*</url-pattern>
    27   </filter-mapping>
    28   <welcome-file-list>
    29     <welcome-file>index.jsp</welcome-file>
    30   </welcome-file-list>
    31 </web-app>

    接着是spring的配置文件applicationContext.xml

     1 <?xml version="1.0" encoding="UTF-8"?>   
     2 <beans xmlns="http://www.springframework.org/schema/beans"  
     3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
     4        xsi:schemaLocation="http://www.springframework.org/schema/beans   
     5                           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
     6                         
     7     
     8     <!-- 定义数据源 ,使用c3p0数据源实现-->
     9     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    10         <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
    11         <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"></property>
    12         <property name="user" value="root"></property>
    13         <property name="password" value="123456"></property>
    14     </bean>
    15     <!-- Hibernate sessionFactory创建 -->
    16     <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    17         <property name="dataSource" ref="dataSource"></property>
    18         <!-- Hibernate属性 -->
    19         <property name="hibernateProperties">
    20             <props>
    21                 <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
    22                 <prop key="hibernate.format_sql">true</prop>
    23                 <prop key="hibernate.hbm2ddl.auto">create</prop> 
    24             </props>
    25         </property>
    26         <!-- 映射文件 -->
    27         <property name="mappingResources">
    28             <list>
    29                 <!-- 统一到WEB-INF/config下管理配置文件 -->
    30                 <value>../config/User.hbm.xml</value>
    31             </list>
    32         </property>
    33     </bean>
    34     <bean id="userDao" class="cn.zj.qiao.spring.dao.userimpl.UserDaoImpl" scope="prototype">
    35         <property name="sessionFactory" ref="sessionFactory"></property>
    36     </bean>
    37     <bean id="registerAction" class="cn.zj.qiao.actions.RegisterAction" scope="prototype">
    38         <property name="ud" ref="userDao"></property>
    39     </bean>
    40 </beans>

    Hibernate的映射文件User.hbm.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE hibernate-mapping  PUBLIC
     3                              "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     4                              "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
     5 <hibernate-mapping>
     6     <class name="cn.zj.qiao.entity.vo.User" table="user_table">
     7         <id name="id" column="uid">
     8             <generator class="identity"></generator>
     9         </id>
    10         <property name="uname"></property>
    11         <property name="upass"></property>
    12     </class>
    13 </hibernate-mapping>

    strusts.xml文件

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE struts PUBLIC
     3     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
     4     "http://struts.apache.org/dtds/struts-2.3.dtd">
     5 <struts>
     6     <package name="default" namespace="/" extends="struts-default">
     7         <action name="register" class="registerAction">
     8             <result name="success">/success.jsp</result>
     9             <result name="error">/error.jsp</result>
    10         </action>
    11     </package>
    12 </struts>

    用户注册Action:RegisterAction

     1 package cn.zj.qiao.actions;
     2 
     3 import cn.zj.qiao.entity.vo.User;
     4 import cn.zj.qiao.interfaces.UserDao;
     5 
     6 import com.opensymphony.xwork2.Action;
     7 
     8 
     9 public class RegisterAction implements Action{
    10     private String uname;
    11     private String upass;
    12     private UserDao ud;
    13     
    14     public UserDao getUd(){
    15         return ud;
    16     }
    17 
    18     public void setUd(UserDao ud){
    19         this.ud = ud;
    20     }
    21 
    22     public String getUname() {
    23         return uname;
    24     }
    25 
    26 
    27     public void setUname(String uname) {
    28         this.uname = uname;
    29     }
    30 
    31 
    32     public String getUpass() {
    33         return upass;
    34     }
    35 
    36 
    37     public void setUpass(String upass) {
    38         this.upass = upass;
    39     }
    40 
    41 
    42     @Override
    43     public String execute() throws Exception {
    44         User user = new User();
    45         user.setUname(uname);
    46         user.setUpass(upass);
    47         ud.addUser(user);
    48         return SUCCESS;
    49     }
    50 
    51 }

    用户Bean:User

     1 package cn.zj.qiao.entity.vo;
     2 public class User {
     3     
     4     private Long id;
     5     private String uname;
     6     private String upass;
     7     
     8     public User() {
     9         super();
    10     }
    11     public User(Long id, String uname, String upass) {
    12         super();
    13         this.id = id;
    14         this.uname = uname;
    15         this.upass = upass;
    16     }
    17     public Long getId() {
    18         return id;
    19     }
    20     public void setId(Long id) {
    21         this.id = id;
    22     }
    23     public String getUname() {
    24         return uname;
    25     }
    26     public void setUname(String uname) {
    27         this.uname = uname;
    28     }
    29     public String getUpass() {
    30         return upass;
    31     }
    32     public void setUpass(String upass) {
    33         this.upass = upass;
    34     }
    35     
    36 }

    数据库Dao 接口:UserDao

    package cn.zj.qiao.interfaces;
    
    import cn.zj.qiao.entity.vo.User;
    
    
    public interface UserDao {
        public Long addUser(User user);
    
    }

    Dao的实现类:UserDaoimpl

    package cn.zj.qiao.spring.dao.userimpl;
    
    import org.hibernate.SessionFactory;
    import org.springframework.orm.hibernate3.HibernateTemplate;
    
    import cn.zj.qiao.entity.vo.User;
    import cn.zj.qiao.interfaces.UserDao;
    
    public class UserDaoImpl implements UserDao {
        
        private HibernateTemplate ht = null;
        private SessionFactory sessionFactory;
        
        public void setSessionFactory(SessionFactory sessionFactory){
            this.sessionFactory = sessionFactory;
        }
        public SessionFactory getSessionFactory(){
            return sessionFactory;
        }
        
        public HibernateTemplate getHibernateTemplate(){
            if(ht == null){
                ht = new HibernateTemplate(sessionFactory);
            }
            return ht;
        }
        @Override
        public Long addUser(User user) {
            return (Long)getHibernateTemplate().save(user);
        }
    }

    相关的jsp页面;

    index.jsp:用户注册

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>用户注册</title>
    </head>
    <body>
        <form action="register.action" method="post">
            用户名:<input type="text" name="uname"/>&nbsp;&nbsp;码:<input type="password" name="upass"/>
            <input type="submit" value="注册"/>
        </form>
    </body>
    </html>

    显示结果的页面:success.jsp

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     7 <title>success</title>
     8 </head>
     9 <body>
    10 注册成功
    11 </body>
    12 </html>

    最后说明:包的导入情况没有细说,如果出现异常,可以根据异常信息自己百度神马的酌情加入或者删去一些包,此工程的配置文件除web.xml外,其它均放在WEB-INF/config目录下,此工程只是简单的测试一下框架的整合情况,所以只是前台一个jsp填写信息,然后写入数据库这样简单的逻辑。

    最后希望路过的各位大神,给予宝贵的学习SSH框架的意见及建议。。。

  • 相关阅读:
    Web前端开发
    用javascript向一个网页连接接口发送请求,并接收该接口返回的json串
    如何在tomcat启动的时候运行一个Java类
    Linux永久挂载远程网络目录
    C/C++跨平台的的预编译宏
    利用http实现文件的上传和下载
    基于qml创建最简单的图像处理程序(1)-基于qml创建界面
    基于qml创建最简单的android机图像采集程序
    OpenCV相关网站推荐(Informative websites related to OpenCV)
    (GO_GTD_3)基于OpenCV和QT,建立Android图像处理程序
  • 原文地址:https://www.cnblogs.com/binger/p/2707121.html
Copyright © 2011-2022 走看看