??xml version="1.0" encoding="utf-8" standalone="yes"?>
打开JBZ个工E然后〉徏站点〉徏AcionForm , Acion , JSPq样把Struts框架搭徏出来了!
然后是把Hibernate的Jar 和Spring 的Jar D工程当中建好的Struts框架如图:然后开始编写一个接口UserDAO.java
package SpringPack;
public interface UserDAO {
public abstract boolean isValidUser(String name,String password);
}
~写一个类l承该接口UserDAOImp.java
package SpringPack;
import org.springframework.orm.hibernate.support.*;
import net.sf.hibernate.SessionFactory;
import java.util.List;
import Hibernate.hibernateTest;
import net.sf.hibernate.*;
public class UserDAOImp extends HibernateDaoSupport implements UserDAO{
public boolean isValidUser(String name,String pwd){
hibernateTest t = null;
try {
t = new hibernateTest();
}
catch (HibernateException ex) {
ex.printStackTrace();
}
if(t.checkUser(name,pwd)) return true;
return false;
}
}
然后~写一个Bean用来映射数据表的字段
package Hibernate;
public class user {
private String username;
private String password;
public user() {
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
}
~写hibernate.cfg.xml文g用于q接数据库的配置文gQ?br /><?xml version='1.0' encoding='big5'?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd
">
<hibernate-configuration>
<session-factory>
<property name="show_sql">true</property>
<property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/myDB</property>
<property name="connection.username">root</property>
<property name="connection.password">test</property>
<mapping resource="user.hbm.xml"/>
</session-factory>
</hibernate-configuration>
然后下面~写一个描q数据库映射表字D信息的mapping文gUser.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd
">
<hibernate-mapping>
<class name="Hibernate.user" table="user">
<id name="username" type="string" unsaved-value="null">
<column name="username" sql-type="varchar(20)" />
<generator class="uuid.hex"/>
</id>
<property name="password" type="string" column="password"/>
</class>
</hibernate-mapping>
好了现在Hibernate已基本搭建出来了Q下一步我们要用Spring来整合Hibernate 和Struts 操作步骤很简单编写一个applicationContext.xml文g攑֜站点的根目录卛_:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd
">
<beans>
<bean name="/loginAction"
class="StrutsPack.LoginAction"
singleton="false">
</bean>
</beans>
要整合Strutsq要在Struts-config.xml文g中做一些修改如?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd
">
<struts-config>
<form-beans>
<form-bean name="loginActionForm" type="StrutsPack.LoginActionForm" />
</form-beans>
<action-mappings>
<action name="loginActionForm" path="/loginAction" scope="session" type="org.springframework.web.struts.DelegatingActionProxy" validate="false">
<forward name="Success" path="/success.jsp" />
<forward name="Failure" path="/Failure.jsp" />
</action>
</action-mappings>
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
</plug-in>
</struts-config>
好了现在q要~写一个Hibernate的辅助文件如?
package Hibernate;
import net.sf.hibernate.*;
import net.sf.hibernate.cfg.*;
import java.util.List;
import java.util.ListIterator;
public class hibernateTest {
Session session;
public hibernateTest()
throws HibernateException{
SessionFactory factory=new Configuration().configure().buildSessionFactory();
session=factory.openSession();
}
public boolean checkUser(String name,String pwd){
List count = null;
try {
Query q = session.createQuery(
"select count(*) from user where username=? and password=?");
q.setString(1, name);
q.setString(2, pwd);
count = q.list();
}
catch (HibernateException ex) {
ex.printStackTrace();
}
ListIterator list=count.listIterator();
Integer s=(Integer)list.next();
if(s.intValue() > 0 ) return true;
return false;
}
}
然后可以在LoginAction.java中调用了LoginAction.java文g如下:
package StrutsPack;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.Action;
import SpringPack.*;
public class LoginAction
extends Action {
private static final String SUCCESS="Success";
private static final String FAILURE="Failure";
private UserDAO userdao=new UserDAOImp();
public ActionForward execute(ActionMapping mapping,
ActionForm actionForm,
HttpServletRequest servletRequest,
HttpServletResponse servletResponse) {
LoginActionForm loginform = (LoginActionForm) actionForm;
if(userdao.isValidUser(loginform.getUsername(),loginform.getPassword())){
return mapping.findForward(SUCCESS);
}
return mapping.findForward(FAILURE);
}
public UserDAO getUserDAO() {
return userdao;
}
public void setUserDAO(UserDAO userDAO) {
this.userdao = userDAO;
}
}
xJB开发一个简单的SSHq束了感觉是两个字麻烦!q是使用Eclispe开发方?下面是具体的path:
Spring 框架
Spring 框架是一个分层架构,?7 个定义良好的模块l成。Spring 模块构徏在核心容器之上,核心容器定义了创建、配|和理 bean 的方式,如图 1 所C?br />
l成 Spring 框架的每个模块(或组Ӟ都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下Q?
?核心容器Q核心容器提?Spring 框架的基本功能。核心容器的主要lg?BeanFactoryQ它是工厂模式的实现。BeanFactory 使用控制反{ QIOCQ?模式应用程序的配置和依赖性规范与实际的应用程序代码分开?br /> ?Spring 上下?/strong>QSpring 上下文是一个配|文Ӟ?Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能?br /> ?Spring AOPQ通过配置理Ҏ,Spring AOP 模块直接面向方面的~程功能集成C Spring 框架中。所以,可以很容易地?Spring 框架理的Q何对象支?AOP。Spring AOP 模块为基?Spring 的应用程序中的对象提供了事务理服务。通过使用 Spring AOPQ不用依?EJB lgQ就可以声明性事务管理集成到应用E序中?br /> ?Spring DAOQJDBC DAO 抽象层提供了有意义的异常层次l构Q可用该l构来管理异常处理和不同数据库供应商抛出的错误消息。异常层ơ结构简化了错误处理Qƈ且极大地降低了需要编写的异常代码数量Q例如打开和关闭连接)。Spring DAO 的面?JDBC 的异帔R从通用?DAO 异常层次l构?br /> ?Spring ORMQSpring 框架插入了若q个 ORM 框架Q从而提供了 ORM 的对象关pdP其中包括 JDO、Hibernate ?iBatis SQL Map。所有这些都遵从 Spring 的通用事务?DAO 异常层次l构?br /> ?Spring Web 模块QWeb 上下文模块徏立在应用E序上下文模块之上,为基?Web 的应用程序提供了上下文。所以,Spring 框架支持?Jakarta Struts 的集成。Web 模块q简化了处理多部分请求以及将h参数l定到域对象的工作?br /> ?strong> Spring MVC 框架QMVC 框架是一个全功能的构?Web 应用E序?MVC 实现。通过{略接口QMVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText ?POI?/p>
Spring 框架的功能可以用在Q?J2EE 服务器中Q大多数功能也适用于不受管理的环境。Spring 的核心要ҎQ支持不l定到特?J2EE 服务的可重用业务和数据访问对象。毫无疑问,q样的对象可以在不同 J2EE 环境 QWeb ?EJBQ、独立应用程序、测试环境之间重用?