Struts2+Spring+Hibernate step by step 03 整合Spring之中的一个(在DAO层验证username和password)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

注:该系列文章部分内容来自王健老师编写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;//username
	private String pwd;//password
	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">
						username:
					</td>
					<td>
						<input type="text" name="name" style="width: 100px;" />
					</td>
				</tr>
				<tr>
					<td align="right">
						password:
					</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>


第十一步:公布程序,并执行測试,输入username:xuz ,password:1234看是否能正常登录,例如以下图-12所看到的:

图-12

登录成功后,例如以下图-13所看到的:

图-13

 

源码下载:

http://download.csdn.net/detail/u014548782/7213743






本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5162830.html,如需转载请自行联系原作者

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
JSON 安全 算法
|
3月前
|
XML JSON Java
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
本文介绍了如何使用IntelliJ IDEA和Maven搭建一个整合了Struts2、Spring4、Hibernate4的J2EE项目,并配置了项目目录结构、web.xml、welcome.jsp以及多个JSP页面,用于刷新和学习传统的SSH框架。
93 0
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
|
3月前
|
数据库 Java 数据库连接
Struts 2 与 Hibernate 的完美邂逅:如何无缝集成两大框架,轻松玩转高效 CRUD 操作?
【8月更文挑战第31天】本文通过具体示例介绍了如何在 Struts 2 中整合 Hibernate,实现基本的 CRUD 操作。首先创建 Maven 项目并添加相关依赖,接着配置 Hibernate 并定义实体类及其映射文件。然后创建 DAO 接口及实现类处理数据库操作,再通过 Struts 2 的 Action 类处理用户请求。最后配置 `struts.xml` 文件并创建 JSP 页面展示用户列表及编辑表单。此示例展示了如何配置和使用这两个框架,使代码更加模块化和可维护。
98 0
|
3月前
|
Java Spring Maven
Struts 2遇见Spring:这个组合如何颠覆你的Web开发?
【8月更文挑战第31天】在现代Web开发中,Struts 2与Spring的结合使用能显著增强应用的模块化和可维护性。本文将介绍如何整合这两个框架,并提供代码示例。首先,在`pom.xml`中添加Struts 2和Spring的依赖,然后在`struts.xml`中配置Struts 2以识别Spring插件。接着,在Spring配置文件中定义bean,并在Struts 2的Action类中使用`@Autowired`注解进行自动注入。
50 0
|
3月前
|
Java 开发者 前端开发
Struts 2、Spring MVC、Play Framework 上演巅峰之战,Web 开发的未来何去何从?
【8月更文挑战第31天】在Web应用开发中,Struts 2框架因强大功能和灵活配置备受青睐,但开发者常遇配置错误、类型转换失败、标签属性设置不当及异常处理等问题。本文通过实例解析常见难题与解决方案,如配置文件中遗漏`result`元素致页面跳转失败、日期格式不匹配需自定义转换器、`&lt;s:checkbox&gt;`标签缺少`label`属性致显示不全及Action中未捕获异常影响用户体验等,助您有效应对挑战。
91 0
|
3月前
|
Java 数据库连接 数据库
Spring Data JPA 与 Hibernate 之区别
【8月更文挑战第21天】
94 0
|
5月前
|
Java Spring 容器
spring如何进行依赖注入,通过set方法把Dao注入到serves
spring如何进行依赖注入,通过set方法把Dao注入到serves
|
4月前
|
Java 数据库连接 数据库
如何在Spring Boot中集成Hibernate
如何在Spring Boot中集成Hibernate
|
4月前
|
Java 数据库连接 测试技术
在Spring Boot中实现数据校验与验证
在Spring Boot中实现数据校验与验证
|
2月前
|
SQL 监控 druid
springboot-druid数据源的配置方式及配置后台监控-自定义和导入stater(推荐-简单方便使用)两种方式配置druid数据源
这篇文章介绍了如何在Spring Boot项目中配置和监控Druid数据源,包括自定义配置和使用Spring Boot Starter两种方法。
下一篇
无影云桌面