关闭

Struts2+Spring3+Hibernate3配置全过程

632人阅读 评论(0) 收藏 举报
  最近,使用ssh框架实现了一个简单的用户登录过程,麻雀虽小,五脏俱全。jdk使用的版本是1.6。从头开始说,首先从他们各自的官网上下载sdk开发包,我下的版本是:hibernate-3.5.5、spring-3.1.0.M1、struts-2.2.1.1。如下图所示:

    比较大,里边东西很多,文档、源码、jar包、例子啥都有。我们开发时,只需要几个必需的jar包(总共大约30个左右)。各位如果嫌大不想下载,可以直接下载我的项目,从项目中\WEB-INF\lib目录下拷贝就行了。所需的Jar包如图所示:

下面是各个jar包的来源:

Hibernate:

  • antlr-2.7.6.jar
  • commons-collections-3.1.jar
  • dom4j-1.6.1.jar
  • hibernate3.jar
  • javassist-3.9.0.GA.jar
  • jta-1.1.jar
  • slf4j-api-1.5.8.jar
  • slf4j-nop-1.5.8.jar(这个jar包需要从slf4j框架中找)

 

Spring:

  • commons-dbcp.jar
  • commons-logging-1.0.4.jar
  • commons-pool.jar
  • org.springframework.asm-3.1.0.M1.jar
  • org.springframework.beans-3.1.0.M1.jar
  • org.springframework.context-3.1.0.M1.jar
  • org.springframework.core-3.1.0.M1.jar
  • org.springframework.expression-3.1.0.M1.jar
  • org.springframework.jdbc-3.1.0.M1.jar
  • org.springframework.transaction-3.1.0.M1.jar
  • org.springframework.web-3.1.0.M1.jar

 

Struts:

  • aopalliance-1.0.jar
  • commons-fileupload-1.2.1.jar
  • commons-io-1.3.2.jar
  • commons-logging-1.0.4.jar
  • freemarker-2.3.16.jar
  • javassist-3.7.ga.jar
  • ognl-3.0.jar
  • struts2-core-2.2.1.1.jar
  • struts2-spring-plugin-2.2.1.1.jar
  • xwork-core-2.2.1.1.jar

 

好,下面准备开始。

打开eclipse,新建一个web,项目取名SSH1,结构如下图所示,建立根据如图所示建立相应的包、文件夹、java文件、jsp文件、xml文件,最后将需要的jar文件拷贝到\WEB-INF\lib下。

