使用Struts2 spring hibernate框架开发项目---------验证用户名是否可用
使用三大框架开发项目中,当我们注册用户时,往往要求数据库中的用户名是唯一的,所以我们需要在注册时进行用户名验证操作,该操作是如何实现的呢?下面的案例详细介绍此内容。
案例:
Insert.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'inseret.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/jquery-1.6.js"></script>
<script type="text/javascript">
function checkUserName(){
var name=$("#uname").val();
$.ajax({
type:"post",
url:"csdn/user_checkUserName",
data:"user.name="+name,
success:function(data){
if(data.user==null){
$("#checkname").html("<font color='red'>用户名可用</font>");
}else{
$("#checkname").html("<font color='red'>用户名不可用</font>");
}
},
error:function(jsonmsg){
},
dataType:"json"
});
}
</script>
</head>
<body>
<h2>
用户登录
</h2>
<s:form action="user_insert.action" namespace="/csdn">
<s:textfield label="用户名" name="user.name" id="uname" ></s:textfield>
<span id="checkname"></span>
<input type="button" onclick="checkUserName()" value="验证用户名"/>
<s:textfield label="密码" name="user.pass"></s:textfield>
<s:submit value="添加"></s:submit>
</s:form>
</body>
</html>
解析:为了验证用户名是否可用,我在此添加了一个按钮来验证用户名是否可用。该按钮将触发onclick="checkUserName()"事件,采用了Jquery 的ajax请求处理,从页面的文本框中获取你将要注册的用户名,点击验证用户名按钮进行验证,使用ajax的post请求将用户名传到action中执行checkUserName()方法,以下将是根据用户名到底层实现类中进行查找的过程。
Action.Java
public class UserAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
private UserServiceImpl userServiceImpl;
public UserServiceImpl getUserServiceImpl() {
return userServiceImpl;
}
/* 依赖注入方式 */
public void setUserServiceImpl(UserServiceImpl userServiceImpl) {
this.userServiceImpl = userServiceImpl;
}
private List<User> users;
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
this.users = users;
}
/*检查用户名是否可用*/
public String checkUserName(){
user=userServiceImpl.findByName(user.getName());
return "checkUserName";
}
}
UserServiceImpl.java
public class UserServiceImpl implements UserService {
private UserDaoImpl userDaoImpl;
/*依赖注入*/
public void setUserDaoImpl(UserDaoImpl userDaoImpl) {
this.userDaoImpl = userDaoImpl;
}
public User findByName(String name) {
return userDaoImpl.findByName(name);
}
}
UserDaoImpl.java
public class UserDaoImpl extends HibernateDaoSupport implements UserDao {
/* 根据用户名查询用户信息 */
public User findByName(String name) {
List list = getHibernateTemplate().find("from User where name=? ", name);
if (list.size() > 0) {
User user = (User) list.get(0);
return user;
}
return null;
}
}
Struts-user.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
<package name="dxl" extends="json-default" namespace="/csdn">
<global-results>
<result name="input">/index.jsp</result>
</global-results>
<action name="user_*" class="userAction" method="{1}">
<!-- 返回的是一个user对象 user对象(id,name,pass) -->
<result name="checkUserName" type="json">
<!-- param参数的配置,includeProperties -->
<param name="includeProperties">
user\.id,user\.name
</param>
</result>
</action>
</struts>
解析:此文件中使用了通配符,返回的是一个json类型, includeProperties 参数:输出结果中需要包含的属性值,这里正则表达式和属性名匹配,可以用“,”分割填充多个正则表达式。
分享到:
相关推荐
通过对Struts2、Hibernate和Spring三大组件的逐一配置与测试,确保了项目的基础架构稳固可靠。此外,文档还特别提到了如何通过配置文件管理数据库连接信息,以提高项目的灵活性和可维护性。通过以上步骤,开发者可以...
【描述】:“这是一款基于Struts 2、Hibernate和Spring框架的经典论坛系统,旨在提供一个互动交流平台,供用户发表话题、参与讨论和分享知识。这个系统展示了如何将这三个流行的技术结合,以构建高效、可扩展的Web...
【SSH整合AJAX验证用户名存在和验证码的完整实例】是一个关于使用SSH(Struts、Spring、Hibernate)三大框架与AJAX技术相结合,实现用户注册时的异步验证功能的示例项目。在这个实例中,主要涉及到以下几个核心知识...
【SSH2 + AJAX + jQuery + JSON 验证用户名是否存在】是一种常见的前端与后端交互技术,用于实现实时检查用户在注册或登录时输入的用户名是否已经被占用。在这个过程中,SSH2代表Secure Shell 2,通常用于服务器端的...
2. **Hibernate框架**: - Hibernate作为ORM(Object-Relational Mapping)工具,用于实现Java对象与数据库表之间的映射。 - Hibernate简化了数据访问层的开发工作,提高了数据操作的效率。 - 支持缓存机制,减少...
在SSH2(Apache Struts2)、Ajax、jQuery和JSON技术组合中,验证用户名是否存在的功能是一个典型的前后端交互示例。以下是这些技术如何协同工作的详细解释: **SSH2 (Struts2)**:SSH2是Struts2的简称,它是Apache的...
Spring 和 Hibernate 是目前 Java Web 开发中非常流行的两个框架,它们结合使用可以构建出高性能、高可用性的企业级应用。 #### 二、关键技术点解析 ##### 2.1 xDoclet 生成配置文件 xDoclet 是一个强大的工具,...
通常,我们使用Struts、Spring MVC或类似的MVC框架。在这个Action中,我们将接收到的用户名参数,查询数据库以检查其是否存在。如果不存在,返回成功响应;否则,返回失败响应。例如,使用Spring MVC的控制器: ``...
SSH2框架是指Spring、Struts2和Hibernate三个开源框架的集成应用,它们通常被用于构建企业级Java Web应用程序。 - **Spring**:提供依赖注入和面向切面编程的功能,是整个应用的基础,负责管理业务对象的生命周期和...
在IT行业中,s2sh框架是Struts2、Spring和Hibernate三个开源框架的组合,常用于构建企业级的Web应用程序。这个"**s2sh登录注册实例**"着重展示了如何利用这三个框架集成来实现用户登录和注册功能。下面将详细阐述s2...
这个实例主要展示了如何将Spring Security 3.1与Struts2和Hibernate集成,以实现一个完整的Web应用安全架构。 首先,我们需要理解Spring Security的基本组件和概念。它主要包括以下部分: 1. **Authentication...
SSH框架,即Spring、Struts和Hibernate的组合,是Java企业级应用开发的常用选择。本项目基于SSH框架实现了后台接口,并通过了一系列测试,确保了其稳定性和可用性。 1. SSH框架环境搭建:SSH框架的搭建是开发的基础...
"SSH_Flower"是一个基于Java开发的鲜花商城项目,它主要使用了Spring、Struts2和Hibernate这三大流行框架,通常被简称为SSH框架。这个项目不仅提供了完整的前端展示,还包括了后台管理系统,实现了电子商务的基本...
SSH框架,即Spring、Struts和Hibernate的组合,是Java Web开发中的经典三剑客,而DRW框架可能是自定义或者特定项目中的一个框架,描述中并未提供详细信息,我们暂时假设它是一个用于相册管理的定制框架。现在,让...
在IT行业中,S2SH(Struts2+Spring+Hibernate)是一种常见的Web应用程序开发框架,它结合了Struts2的MVC(Model-View-Controller)设计模式、Spring的依赖注入(Dependency Injection)以及Hibernate的对象关系映射...
"青鸟在线投票系统"是一个基于SSH框架开发的Web应用程序,SSH是指Struts、Spring和Hibernate这三个开源框架的组合,它们在Java Web开发中被广泛使用。这个系统提供了完整的投票功能,包括用户管理、投票创建、参与...
【SSH Java Web 火车订票系统】是一个基于Java Web技术栈的项目,主要采用了Struts2(S)作为MVC框架、Spring(S)作为应用上下文和依赖注入框架,以及Hibernate(H)作为对象关系映射工具,这三者合称为SSH框架。...
- 使用Hibernate框架实现数据库操作,包括增删改查。 - 定义相应的DAO类,如ProductDAO、OrderDAO等。 **4.控制器对象实现** - **UserController.java**:处理用户相关的请求。 - **ProductController.java**:...
本项目主要使用了SSH框架,即Struts2、Spring和Hibernate三个开源框架的组合,它们分别负责Web层、业务逻辑层和数据访问层的开发。 - **Struts2**:负责处理用户的请求,将请求转发到相应的业务逻辑层进行处理。 - ...