struts2 spring2 hibernate3 整合框架,我自己整合的,为了以后自己用到的时候,方便找到,没有任何意图。
//web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!-- <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/classes/com/ssh/spring/applicationContext-*.xml </param-value> </context-param> --> <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:com/ssh/spring/applicationContext-*.xml </param-value> </context-param> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
//applicationContext-action.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="usersAction" class="com.ssh.login.action.UsersAction" scope="prototype"> <property name="usersService"> <ref bean="usersService" /> </property> </bean> <bean id="listAction" class="com.ssh.login.action.ListAction" scope="prototype"> <property name="usersService"> <ref bean="usersService"></ref> </property> </bean> <bean id="addAction" class="com.ssh.login.action.addAction" scope="prototype"> <property name="usersService"> <ref bean="usersService"></ref> </property> </bean> </beans>
//applicationContext-dao.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="usersDao" class="com.ssh.login.dao.impl.UsersDaoImpl" scope="singleton"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> </beans>
//applicationContext-resource.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <!--配置数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"> </property> <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"></property> <property name="username" value="abin"></property> <property name="password" value="abin"></property> <property name="maxActive" value="100"></property> <property name="maxIdle" value="30"></property> <property name="maxWait" value="500"></property> <property name="defaultAutoCommit" value="true"></property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.OracleDialect </prop> <prop key="show_sql">true</prop> <!-- <prop key="hbm2ddl.auto">update</prop> --> </props> </property> <property name="mappingResources"> <list> <value>com/ssh/login/entity/Users.hbm.xml</value> </list> </property> </bean> </beans>
//applicationContext-service.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="usersService" class="com.ssh.login.service.impl.UsersServiceImpl"> <property name="usersDao"> <ref bean="usersDao" /> </property> </bean> </beans>
//struts.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <!-- <include file="com.ssh.struts.struts-user.xml"></include> <constant name="struts.objectFactory" value="spring" /> <constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" /> <package name="default" extends="struts-default" namespace="/login"> <action name="find" method="find" class="usersAction"> <result name="success" type="redirect">success.jsp</result> <result name="failure" type="redirect">failure.jsp</result> </action> <action name="all" method="findAll" class="listAction" > <result name="success" type="redirect" >list.jsp</result> <result name="failure" type="redirect" >failure.jsp</result> </action> </package> --> <include file="com/ssh/struts/struts-user.xml"></include> <include file="com/ssh/struts/struts-list.xml"></include> <include file="com/ssh/struts/struts-add.xml"></include> <!-- <package name="root" extends="struts-default" namespace="/"> </package> --> </struts>
//struts-add.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" /> <package name="adds" extends="struts-default" namespace="/add"> <action name="add" method="add" class="addAction"> <result name="success" type="redirect">success.jsp</result> </action> </package> </struts>
//struts-list.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" /> <package name="all" extends="struts-default" namespace="/look"> <action name="all" method="findAll" class="listAction" > <result name="success" type="redirect" >list.jsp</result> </action> </package> </struts>
//struts-user.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" /> <package name="default" extends="struts-default" namespace="/login"> <action name="find" method="find" class="usersAction"> <result name="success" type="redirect">success.jsp</result> <result name="failure" type="redirect">failure.jsp</result> </action> </package> </struts>
//addAction.java
package com.ssh.login.action; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; import com.ssh.login.entity.Users; import com.ssh.login.service.UsersService; public class addAction extends ActionSupport{ private UsersService usersService; public String add(){ HttpServletRequest request=ServletActionContext.getRequest(); String username=request.getParameter("username"); String password=request.getParameter("password"); Users users=new Users(); users.setUsername(username); users.setPassword(password); this.usersService.addUsers(users); return "success"; } public UsersService getUsersService() { return usersService; } public void setUsersService(UsersService usersService) { this.usersService = usersService; } }
//ListAction.java
package com.ssh.login.action; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import com.ssh.login.service.UsersService; public class ListAction { private UsersService usersService; public UsersService getUsersService() { return usersService; } public void setUsersService(UsersService usersService) { this.usersService = usersService; } public String findAll(){ HttpServletRequest request=ServletActionContext.getRequest(); request.getSession().setAttribute("list", this.usersService.findAll()); return "success"; } }
//UsersAction.java
package com.ssh.login.action; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import com.ssh.login.entity.Users; import com.ssh.login.service.UsersService; public class UsersAction extends ActionSupport{ /** * */ private static final long serialVersionUID = 1L; private UsersService usersService; private Users users; public String find(){ HttpServletRequest request=ServletActionContext.getRequest(); String username=request.getParameter("username"); String password=request.getParameter("password"); String result=this.usersService.find(username); if(result.equals(password)){ ActionContext actionContext = ActionContext.getContext(); Map session = actionContext.getSession(); session.put("message", "操作成功!!哈哈"); return "success"; }else{ return "failure"; } } public UsersService getUsersService() { return usersService; } public void setUsersService(UsersService usersService) { this.usersService = usersService; } public Users getUsers() { return users; } public void setUsers(Users users) { this.users = users; } }
//UsersDao.java
package com.ssh.login.dao; import java.util.List; import com.ssh.login.entity.Users; public interface UsersDao { public String findByName(String username); public List<Users> findAllObject(); public void addAllUsers(Users users); }
//UsersDaoImpl.java
package com.ssh.login.dao.impl; import java.util.List; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.ssh.login.dao.UsersDao; import com.ssh.login.entity.Users; public class UsersDaoImpl extends HibernateDaoSupport implements UsersDao{ public String findByName(String username){ String hql="from Users users where username='"+username+"'"; String result=null; try{ List<Users> list=this.getHibernateTemplate().find(hql); result=list.get(0).getPassword(); }catch(Exception e){ e.printStackTrace(); } return result; } public List<Users> findAllObject(){ String hql="from Users users order by users.id desc "; List<Users> list=null; try{ list=this.getHibernateTemplate().find(hql); }catch(RuntimeException e){ e.printStackTrace(); } return list; } public void addAllUsers(Users users){ try{ this.getHibernateTemplate().saveOrUpdate(users); }catch(RuntimeException e){ e.printStackTrace(); } } }
//Users.java
package com.ssh.login.entity; public class Users { private int id; private String username; private String password; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
//Users.hbm.xml
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- Mapping file autogenerated by MyEclipse Persistence Tools --> <hibernate-mapping> <class name="com.ssh.login.entity.Users" table="login"> <id name="id" type="java.lang.Integer"> <column name="id" /> <generator class="increment" /> <!-- <generator class="native" /> --> </id> <property name="username" type="java.lang.String"> <column name="username" not-null="true" /> </property> <property name="password"> <column name="password" not-null="true"></column> </property> </class> </hibernate-mapping>
//UsersService.java
package com.ssh.login.service; import java.util.List; import com.ssh.login.entity.Users; public interface UsersService { public String find(String username); //查找所有的东西 public List<Users> findAll(); //增加用户、 public void addUsers(Users users); }
//UsersServiceImpl.java
package com.ssh.login.service.impl; import java.util.List; import com.ssh.login.dao.UsersDao; import com.ssh.login.entity.Users; import com.ssh.login.service.UsersService; public class UsersServiceImpl implements UsersService{ private UsersDao usersDao; public String find(String username){ return this.usersDao.findByName(username); } public List<Users> findAll(){ return this.usersDao.findAllObject(); } public void addUsers(Users users){ this.usersDao.addAllUsers(users); } public UsersDao getUsersDao() { return usersDao; } public void setUsersDao(UsersDao usersDao) { this.usersDao = usersDao; } }
//add/add.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>login jsp</title> </head> <script language="javascript" type="text/javascript"> function isblank(){ var user=document.lname.username.value; var pass=document.lname.password.value; if(user==""){ alert(5555); alert("用户名为空,请您从新输入!!"); document.lname.username.focus(); return false; } if(pass==""){ alert("密码为空"); document.lname.password.focus(); return false; } return true; } </script> <body> <s:form name="lname" action="/add/add.action" method="post" onsubmit="return isblank()"> <s:textfield label="用户名:" name="username" id="userid" tooltip="enter your name"></s:textfield> <s:textfield label="密码:" name="password" id="passid" tooltip="enter your pass"></s:textfield> <s:submit></s:submit> </s:form> <s:a href="../look/all.action">列表</s:a> </body> </html>
//add/failure.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>login jsp</title> </head> </script> <body> 操作失败!!呵呵呵呵 </body> </html>
//add/success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>login jsp</title> </head> <body> 操作成功!!!嘻嘻嘻嘻 </body> </html>
//login/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>login jsp</title> </head> <script language="javascript" type="text/javascript"> function isblank(){ var user=document.lname.username.value; var pass=document.lname.password.value; if(user==""){ alert(5555); alert("用户名为空,请您从新输入!!"); document.lname.username.focus(); return false; } if(pass==""){ alert("密码为空"); document.lname.password.focus(); return false; } return true; } </script> <body> <s:form name="lname" action="/login/find.action" method="post" onsubmit="return isblank()"> <s:textfield label="用户名:" name="username" id="userid" tooltip="enter your name"></s:textfield> <s:textfield label="密码:" name="password" id="passid" tooltip="enter your pass"></s:textfield> <s:submit></s:submit> </s:form> <s:a href="../look/all.action">列表</s:a> <br/> <s:a href="../add/add.jsp">增加</s:a> </body> </html>
//login文件夹下面的成功和失败页面的内容和上面的是相同的
//look/list.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>login jsp</title> </head> <script language="javascript" type="text/javascript"> </script> <body> <table align="center" border="2"> <tr> <th> id </th> <th> username </th> <th> password </th> </tr> <s:iterator value="#session.list" id="userlist"> <tr> <td> <s:property value="id" ></s:property> </td> <td> <s:property value="username"></s:property> </td> <td> <s:property value="password" ></s:property> </td> </tr> </s:iterator> </table> </body> </html>
//以上是全部内容吧
以下是我的ssh结构图:
用到的包如下:
<?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.j2eedt.core.MYECLIPSE_JAVAEE_5_CONTAINER"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/antlr-2.7.6rc1.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/aopalliance.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/asm-2.2.3.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/asm-commons-2.2.3.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/asm-util-2.2.3.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/aspectjrt.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/aspectjweaver.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/c3p0-0.9.1.1.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/cglib-nodep-2.1_3.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-attributes-api.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-attributes-compiler.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-codec.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-collections.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-dbcp.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-fileupload.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-httpclient.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-io.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-lang.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-logging.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-pool.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/cos.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/dom4j-1.6.1.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/ehcache-1.2.4.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/freemarker-2.3.8.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/hibernate-annotations.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/hibernate-commons-annotations.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/hibernate-entitymanager.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/hibernate3.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/ibatis-2.3.0.677.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/itext-1.3.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jakarta-oro-2.0.8.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jasperreports-1.3.3.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jboss-archive-browsing.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jdo2-api.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jotm.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jta.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jxl.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/log4j-1.2.14.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/mysql-connector-java-5.0.4-bin.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/ognl-2.6.11.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/openjpa-0.9.7-incubating.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/persistence.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/poi-2.5.1.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/portlet-api.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/serp-1.12.1.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-agent.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-aop.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-beans.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-context.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-core.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-dao.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-hibernate3.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-ibatis.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-jca.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-jdbc.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-jdo.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-jms.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-jpa.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-portlet.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-struts.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-tomcat-weaver.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-toplink.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-web.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-webmvc.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/struts2-core-2.0.8.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/struts2-spring-plugin-2.0.8.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/toplink-api.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/toplink-essentials.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/velocity-1.5.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/velocity-tools-view-1.3.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xapool.jar"/> <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xwork-2.0.3.jar"/> <classpathentry kind="output" path="WebRoot/WEB-INF/classes"/> </classpath>