SSH整合 Spring Struts Hibernate三大框架

Struts、Spring、Hibernate整合

声明:本人刚学习SSH框架,如有不足之处,请大家谅解,提出,谢谢

本人所用架包:http://pan.baidu.com/s/1bp1VBx9

第一步:创建项目

第二步:搭建Struts框架

第三步:整合ss

第四步:插入Hibernate框架

第五步:完成SSH整合


[b]1.创建JAVA项目[/b]
用eclipse(开发工具)创建Wwb项目,注意生成web.xml文件。


[b]2.配置web.xml文件[/b]

<?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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>ssh</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>

<!-- 配置spring的监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<!-- application前加‘/’则在src根目录查询,不加则在Web根目录下查询-->
<param-value>classpath:/applicationContext*.xml</param-value>
</context-param>

<!-- 配置Struts2的核心过滤器 -->
<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>


这里注意:<param-value>classpath:/applicationContext*.xml</param-value>里
applicationContext*.xml前面的‘/’代表文件在Java文件中寻找,如果去掉‘/’则默认在Web根目录下寻找!!

[b]3.配置struts.xml[/b]

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
<!--struts.devMode : 是否设置为开发模式 -->
<constant name="struts.devMode" value="true" />

<!-- namespace :对应与项目名称后面的"/" -->
<package name="front" namespace="/" extends="struts-default">
<action name="login" class="loginAction" method="login">
<result name="success">/index.jsp</result>
</action>
</package>
</struts>


[b]4.整合SS[/b]
先创建一个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"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">

<!--将针对注解的处理器配置好 -->
<bean id="loginAction" class="com.mwl.action.LoginAction"/>
</beans>


确认‘bean id’与struts.xml里class的值一致后,再创建LoginAction文件:

package com.mwl.action;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{
public String login() throws Exception {

return SUCCESS;
}


最后创建index.jsp文件,输入内容“Hello word”
运行JAVA文件,如网页显示Hello word,则SS整合框架,搭建成功。

这里注意:String 与Struts整合必须用到struts2-spring-plugin-2.3.4.jar架包,否则无法成功整合。

[b]5.配置hibernate.cfg.xml文件[/b]

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 链接数据库 -->
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/sshTest</property>
<!-- 数据库驱动-->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- 数据库账号密码 -->
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property>
<!-- 根据schema更新数据表的工具 -->
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- 是否显示SQL -->
<property name="hibernate.show_sql">true</property>
<!-- 数据表映射配置文件 -->
<mapping resource="com/mwl/model/Person.hbm.xml"/>
</session-factory>
</hibernate-configuration>


同时创建Person类,配置相应的映射文件Person.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">

<hibernate-mapping package="com.mwl.model">
<class name="Person" table="person">
<id name="id" column="id">
<!-- 自动增加-->
<generator class="increment"></generator>
</id>

<property name="name"/>
<property name="pwd"/>
</class>
</hibernate-mapping>


[b]6.根据项目流程Action-Service-Dao 完善applicationContext.xml:[/b]

<?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"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">

<!--将针对注解的处理器配置好 -->
<bean id="loginAction" class="com.mwl.action.LoginAction">
<property name="loginService" ref="loginService"/>
</bean>
<bean id="loginService" class="com.mwl.service.LoginServiceImpl">
<property name="loginDao" ref="loginDao"/>
</bean>
<bean id="loginDao" class="com.mwl.dao.LoginDaoImpl">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>

<!-- 配置使用基于Hibernate的事务管理器 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation" value="classpath:hibernate.cfg.xml"/>
</bean>

</beans>


7.根据applicationContext.xml的内容,依次创建Class类与其相关接口,内容如下:

package com.mwl.action;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.mwl.service.LoginService;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{
String name;
String pwd;

private LoginService loginService;

public String login() throws Exception {
//接受数据
String notice =loginService.login(name, pwd);
HttpServletRequest request=ServletActionContext.getRequest();
//传输到页面
request.setAttribute("notice", notice);
return SUCCESS;
}

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public LoginService getLoginService() {
return loginService;
}
public void setLoginService(LoginService loginService) {
this.loginService = loginService;
}
}


根据LoginAction类,创建接口LoginService

package com.mwl.service;

import com.mwl.model.Person;

public interface LoginService {
public String login(String username,String password);
}


接着创捷其实现类:

package com.mwl.service;

import com.mwl.dao.LoginDao;
import com.mwl.model.Person;

public class LoginServiceImpl implements LoginService{
private LoginDao loginDao;
@Override
public String login(String username, String password) {
Person p =new Person();
p.setName(username);
p.setPwd(password);
loginDao.save(p);
return "登陆成功";
}
public LoginDao getLoginDao() {
return loginDao;
}
public void setLoginDao(LoginDao loginDao) {
this.loginDao = loginDao;
}
}


根据LoginServiceImpl类,创建接口LoginDao

package com.mwl.dao;

import com.mwl.model.Person;

public interface LoginDao {
public void save(Person p);
}


接着创建LoginDao的实现类LoginDaoImpl

package com.mwl.dao;

import org.hibernate.Session;
import org.hibernate.SessionFactory;

import com.mwl.model.Person;

public class LoginDaoImpl implements LoginDao{
SessionFactory sessionFactory;

@Override
public void save(Person p) {
Session session=sessionFactory.openSession();
session.beginTransaction().begin();

Person a=new Person();
a.setName("222");
a.setPwd("123");

session.save(a);

session.beginTransaction().commit();
}
public SessionFactory getSessionFactory() {
return sessionFactory;
}
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
}


最后创建数据库sshTest,并创建检测类检查代码。
运行Tomcat,输入localhost
如果数据库sshTest里自动生成表格person,并给name,pwd分别赋值222,123则SSH框架整合搭建成功!!!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值