先说配置文件:

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.      <filter>  
  4.          <filter-name>struts2</filter-name>  
  5.          <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>  
  6.          <init-param>  
  7.               <param-name>config</param-name>  
  8.                   <param-value>struts-default.xml,struts-plugin.xml,../struts-conf/struts.xml  
  9.               </param-value>  
  10.          </init-param>  
  11.      </filter>  
  12.   
  13.      <filter-mapping>  
  14.          <filter-name>struts2</filter-name>  
  15.          <url-pattern>/*</url-pattern>  
  16.      </filter-mapping>  
  17.   
  18.      <context-param>  
  19.          <param-name>contextConfigLocation</param-name>  
  20.          <param-value>/WEB-INF/spring-conf/spring*.xml</param-value>  
  21.      </context-param>  
  22.   
  23.      <listener>  
  24.          <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>      
  25.      </listener>  
  26.   
  27.   <display-name>SSH1</display-name>  
  28.   
  29.   <welcome-file-list>  
  30.     <welcome-file>index.html</welcome-file>  
  31.     <welcome-file>index.htm</welcome-file>  
  32.     <welcome-file>index.jsp</welcome-file>  
  33.     <welcome-file>default.html</welcome-file>  
  34.     <welcome-file>default.htm</welcome-file>  
  35.     <welcome-file>default.jsp</welcome-file>  
  36.     <welcome-file>login.jsp</welcome-file>  
  37.   </welcome-file-list>  
  38. </web-app>  

struts.xml


  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE struts PUBLIC  
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
  4.     "http://struts.apache.org/dtds/struts-2.0.dtd">  
  5. <struts>  
  6.     <!-- Add packages here -->  
  7.     <!-- <include file="struts-default.xml"/> -->  
  8.     <package name="struts2" namespace="/" extends="struts-default">  
  9.         <action name="login" class="loginAction">  
  10.             <result name="success">/jsp/success.jsp</result>  
  11.             <result name="failure">/jsp/failure.jsp</result>  
  12.         </action>  
  13.     </package>  
  14. </struts>   


spring-core.xml


  1. <?xml version="1.0" encoding="UTF-8"?>   
  2. <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  3.     xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"  
  4.     xsi:schemaLocation="  
  5.           http://www.springframework.org/schema/beans  
  6.           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
  7.           http://www.springframework.org/schema/aop  
  8.           http://www.springframework.org/schema/aop/spring-aop-2.0.xsd  
  9.           http://www.springframework.org/schema/tx  
  10.           http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">  
  11.      <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
  12.          <property name="configLocation">  
  13.               <value>classpath:hibernate.cfg.xml</value>  
  14.          </property>  
  15.      </bean>  
  16.   
  17.      <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">  
  18.          <property name="sessionFactory">  
  19.               <ref bean="sessionFactory"/>  
  20.          </property>  
  21.      </bean>  
  22.   
  23.      <tx:annotation-driven transaction-manager="transactionManager" />  
  24. </beans>  

 

spring-conf.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-3.0.xsd">    
  6.      <bean id="loginAction" class="com.zzb.action.LoginAction" scope="prototype">  
  7.          <property name="baseService" ref="baseService" />  
  8.      </bean>  
  9.      <bean id="baseService" class="com.zzb.service.BaseServiceImpl" >  
  10.          <property name="baseDao" ref="baseDAO" />  
  11.      </bean>  
  12.      <bean id="baseDAO" class="com.zzb.dao.BaseDAOImpl" scope="prototype">  
  13.          <property name="sessionFactory" ref="sessionFactory" />  
  14.      </bean>  
  15. </beans>  

Hibernate.cfg.xml


  1. <?xml version='1.0' encoding='utf-8'?>  
  2. <!DOCTYPE hibernate-configuration PUBLIC  
  3.         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
  4.         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">  
  5. <hibernate-configuration>  
  6.     <session-factory>  
  7.         <!-- Database connection settings -->  
  8.         <property name="connection.driver_class">com.mysql.jdbc.Driver</property>  
  9.         <property name="connection.url">jdbc:mysql://localhost:3306/hibernate2</property>  
  10.         <property name="connection.username">root</property>  
  11.         <property name="connection.password">123</property>  
  12.         <!-- JDBC connection pool (use the built-in) -->  
  13.         <property name="connection.pool_size">2</property>  
  14.         <!-- SQL dialect -->  
  15.         <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>  
  16.         <!-- Enable Hibernate's current session context -->  
  17.         <property name="current_session_context_class">org.hibernate.context.ManagedSessionContext</property>  
  18.         <!-- Disable the second-level cache  -->  
  19.         <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>  
  20.         <!-- Echo all executed SQL to stdout -->  
  21.         <property name="show_sql">true</property>  
  22.         <!-- Drop and re-create the database schema on startup -->  
  23.         <property name="hbm2ddl.auto">update</property>  
  24.         <mapping resource="com/zzb/vo/User.hbm.xml"/>  
  25.     </session-factory>  
  26. </hibernate-configuration>  

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://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
  5. <hibernate-mapping package="com.zzb.vo">  
  6.     <class name="User" table="user">  
  7.         <id name="id">  
  8.             <generator class="native"/>  
  9.         </id>  
  10.         <property name="name" column="name"/>  
  11.         <property name="date" column="date"/>  
  12.     </class>  
  13. </hibernate-mapping>  

然后是JSP文件

login.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. <%@taglib prefix="s" uri="/struts-tags"%>  
  5. <html>  
  6. <head>  
  7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  8. <title>Insert title here</title>  
  9. </head>  
  10. <body>  
  11. <s:form action="login.action" namespace="">  
  12.     <s:textfield key="username"/>  
  13.     <s:password key="password" />  
  14.     <s:submit/>  
  15. </s:form>  
  16. </body>  
  17. </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>Insert title here</title>  
  8. </head>  
  9. <body>  
  10. success成功</br>  
  11. username:${requestScope.username}</br>  
  12. password:${requestScope.password}</br>  
  13. </body>  
  14. </html>  

failure.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>Insert title here</title>  
  8. </head>  
  9. <body>  
  10. failure失败</br>  
  11. username:${requestScope.username}</br>  
  12. password:${requestScope.password}</br>  
  13. </body>  
  14. </html>  

最后是java源文件

LoginAction.java


  1. package com.zzb.action;  
  2. import com.zzb.service.BaseService;  
  3. import com.opensymphony.xwork2.ActionSupport;  
  4. import com.zzb.vo.User;  
  5.   
  6. public class LoginActionextends ActionSupport {  
  7.      private String username;  
  8.      private String password;  
  9.      private BaseService baseService;  
  10.   
  11.      public String execute(){  
  12.          System.out.println(username);  
  13.          System.out.println(password);  
  14.          User user =new User();  
  15.          user.setId(2);  
  16.   
  17.          user = (User) baseService.getVOById(user);  
  18.          System.out.println(">>>>>>>>>>>>>>>>>>"+user.getName());  
  19.          System.out.println(">>>>>>>>>>>>>>>>>>"+user.getDate());  
  20.          String result = "success";  
  21.         return result;  
  22.      }  
  23.   
  24.      public String getUsername() {  
  25.         return username;  
  26.      }  
  27.   
  28.      public void setUsername(String username) {  
  29.         this.username = username;  
  30.      }  
  31.   
  32.      public String getPassword() {  
  33.         return password;  
  34.      }  
  35.   
  36.      public void setPassword(String password) {  
  37.         this.password = password;  
  38.      }  
  39.   
  40.      public BaseService getBaseService() {  
  41.         return baseService;  
  42.      }  
  43.   
  44.      public void setBaseService(BaseService baseService) {  
  45.         this.baseService = baseService;  
  46.      }  
  47. }  

BaseDAO.java


  1. package com.zzb.dao;  
  2.   
  3. import java.util.List;  
  4. import com.zzb.vo.BaseVO;  
  5.   
  6. public interface BaseDAO {  
  7.      public BaseVO addVO(BaseVO vo);  
  8.      public boolean deleteVOById(BaseVO vo);  
  9.      public void updateVO(BaseVO vo);  
  10.      public BaseVO getVOById(BaseVO id);  
  11.      public List<BaseVO> queryVO(BaseVO obj);  
  12.      public List<BaseVO> queryVOBySQL(String sql);  
  13.      public List<BaseVO> queryAll();  
  14. }   

 
BaseDAOImpl.java


  1. package com.zzb.dao;  
  2.   
  3. import java.util.List;  
  4. import org.hibernate.SessionFactory;  
  5. import com.zzb.vo.BaseVO;  
  6.   
  7. public class BaseDAOImplimplements BaseDAO {  
  8.      private SessionFactory sessionFactory;  
  9.   
  10.      public BaseVO addVO(BaseVO vo) {  
  11.         return null;  
  12.      }  
  13.   
  14.      public boolean deleteVOById(BaseVO vo) {  
  15.         return false;  
  16.      }  
  17.   
  18.      public BaseVO getVOById(BaseVO vo) {  
  19.         assert(vo.getId()!=null);  
  20.          BaseVO result = (BaseVO)sessionFactory.openSession().load(vo.getClass(), vo.getId());  
  21.         return result;  
  22.      }  
  23.   
  24.      public List<BaseVO> queryAll() {  
  25.         return null;  
  26.      }  
  27.   
  28.      public List<BaseVO> queryVO(BaseVO vo) {  
  29.         return null;  
  30.      }  
  31.   
  32.      public List<BaseVO> queryVOBySQL(String sql) {  
  33.         return null;  
  34.      }  
  35.   
  36.      public void updateVO(BaseVO vo) {   
  37.   
  38.      }  
  39.   
  40.      public SessionFactory getSessionFactory() {  
  41.         return sessionFactory;  
  42.      }  
  43.   
  44.      public void setSessionFactory(SessionFactory sessionFactory) {  
  45.         this.sessionFactory = sessionFactory;  
  46.      }  
  47. }  

BaseService.java


  1. package com.zzb.service;  
  2.   
  3. import java.util.List;  
  4. import com.zzb.vo.BaseVO;  
  5.   
  6. public interface BaseService {  
  7.      public BaseVO addVO(BaseVO vo);  
  8.      public boolean deleteVOById(BaseVO vo);  
  9.      public void updateVO(BaseVO vo);  
  10.      public BaseVO getVOById(BaseVO user);  
  11.      public List<BaseVO> queryVO(BaseVO obj);  
  12.      public List<BaseVO> queryVOBySQL(String sql);  
  13.      public List<BaseVO> queryAll();  
  14. }  

BaseServiceImpl.java


  1. package com.zzb.service;  
  2.   
  3. import java.util.List;  
  4. import com.zzb.dao.BaseDAO;  
  5. import com.zzb.vo.BaseVO;  
  6.   
  7. public class BaseServiceImplimplements BaseService {  
  8.      BaseDAO baseDao;  
  9.   
  10.      public BaseVO addVO(BaseVO vo) {  
  11.         return null;  
  12.      }  
  13.   
  14.      public boolean deleteVOById(BaseVO vo) {  
  15.         return false;  
  16.      }  
  17.   
  18.      public BaseVO getVOById(BaseVO BaseVO) {  
  19.         return (BaseVO)baseDao.getVOById(BaseVO);  
  20.      }  
  21.   
  22.       public List<BaseVO> queryAll() {  
  23.        return null;  
  24.      }  
  25.   
  26.      public List<BaseVO> queryVO(BaseVO obj) {  
  27.         return null;  
  28.      }  
  29.   
  30.      public List<BaseVO> queryVOBySQL(String sql) {  
  31.         return null;  
  32.      }  
  33.   
  34.      public void updateVO(BaseVO vo) {   
  35.   
  36.      }  
  37.   
  38.      public BaseDAO getBaseDao() {  
  39.         return baseDao;  
  40.      }  
  41.   
  42.      public void setBaseDao(BaseDAO baseDao) {  
  43.         this.baseDao = baseDao;  
  44.      }  
  45. }  

BaseVO.java


  1. package com.zzb.vo;  
  2.   
  3. import java.io.Serializable;   
  4.   
  5. public class BaseVOimplements Serializable {  
  6.      private Integer id;  
  7.   
  8.      public Integer getId() {  
  9.         return id;  
  10.      }  
  11.   
  12.      public void setId(Integer id) {  
  13.         this.id = id;  
  14.      }  
  15. }  

User.java


  1. package com.zzb.vo;  
  2.   
  3. import java.util.Date;  
  4.   
  5. public class Userextends BaseVO{  
  6.      private String name;  
  7.      private Date date;  
  8.   
  9.      public String getName() {  
  10.         return name;  
  11.      }  
  12.   
  13.      public void setName(String name) {  
  14.         this.name = name;  
  15.      }  
  16.   
  17.      public Date getDate() {  
  18.         return date;  
  19.      }  
  20.   
  21.      public void setDate(Date date) {  
  22.         this.date = date;  
  23.      }  
  24. }  

 以上就是全部代码,虽然有些简单,很多类方法都没有写,但已经包含了了ssh框架全部的配置过程。

代码都完成了,然后就可以部署了,我使用的服务器是tomcat6.0,数据库是mysql5.0。部署时不要忘了将数据库的驱动mysql-connector-java-5.0.3-bin.jar考到tomcat目录lib下。部署完成后,启动,访问http://127.0.0.1:8080/SSH1,如果出来成功页面,就成功了。好,就这么多。各位如果有什么问题可以问我。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:89696次
    • 积分:1024
    • 等级:
    • 排名:千里之外
    • 原创:7篇
    • 转载:37篇
    • 译文:0篇
    • 评论:15条
    最新评论