首页 > 程序开发 > 综合编程 > 安全编程 >

【SSH】S2SH框架搭建

2016-05-19

本demo实现的是一个简单的登陆功能。 1、开发环境 MyEclipse 10& 43;JDK1 6& 43;Tomact7& 43;Struts 2 3 28 1& 43;Spring 2 0 8& 43;Hibernate 3 2 0 2、准备工作 新建一个web项目,并下载相应的jar包。

本demo实现的是一个简单的登陆功能。

1、开发环境

MyEclipse 10+JDK1.6+Tomact7+Struts 2.3.28.1+Spring 2.0.8+Hibernate 3.2.0

2、准备工作

新建一个web项目,并下载相应的jar包。

引入的所有jar包:

\

注:如果出现包冲突现象,留下高版本。

3、搭建Struts2

1)引入jar包:asm-3.3.jar

commons-fileupload-1.3.1.jar

commons-io-2.2.jar

commons-lang3-3.2.jar

freemarker-2.3.22.jar

javassist-3.11.0.GA.jar

log4j-api-2.3.jar

ognl-3.0.14.jar

struts2-core-2.3.28.1.jar

xword-core-2.3.28.1.jar

2)在Web.xml中配置struts2:


	
		struts2
		org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
	

	
		struts2
		/*		
	
3) 从struts2压缩包中拷贝出一个struts.xml文件放置src目录下。




	
	
	
	
	
	
	
	
	
	  
  	 
  	
  	

	
	
	

		
		

		
		
		
			/main.jsp
			/login.jsp
		
	

4、 搭建Spring

1)引入的jar包:spring.jar

log4j-1.2.14.jar

commons-logging.jar

2)在src下建立application.xml文件





	

	
	
	
	
		
	

	
	
	 
	 	
	 

	
	
	
		
			
			
			
		
	

	
	
	
	
	
		
		
	

	
	
		
	

	
	
	
	
		
	
	
	

3)在web.xml中添加对application.xml文件的引用


	
	
		contextConfigLocation
		classpath:applicationContext.xml
	

5、搭建Hibernate

1)引入的jar包:Hibernate3.jar

dom4j-1.6.1.jar

commons-logging-1.0.4.jar

commons-collections-2.1.1.jar

cglib-nodep-2.2.3.jar

jta.jar

asm.jar

antlr-2.7.6.jar:hibernate执行hql语句

2)在src目录下,建立hibernate.cfg.xml文件,配置数据库连接和hibernate与数据库对象的关系映射文件。




	
	
		com.mysql.jdbc.Driver
		
		jdbc:mysql://localhost:3306/s2sh_user
		用户名
		密码
		
		org.hibernate.dialect.MySQLDialect
		
		true
		
		true
		
		 
        
         
         
         
		
		
		
		
	
3)建立对象关系映射文件:User.hbm.xml



	

	
		
			
		
		
		
	

6、整合S2SH框架

1)引入的jar包:struts2-spring-plugin-2.3.28.1.jar -----struts2和spring整合的jar包

mysql-connector-jar-3.1.13-bin.jar:mysql数据库驱动

2)在web.xml文件中,加入监听


		org.springframework.web.context.ContextLoaderListener
	
3)其他部分的代码详解

UserDaoImpl.java:

/**  
 * @Title: UserDaoImpl.java
 * @Package com.jmj.hibernate
 * @Description: TODO
 * @author meng
 * @date 2016-5-17 下午7:46:27
 */
package com.jmj.hibernate;

import java.util.List;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.jmj.domain.User;

/**
 * ClassName: UserDaoImpl
 * 
 * @Description: TODO
 * @author meng
 * @date 2016-5-17 下午7:46:27
 */
public class UserDaoImpl
		extends
		HibernateDaoSupport
		implements
		UserDao
{
	@SuppressWarnings({ "unused",
			"rawtypes" })
	public boolean findUserByUserName(
			String username,String password)
	{
		List list=this.getHibernateTemplate().find("from User u where u.username=? and password=?",new String[]{username,password});
		
		if (null==list|| list.isEmpty())
		{
			return false;
		}
		
		return true;
		//删除、添加、更新用户
		/*this.getHibernateTemplate().delete(user)    
		save(user)
		update(user)*/

	}

}
UserManagerImpl.java

/**  
 * @Title: UserManagerImpl.java
 * @Package com.jmj.spring
 * @Description: TODO
 * @author meng
 * @date 2016-5-17 上午11:46:23
 */
package com.jmj.spring;

import java.util.List;

import com.jmj.domain.User;
import com.jmj.hibernate.UserDao;

/**
 * ClassName: UserManagerImpl
 * @Description: TODO
 * @author meng
 * @date 2016-5-17 上午11:46:23
 */
public class UserManagerImpl
		implements
		UserManager
{
	private UserDao userDao;

	
	public UserDao getUserDao()
	{
		return userDao;
	}


	public void setUserDao(
			UserDao userDao)
	{
		this.userDao = userDao;
	}


	/* (non-Javadoc)
	 * @see com.jmj.spring.UserManager#findUser(java.lang.String, java.lang.String)
	 */
	public boolean findByUserName(String username,String password){
		if(this.userDao.findUserByUserName(username,password))
		{
			return true;
		}
		
		return false;
	}

}
LoginAction.java

/**  
 * @Title: LoginAction.java
 * @Package com.jmj.struts
 * @Description: TODO
 * @author meng
 * @date 2016-5-17 上午10:24:44
 */
package com.jmj.struts2;

import java.util.Map;

import com.jmj.domain.User;
import com.jmj.spring.UserManager;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

/**
 * ClassName: LoginAction
 * @Description: 登陆Action
 * @author meng
 * @date 2016-5-17 上午10:24:44
 */
public class LoginAction
		extends
		ActionSupport
{
	private User user;
	
	public User getUser()
	{
		return user;
	}

	public void setUser(
			User user)
	{
		this.user = user;
	}

	private UserManager userManager;
	
	public UserManager getUserManager()
	{
		return userManager;
	}

	public void setUserManager(
			UserManager userManager)
	{
		this.userManager = userManager;
	}

	@Override
	public String execute()
			throws Exception
	{
		if(userManager.findByUserName(user.getUsername(),user.getPassword())){
			return SUCCESS;
		}
		
		return INPUT;
	}

	@Override
	public void validate()
	{
		if (user.getUsername()==null || user.getUsername().length()==0)
		{
			super.addActionError("用户名不能为空!");
		}
		if (user.getPassword()==null||user.getPassword().length()==0)
		{
			super.addActionError("密码不能为空!");
		}
	}
}
User.java

/**  
 * @Title: User.java
 * @Package com.jmj.hibernate
 * @Description: TODO
 * @author meng
 * @date 2016-5-17 上午11:38:31
 */
package com.jmj.domain;

/**
 * ClassName: User
 * @Description: TODO
 * @author meng
 * @date 2016-5-17 上午11:38:31
 */
public class User
{
	private String id;
	
	private String username;
	
	private String password;

	public String getId()
	{
		return id;
	}

	public void setId(
			String id)
	{
		this.id = id;
	}

	public String getUsername()
	{
		return username;
	}

	public void setUsername(
			String username)
	{
		this.username = username;
	}

	public String getPassword()
	{
		return password;
	}

	public void setPassword(
			String password)
	{
		this.password = password;
	}
	
}
JSP页面:

login.jsp

<span style="font-family:KaiTi_GB2312;font-size:18px;"><form action="login.action">
        <!--此种方式是action中有相应的属性  -->
        <%-- 用户名:<s:textfield name="username"/><br>
        密码:<s:password name="password"/><br>
        <s:submit value="提交"/> --%>
        
        <!--此种方式是action中引用model  -->
        用户名:<s:textfield name="user.username"/><br>
        密码:<s:password name="user.password"/><br>
        <s:submit value="提交"/>
        
        <!-- 用户名:<input type="text" name="username"><br>
        密  码:<input type="password" name="password"><br>
        <input type="submit" value="登陆"> -->
    </form>
</span>

main.jsp

<span style="font-family:KaiTi_GB2312;font-size:18px;">欢迎【<s:property value="user.username"/>】登陆!</span>

知识拓展:

在action 里面定义要接收的参数,并提供相应的setter,getter,则Jsp页面可以直接使用此属性名;而在action中引用model层的模型,保存其对象,则jsp页面中需要使用“对象.属性名”。

相关文章
最新文章
热点推荐