您的位置:首页 > 编程语言 > Java开发

Struts2+Spring+Hibernate step by step 03 整合Spring之一(在DAO层验证用户名和密码)

2014-04-18 15:25 423 查看
注:该系列文章部分内容来自王健老师编写SSH整合开发教程

目的:通过Spring创建数据库的连接,并通过Spring进行事务管理。

第一步:将Spring的包拷贝至当前项目的lib目录下,如下图-1所示:



图-1
第二步:在web.xml中添加以下配置,即添加listener(监听器)和配置加载的Spring文件如下:



图-2
第三步:在WEB-INF目录下,建立spring的配置文件applicationContext.xml,文件内容如下图-3所示:



图-3
提示:以下内容,可以直接拷贝到xml文件当中,然后再将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:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> 
<!-- 此处暂不添加代码内容,先保留为空 -->

</beans>

 
第四步:发布并启动程序,看能否正常启动,直到正常启动后才可以进行下一步的工作:
提示:当启动tomcat后,看Console(控制台)的输出是否正常,若有异常信息,应进行代码或者配置文件的调整,能正常启动为止,如下图-4所示:



图-4
 
第五步:配置系统日志信息的输出(该部分不是必须)
如上面第四步所示,程序的日志,只有部分显示到控制台中,为了能看到更加丰富的启动、以及程序运行信息,建议配置log4j日志系统。
5.1、将log4j的日志包,拷贝到WEB-INF/lib目录下:



图-5
将此文件拷贝到WEB-INF/lib目录下后,启动项目,会再Console控制台发现以下警告信息:



图-6
以上信息,说明没有配置log4j.properties资源文件。
5.2、配置log4j.properties资源文件,文件位于WEB-INF/classes目录下。如下图-7所示:



图-7
 

提示:log4.properties中的内容,主要配置日志信息的级别,和日志信息输出的目的地,可以拷贝以下内容到log4j.properties文件中:



图-8
5.3、此时再启动项目,可以看到Console控制台发现更多丰富的加载启动信息,并且能再d盘的根目录下发现root.log的日志文件。
提示:请打开D盘目录下的root.log文件,查看日志信息。
 
第六步:书写访问数据库(模拟)的DAO(Data Access Object数据库访问层)和Service(服务层)。同时给Action注入(DI) Service,给Service实现类注入Dao,目录结构如下图-9所示:



图-9
上面首先应该写接口,按规范,建议接口都以I大写字母开头,其中Dao的实现类都以impl结尾,Service同样以impl结尾。
以下是IOneDao.java的源代码:
package com.xuzheng.dao;
import java.util.Map;
public interface IOneDao {
Map login(Map map);
}


以下是OneDaoImpl.java的源代码:
package com.xuzheng.dao.impl;
import java.util.Map;
import com.xuzheng.dao.IOneDao;
public class OneDaoImpl implements IOneDao{
public Map login(Map map) {
String name = (String) map.get("name");
String pwd = (String) map.get("pwd");
if(name.equals("xuz") && pwd.equals("1234")){
System.out.println("验证成功....");
map.put("result", "1");//如果成功将信息放入map中,且向map中存入1值
}
return map;
}
}


以下是IOneService.java的源代码:
package com.xuzheng.service;
import java.util.Map;
public interface IOneService {
Map login(Map map);
}

以下是OneServiceImpl.java的源代码:
package com.xuzheng.service.impl;
import java.util.Map;
import com.xuzheng.dao.IOneDao;
import com.xuzheng.service.IOneService;
public class OneServiceImpl implements IOneService{
private IOneDao dao;//通过配置文件注入Dao
public Map login(Map map) {
return getDao().login(map);//调用Dao的方法验证登录
}
public IOneDao getDao() {
return dao;
}
public void setDao(IOneDao dao) {
this.dao = dao;
}
}

以下是经过修改并注入Service的OneAction.java的源代码:
package com.xuzheng.one;
import java.util.HashMap;
import java.util.Map;
import com.xuzheng.service.IOneService;
public class OneAction {
private String name;//用户名
private String pwd;//密码
private IOneService service;
public String execute(){
System.out.println("name:"+getName()+",pwd:"+pwd);
Map map = new HashMap();
map.put("name", getName());
map.put("pwd", getPwd());
map = getService().login(map);
if(map.get("result")==null){
return "error";
}else{
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 IOneService getService() {
return service;
}
public void setService(IOneService service) {
this.service = service;
}
}

同时,对于getName的getPwd方法作如下修改,目的是防止抛出NullPointerException,修改如下:
public String getName() {
return name == null?"":name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd == null?"":pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}


第七步:将上面写好的类,全面配置到Spring配置文件applicationContext.xml中,如下图-10所示:



图-10
提示:1、上面箭头为引用关系 2、OneAction的Bean的模式为原型模式,必须这样设置。
 
第八步:修改struts.xml文件如下图-11所示:



图-11
第九步:发布启动程序,如果程序启动有错误,则是配置错误,应当检查配置文件,直到可以正常启动为止。
第十步:调整index.jsp页面的布局,让其变的美观:
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<body style="text-align:center;">
<form name="form1" action="<s:url value='/one.action'/>" method="post">
<table border="0">
<tr>
<td colspan="2" bgcolor="#FDDDE" align="center">
用户登录
</td>
</tr>
<tr>
<td align="right">
用户名:
</td>
<td>
<input type="text" name="name" style="width: 100px;" />
</td>
</tr>
<tr>
<td align="right">
密码:
</td>
<td>
<input type="password" name="pwd" style="width:100px;" />
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="登录" />
</td>
</tr>
</table>
</form>
</body>
</html>


第十一步:发布程序,并运行测试,输入用户名:xuz ,密码:1234看能否正常登录,如下图-12所示:



图-12
登录成功后,如下图-13所示:



图-13
 
源代码下载:
http://download.csdn.net/detail/u014548782/7213743
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息