开发工具:
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如下:
打开MyEclipse新建一个web project如图:
然后开始添加spring支持如图:
这里的包默认就可以,因为到最后这些包我都会将之删除,因为jar包冲突所以我将不会使用MyEclipse里自带的包,这里我只要后边这个文件 如图:点next
将applicationContext.xml放在项目WebRoot/WEB-INF文件夹下,点finish
我们得到的结构如下:
然后我们将把自带的spring包删除
删除后,导入自己的包
选择你要导入的spring的jar包,放在test/WebRoot/WEB-INF/lib/spring2.5.5目录下,这样就很方便我们查看自己导入的包,点finish
我们得到的结构如图:
接着我们用同样的方法把一些会用到的基本包导入:
下一步就要用到我们建立的数据库了,点击MyEclipse右上角的按钮 如图:
左边界面会显示如下:
在空白处点右键NEW,新建一个连接
选择好自己的数据库 填好地址、用户名和密码,点finish
接着导入hibernate 如图:
同添加spring支持一样,我还是会将自带的包删除,引入我们自己的包
选择 spring congfiguration file,交给spring管理,点next
选择 existing spring congfiguration file,点next
选择我们之前建立的数据名zoe,点next
这里勾掉创建session工厂,点finish
刚才加进来的hibernate包去掉,同去掉Spring的一样。然后引入我们自己的包
接下来,就该导入struts了,同上
选择struts2.1 和 /*
替换包
这里我把项目名称改成 ssh
自动打开applicationContext.xml,可能会报错,不要紧,我们还有包没加进来。如果前面已经把基本的包都引入了就不会报下面的错。
如果全部的包已经引用完整,那么我们的ssh就算是初步完成了。
我们还要做的是自动生成hibernate的类以及进行一些相应的配置:
在DB browser视图下找到我们的表user建立映射
选择好要创建Users.java和UserDAO.java以及User.hbm.xml的包,按下图选择
点next。Id Generator选择native
点finish。返回MyEclipse编辑环境
可以看到程序已经自动生成了
User.java和UserDao.java
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()); } } }
如果我们要配置使用web和struts,操作如下:
首先要把
applicationContext.xml 和自动生成的struts-config.xml 放src的路径下并把struts-config.xml重命名为struts.xml,然后web.xml的配置如下:
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>
<?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.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; } }
下面对这个action进行访问:
我们先启动服务:
如果没有配置tomcat 详见 :myeclipse添加Tomcat7服务器
我们先访问项目首页如下:
我们根据applicationContext.xml和struts-config.xml 中配置的路径和对应的action来访问:
applicationContext.xml
struts.xml
那么我们访问的路径如下:
成功访问结果为: