java实战(九)--------ssh框架搭建的完整例子

开发工具:

MyEclipse 10

框架版本:

struts2、spring3.1、hibernate3.2


ssh框架搭建用到的包完整版.zip

ssh框架例子


首先我们需要一个hibernate会使用到的数据库表

创建数据库test  创建数据库表user(我使用的是MySQL数据库)

Create user(

userid number(9) primary key,

username varchar2(20) not null,

password varchar2(20) not null

);

user如下:

java实战(九)--------ssh框架搭建的完整例子_第1张图片


打开MyEclipse新建一个web project如图:

java实战(九)--------ssh框架搭建的完整例子_第2张图片

java实战(九)--------ssh框架搭建的完整例子_第3张图片


然后开始添加spring支持如图:

java实战(九)--------ssh框架搭建的完整例子_第4张图片


java实战(九)--------ssh框架搭建的完整例子_第5张图片


java实战(九)--------ssh框架搭建的完整例子_第6张图片


这里的包默认就可以,因为到最后这些包我都会将之删除,因为jar包冲突所以我将不会使用MyEclipse里自带的包,这里我只要后边这个文件 如图:点next

将applicationContext.xml放在项目WebRoot/WEB-INF文件夹下,点finish


我们得到的结构如下:

java实战(九)--------ssh框架搭建的完整例子_第7张图片


然后我们将把自带的spring包删除

java实战(九)--------ssh框架搭建的完整例子_第8张图片


删除后,导入自己的包

java实战(九)--------ssh框架搭建的完整例子_第9张图片

java实战(九)--------ssh框架搭建的完整例子_第10张图片

java实战(九)--------ssh框架搭建的完整例子_第11张图片


java实战(九)--------ssh框架搭建的完整例子_第12张图片

选择你要导入的spring的jar包,放在test/WebRoot/WEB-INF/lib/spring2.5.5目录下,这样就很方便我们查看自己导入的包,点finish

我们得到的结构如图:

java实战(九)--------ssh框架搭建的完整例子_第13张图片



接着我们用同样的方法把一些会用到的基本包导入:

java实战(九)--------ssh框架搭建的完整例子_第14张图片


下一步就要用到我们建立的数据库了,点击MyEclipse右上角的按钮 如图:

java实战(九)--------ssh框架搭建的完整例子_第15张图片


左边界面会显示如下:

java实战(九)--------ssh框架搭建的完整例子_第16张图片


在空白处点右键NEW,新建一个连接

java实战(九)--------ssh框架搭建的完整例子_第17张图片


选择好自己的数据库 填好地址、用户名和密码,点finish




接着导入hibernate 如图:

java实战(九)--------ssh框架搭建的完整例子_第18张图片

同添加spring支持一样,我还是会将自带的包删除,引入我们自己的包

java实战(九)--------ssh框架搭建的完整例子_第19张图片


选择 spring congfiguration file,交给spring管理,点next

java实战(九)--------ssh框架搭建的完整例子_第20张图片


选择 existing spring congfiguration file,点next

java实战(九)--------ssh框架搭建的完整例子_第21张图片

选择我们之前建立的数据名zoe,点next

java实战(九)--------ssh框架搭建的完整例子_第22张图片


java实战(九)--------ssh框架搭建的完整例子_第23张图片

这里勾掉创建session工厂,点finish


刚才加进来的hibernate包去掉,同去掉Spring的一样。然后引入我们自己的包

java实战(九)--------ssh框架搭建的完整例子_第24张图片


接下来,就该导入struts了,同上

java实战(九)--------ssh框架搭建的完整例子_第25张图片


