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

来源:互联网 发布:2018软件工程硕士在职 编辑:程序博客网 时间:2024/06/05 00:38

开发工具:

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"?><beansxmlns="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方法后插入数据成功:






如果我们要配置使用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>


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; }}



下面对这个action进行访问:

我们先启动服务:


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


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


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

applicationContext.xml



struts.xml 



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



成功访问结果为:



0 0