选择struts2.1 和  /*

java实战(九)--------ssh框架搭建的完整例子_第26张图片


替换包

java实战(九)--------ssh框架搭建的完整例子_第27张图片



这里我把项目名称改成 ssh



自动打开applicationContext.xml,可能会报错,不要紧,我们还有包没加进来。如果前面已经把基本的包都引入了就不会报下面的错。

java实战(九)--------ssh框架搭建的完整例子_第28张图片

java实战(九)--------ssh框架搭建的完整例子_第29张图片

java实战(九)--------ssh框架搭建的完整例子_第30张图片




如果全部的包已经引用完整,那么我们的ssh就算是初步完成了。


我们还要做的是自动生成hibernate的类以及进行一些相应的配置:

在DB browser视图下找到我们的表user建立映射

java实战(九)--------ssh框架搭建的完整例子_第31张图片



选择好要创建Users.java和UserDAO.java以及User.hbm.xml的包,按下图选择

java实战(九)--------ssh框架搭建的完整例子_第32张图片


点next。Id Generator选择native


java实战(九)--------ssh框架搭建的完整例子_第33张图片


点finish。返回MyEclipse编辑环境

可以看到程序已经自动生成了

User.java和UserDao.java

java实战(九)--------ssh框架搭建的完整例子_第34张图片




applicationConText.xml中也已经出现了相应的配置   WebRoot/WEB-INF/applicationContext.xml

applicationContext.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"
	xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">


	<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="12345"></property>
		
	</bean>
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.MySQLDialect
				</prop>
			</props>
		</property>	
		<property name="mappingResources">   
   <list>   
    <value>com/test/model/User.hbm.xml</value>     
   </list>   
 </property>  
		
		
	</bean>
	<bean id="UserDAO" class="com.test.model.UserDAO">
		<property name="sessionFactory">
			<ref bean="sessionFactory" />
		</property>
	</bean>
		
	
	<bean id="look" class="com.test.model.UserWebAction">	
	 <property name="userDAO" ref="UserDAO"></property>
	</bean>
	
	</beans>



我们可以写一个UserAction测试一下hibernate是否可以使用了

UserAction.java如下:

package com.test.model;

import java.util.List;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

public class UserAction {

	
	
	public static void main(String[] args) {
		try {
			ApplicationContext ctx = new FileSystemXmlApplicationContext(  
	                "WebRoot/WEB-INF/applicationContext.xml");  
			UserDAO userDAO = (UserDAO) ctx.getBean("UserDAO");
			User u=new User();				
			u.setUsername("zoe");
			u.setPassword("123456");
			userDAO.save(u);
			List a=userDAO.findByPassword("123456");
			for(Object i:a){
				System.out.println(i);
			}
			System.out.println("save ok");
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}
		
	}
}

运行main方法后插入数据成功:

java实战(九)--------ssh框架搭建的完整例子_第35张图片

java实战(九)--------ssh框架搭建的完整例子_第36张图片




如果我们要配置使用web和struts,操作如下:

首先要把

applicationContext.xml 和自动生成的struts-config.xml 放src的路径下并把struts-config.xml重命名为struts.xml,然后web.xml的配置如下:

java实战(九)--------ssh框架搭建的完整例子_第37张图片

java实战(九)--------ssh框架搭建的完整例子_第38张图片


web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp" 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_3_0.xsd" version="3.0">
  <display-name /> 
  <!-- 配置Spring -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath://*.xml</param-value>
	</context-param>	
	<listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>  
      <!-- 配置Spring的过滤器,解决乱码问题 -->
  <filter>
   <filter-name>encoding</filter-name>
   <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
   <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
   </init-param>
  </filter>
  <filter-mapping>
   <filter-name>encoding</filter-name>
   <url-pattern>/*</url-pattern>
  </filter-mapping>
  <welcome-file-list>
    <welcome-file>reg.jsp</welcome-file>
  </welcome-file-list>
    
<!--     配置struts -->
   	 <filter>  
  <filter-name>struts2</filter-name>
  	<filter-class>
  		org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  	</filter-class> 
           </filter> 
    <filter-mapping>    
  <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping> 
</web-app>


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>
	<package name="default" extends="struts-default">
		<action name="reg" class="reg">
			<result name="success">/regSuc.jsp</result>
			<result name="error">/regFail.jsp</result>
		</action>
	</package>


	<package name="user" extends="json-default" namespace="/user">
		<action name="look" class="look">
			<result type="json"></result>
		</action>
	</package>


</struts>


我们写一个UserWebAction来测试

UserWebAction.java

package com.test.model;

import java.util.List;

import com.opensymphony.xwork2.ActionSupport;





public class UserWebAction extends ActionSupport { 
	
	public UserDAO userDAO;
	public void setUserDAO(UserDAO userDAO) {
		this.userDAO = userDAO;
	}

	/**
	 * 
	 */
	private static final long serialVersionUID = 108680010390926041L;

	public String execute() {
		User u=new User();				
		u.setUsername("joe");
		u.setPassword("2014-6-24");
		userDAO.save(u);
		List a=userDAO.findByPassword("2014-6-24");
		for(Object i:a){
			System.out.println(i);
		}
		System.out.println("save ok");
		
		return null; 
		}

}

java实战(九)--------ssh框架搭建的完整例子_第39张图片

下面对这个action进行访问:

我们先启动服务:

java实战(九)--------ssh框架搭建的完整例子_第40张图片

如果没有配置tomcat 详见 :myeclipse添加Tomcat7服务器


我们先访问项目首页如下:

java实战(九)--------ssh框架搭建的完整例子_第41张图片

我们根据applicationContext.xml和struts-config.xml 中配置的路径和对应的action来访问:

applicationContext.xml



struts.xml 

java实战(九)--------ssh框架搭建的完整例子_第42张图片


那么我们访问的路径如下:

java实战(九)--------ssh框架搭建的完整例子_第43张图片


成功访问结果为:

java实战(九)--------ssh框架搭建的完整例子_第44张图片


你可能感兴趣的:(spring,框架,Hibernate,struts,ssh)