`

使用ssh框架写一个基本的登录注册页面

 
阅读更多

Java基础只限于本科时上过Java课。考试成绩60。看了李刚的Java EE有一个月了,今天做一个简单的登录页面。

参考链接</p><p>

http://wenku.baidu.com/link?url=ZT_y9ERAAZV9UsFFA4Td9FJ0n3747GJ9iIPh57HLvf6FQ1fdyBoO4oHjd-MgzRj7nEyerfw14N78ZQJ4kbvVcaQrput8wWJecZhwMXW7cky

1、建立数据库和用户表,简单考虑只建立user表,添加user_id、user_name、email、pass四个属性。

2、新建web工程。

3、第一种方法是直接右击项目名称选择Myeclipse一次选择添加structs2、spring、Hibernate包。这种方法在后续编程中有可能造成许多jar包冲突。

  第二种是使用没有冲突的jar包。把structs、spring、Hibernate以及mysql-connector-java(连接mysql数据库)添加到WebRoot/WEB-INF/bin目录下,并选中项目中要使用的所有jar包文件右击选择builtPath——>Add To Built Path

4、选择MyEclipse Database explorer Perspective。新建一个Database Driver。

 

上图配置自动在ApplicationContext.xml文件中自动生成dataSorce bean

 

选择要建立Hibernate反转映射的表右击选择Hibernate reverse Engineering配置表的各项属性后会生成如下文件

5、建立UserDao.java

 

 

import java.util.List;
import com.domain.User;
public interface UserDao {
	User get(Integer id);
	Integer save(User user);
	void update(User user);
	void delete(User user);
	void delete(Integer id);
	
	List<User> findByNameAndPass(User user);
	User findByName(String name);
	User findByEmail(String email);
}

 

 

6、UserDaoHibernate.java

 

 

package dao.persistence.impl;

import java.util.*;
import com.common.hibernate3.support.YeekuHibernateDaoSupport;
import com.domain.*;
import dao.UserDao;
public class UserDaoHibernate extends YeekuHibernateDaoSupport implements UserDao{
	@Override
	public User get(Integer id){
		return getHibernateTemplate().get(User.class, id);
	}

	@Override
	public Integer save(User user) {
		// TODO Auto-generated method stub
		Integer inte = (Integer)getHibernateTemplate().save(user);
		return inte;
	}

	@Override
	public void update(User user) {
		// TODO Auto-generated method stub
		getHibernateTemplate().update(user);		
	}

	@Override
	public void delete(User user) {
		// TODO Auto-generated method stub
		getHibernateTemplate().delete(user);
	}
	
	@Override
	public void delete(Integer id) {
		// TODO Auto-generated method stub
		getHibernateTemplate().delete(get(id));
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<User> findByNameAndPass(User user) {
		// TODO Auto-generated method stub
		return (List<User>)getHibernateTemplate()
				.find("from User u where u.userName=? and u.pass=?", user.getUserName(), user.getPass());
	}

	@Override
	public User findByName(String name) {
		// TODO Auto-generated method stub
		@SuppressWarnings("unchecked")
		List<User> us = (List<User>)getHibernateTemplate()
				.find("from User where userName = ? " , name);
			if (us!= null && us.size() >= 1)
			{
				return us.get(0);
			}
			return null;
	}

	@Override
	public User findByEmail(String email) {
		// TODO Auto-generated method stub
		@SuppressWarnings("unchecked")
		List<User> us = (List<User>)getHibernateTemplate()
				.find("from User where email = ? " , email);
			if (us!= null && us.size() >= 1)
			{
				return us.get(0);
			}
			return null;
	}
}

 

 

7、UserService.java

 

 

package com.service;

import com.domain.*;
import java.util.*;
public interface UserService {
public User getByName(String name);
public User getByEmail(String email);
public boolean checkUser(User user);
public boolean addUser(User user);
}

 

 

8、UserManageImpl.java

 

 

package com.service.impl;

import java.util.List;
import com.domain.User;
import com.service.UserService;
import dao.*;

public class UserManagerImpl implements UserService {

	private UserDao userdao;
	
	public UserDao getUserdao() {
		return userdao;
	}

	public void setUserdao(UserDao userdao) {
		this.userdao = userdao;
	}

	@Override
	public User getByName(String name) {
		return userdao.findByName(name);
	}

	@Override
	public User getByEmail(String email) {
		// TODO Auto-generated method stub
		return userdao.findByEmail(email);
	}

	public boolean checkUser(User user){
		List<User> users= (userdao.findByNameAndPass(user));
		if(users.size()>0)
			return true;
		else
			return false;
	}
	
	@Override
	public boolean addUser(User user) {
		// TODO Auto-generated method stub
		Integer ref=(Integer) userdao.save(user);
		if(ref!=null)
			return true;
		else
			return false;
	}

}

 

 

9、UserAction.java

 

 

<pre name="code" class="java">package com.action;

import net.sf.json.JSONObject;
import com.domain.User;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.service.UserService;

@SuppressWarnings("serial")
public class UserAction extends ActionSupport implements ModelDriven {
	private String result;
	private UserService userservice;
	private User user;

	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user.setUserName(user.getUserName());
		this.user.setPass(user.getPass());
		this.user = user;
	}

	public UserService getUserservice() {
		return userservice;
	}

	public void setUserservice(UserService userservice) {
		this.userservice = userservice;
	}

	public String getResult() {
		return result;
	}

	public void setResult(String result) {
		this.result = result;
	}

	@Override
	public Object getModel() {
		// TODO Auto-generated method stub
		if (user == null)
			user = new User();
		return user;
	}

	public String checkUserName() {
		String warnMsg = "";
		User user = userservice.getByName(this.user.getUserName());
		if (user == null)
			warnMsg = "该用户名可用";
		else
			warnMsg = "该用户名已经存在";
		JSONObject jo = new JSONObject();
		jo.put("warnMsg", warnMsg);
		result = jo.toString();//向jsp页面传递一个result值
		return SUCCESS;
	}

	public String checkUserEmail() {
		User user = userservice.getByEmail(this.user.getEmail());
		String warnMsg = "";
		if (user == null)
			warnMsg = "该邮箱可用";
		else
			warnMsg = "该邮箱已注册";
		JSONObject jo = new JSONObject();
		jo.put("warnMsg", warnMsg);
		result = jo.toString();
		return SUCCESS;
	}

	public String login() {
		if (userservice.checkUser(user))
			return "success";
		else
			return "input";
	}

	public String add() {
		if (userservice.addUser(user) == true)
			return "success";
		else
			return "input";

	}

}

 

 

10、Bean注入

 

11、配置Action及校验配置

为了完成登录校验使用了Ajax技术,首先要为Structs添加JSON插件,将Structs解压缩目录的lib子目录下的structs-json-plugin-2.2.1.jar文件复制到web应用的WEB-INF、lib目录下。

 

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	<package name="userjson" namespace="/" extends="json-default">
		<action name="userJSONAction_*" method="{1}" class="UserA">
			<result type="json">
				<param name="root">result</param>
			</result>
		</action>
	</package>
	<package name="default" extends="struts-default" namespace="/">
		<action name="Login" class="UserA" method="login">
			<result name="input">/login.jsp</result>
			<result name="success">/main.jsp</result>
		</action>
		<action name="regist" class="UserA" method="add">
			<result name="input">/regist.jsp</result>
			<result name="success">/main.jsp</result>
		</action>

		<action name="*">
			<result>{1}.jsp</result>
		</action>
	</package>
</struts>

 

 

 

上面的文件为第一个action配置了返回值为Json(JavaScript Object Notation即JavaScript对象符号)类型的result。json插件可以将action中的状态信息序列化成json格式的字符串,并将该字符串返回给客户端的浏览器。在客户端页面就可以用JavaScript异步调用Action,并且Action可以不使用视图资源来显示该Action里的状态信息。通过这种方式就可以完成Ajax(Asynchronous JavaScript And XML即异步JavaScript和XML技术)交互。

配置json数据类型的result时还配置了root参数,该参数可以为OGNL表达式,确定Action内的某个属性。配置该参数说明不再把整个Action对象序列化成JSON字符串,而是只将该参数指定的Action属性序列化成JSON字符串返回给客户端。

 

 

 

12、login.jsp建立登录页面

主要的提交数据表单代码如下:

 

 

 <form method="post" action="Login.action">
    	用户名:<input name="username" type="text"><br/>
    	密码:<input name="password" type="password"> <br/>
    	<input name="Submits" type="submit" value="登录"/>
    	<input name="ReSet" type="reset" value="重置"/>
        <a href="regist.jsp"><input type="button"  value="注册"/></a>
    	
    </form>

 

 

13、regist.jsp页面中使用了Ajax和jQuery检测用户名和注册邮箱是否重复。

 

http://www.2cto.com/kf/201308/238557.html(网上的另一种实现)

上面的UserService和UserDao中都已经定义了findByUserName和findByEmail方法。在UserAction中写checkUsername和checkUserEmail方法,前台的js代码把取得的username和email分别使用Json数据传递给后台调用check方法,check方法给warnMes赋值并在此使用Json格式传递。

regist.jsp代码如下:

 

 

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'regist.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"> 
<script src="js/jQuery.js"></script> 
<script type="text/javascript">
function checkEmail(){
var emailifo=$("#email").val();
         $.ajax({
             type: "GET",
             url: "userJSONAction_checkUserEmail.action",
             data: {email:emailifo},
             dataType: "json",
             success: function(data){
             var obj=$.parseJSON(data);
             $("#emailMes").html("");
             $("#emailMes").text(obj.warnMsg);
             }
             });
}
function checkUserName(){
var nameInfo=$("#userName").val();
         $.ajax({
             type: "GET",
             url: "userJSONAction_checkUserName.action",
             data: {userName:nameInfo},
             dataType: "json",
             success: function(data){
             var obj=$.parseJSON(data);
             $("#nameMes").html("");
             $("#nameMes").text(obj.warnMsg);
             }
             });
}
</script>
<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
</head>

<body>
	註冊
	<br>
	<form action="regist.action" method="post">
		邮箱:<input type="text" id="email" name="email" onblur="checkEmail()"><p id="emailMes"></p>
		<br /> 用户名:<input type="text" id="userName" name="userName" onblur="checkUserName()"><p id="nameMes"></p> <br /> 密码:<input
			type="text" name="pass" value="">
		<br /> <input type="submit" name="submit" value="注册">
	</form>
</body>
</html>

 

 

 初学还有很多不足,欢迎大家批评指正。

Java基础只限于本科时上过Java课。考试成绩60。看了李刚的Java EE有一个月了,今天做一个简单的登录页面。<p></p><p>参考链接</p><p>http://wenku.baidu.com/link?url=ZT_y9ERAAZV9UsFFA4Td9FJ0n3747GJ9iIPh57HLvf6FQ1fdyBoO4oHjd-MgzRj7nEyerfw14N78ZQJ4kbvVcaQrput8wWJecZhwMXW7cky</p><p></p><p>1、建立数据库和用户表,简单考虑只建立user表,添加user_id、user_name、email、pass四个属性。</p><p>2、新建web工程。</p><p>3、第一种方法是直接右击项目名称选择Myeclipse一次选择添加structs2、spring、Hibernate包。这种方法在后续编程中有可能造成许多jar包冲突。</p><p> 
     第二种是使用没有冲突的jar包。把structs、spring、Hibernate以及mysql-connector-java(连接mysql数据库)添加到WebRoot/WEB-INF/bin目录下,并选中项目中要使用的所有jar包文件右击选择builtPath——>Add To Built Path</p><p>4、选择MyEclipse Database explorer Perspective。新建一个Database Driver。</p><p><img src="" alt="" /></p><p>上图配置自动在ApplicationContext.xml文件中自动生成dataSorce
 bean</p><p><img src="" alt="" /></p><p>选择要建立Hibernate反转映射的表右击选择Hibernate reverse Engineering配置表的各项属性后会生成如下文件</p><p><img src="" alt="" /><img src="" alt="" /></p><p>5、建立UserDao.java</p><p></p><pre name="code" class="java">package dao;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    SSH框架实例(注册、登录+增删改查+分页)

    这个实例提供了一个全面的功能,包括用户注册、登录、数据操作(增删改查)以及分页功能,非常适合初学者进行学习和实践。 **Struts2** 是一个基于MVC(Model-View-Controller)设计模式的Web应用框架,负责处理...

    SSH框架写的注册登录

    在本项目中,"SSH框架写的注册登录"指的是使用SSH框架实现用户注册和登录的功能,并且在用户成功登录后,能够查询到该登录用户所属部门的所有员工信息。 首先,我们来深入了解一下SSH框架的各个组件: 1. Struts2...

    SSH框架搭建——登录、注册实例

    在本知识点中,我们将会详细了解如何搭建SSH框架,并实现一个具有登录注册功能的实例。SSH框架是Struts、Spring和Hibernate三个开源框架的组合,分别用于MVC模式的实现、依赖注入和持久层操作,使得开发者能够快速...

    ssh框架搭建并简单实例实现(注册登录功能)

    本教程将详细介绍如何搭建SSH框架,并实现一个基本的注册登录功能。 首先,我们需要准备开发环境。确保已安装JDK、Apache Tomcat服务器、Eclipse或IntelliJ IDEA等IDE,以及Maven构建工具。SSH框架的版本也需要适配...

    用户登录注册项目-ssh框架

    本项目“用户登录注册项目-ssh框架”是一个非常适合新手学习的实例,旨在帮助初学者掌握SSH框架的基本用法和实战技巧。 **Spring框架**是Java企业级应用的核心框架,它提供了依赖注入(Dependency Injection,DI)...

    基于SSH三大框架完成的注册和登录功能

    本项目利用SSH框架实现了一个基础的注册和登录功能,对于初学者来说,这是一个很好的实践和理解框架集成应用的起点。 1. **Struts框架**:Struts是MVC(Model-View-Controller)设计模式的一个实现,主要用于控制...

    一个完整的SSH框架demo

    这个"一个完整的SSH框架demo"是为初学者提供了一个实践平台,帮助理解这三大框架如何协同工作,实现Web应用的开发。 **Spring框架**:Spring是一个全方位的轻量级应用框架,它提供了IOC(Inversion of Control)...

    SSH注册登录系统

    SSH注册登录系统是一个基于Java开发的Web应用程序,它利用了三个主流的开源框架:Struts、Hibernate和Spring,这也就是SSH框架的由来。SSH框架是企业级Java应用开发的常用组合,它提供了模型-视图-控制器(MVC)架构...

    SSH框架实现增删改查功能

    在本文中,我们将深入探讨如何使用SSH框架来实现数据库操作中的增删改查(CRUD)功能,以及涉及到的核心技术点。 首先,SSH框架的核心组件包括: 1. **Struts2**:这是一个MVC(Model-View-Controller)框架,负责...

    SSH框架+MySQL搭建项目(登录注册等)

    总的来说,"SSH框架+MySQL搭建项目(登录注册等)"涉及到的技术栈涵盖了Web应用开发的核心部分,从前端控制器、业务逻辑管理到数据库操作,都需要开发者有深入的理解和实践。通过学习和掌握这些知识点,开发者能够...

    SSH框架——注册登录

    这个小例子主要展示了如何使用SSH框架实现一个基本的注册登录功能,非常适合初学者进行学习和实践。 首先,Struts2是MVC(模型-视图-控制器)设计模式的一个实现,用于处理用户请求并展示结果。它负责控制应用程序...

    简单ssh2框架程序

    这个"简单ssh2框架程序"是一个基础的Web工程,主要涵盖了用户登录、注册和登出这三种基本的Web交互功能。下面将详细阐述SSH2框架的组成、工作原理以及如何实现这些功能。 1. Spring框架:Spring作为整个应用的核心...

    java框架ssh框架项目案例

    案例通常会包含一个简单的用户管理系统或者订单系统,展示如何实现登录注册、数据展示、增删改查等基本功能。通过分析和运行这个案例,开发者可以深入理解SSH框架之间的协作机制,并且掌握如何在实际项目中应用这些...

    基于ssh框架制作的登录实例

    在这个基于SSH框架的登录实例中,我们将探讨如何整合这三个组件来创建一个基本的用户登录功能。 **Struts2** 是一个用于构建Java Web应用程序的开源MVC框架。它提供了一种声明式的方式来控制页面间的导航,使得业务...

    基础ssh框架系统案例源码

    这个“基础SSH框架系统案例源码”提供了一个简易的UI布局,能够帮助初学者理解SSH框架如何协同工作,实现用户注册登录以及基本的数据操作功能。 **Spring框架**:Spring是一个全方位的轻量级容器,它提供了依赖注入...

    简单MyEclipse搭建SSH框架登录实例

    总的来说,这个SSH框架的登录实例是一个学习和实践的好起点,帮助开发者了解SSH框架的基本工作原理和集成方式。随着你对框架理解的加深,你可以逐步添加更多功能,如权限控制、验证码、用户注册等,以构建更复杂的...

    一个完整的ssh框架搭建的登陆注册系统

    这个项目是一个基于SSH框架构建的用户登录注册系统,对于初学者来说,这是一个很好的学习资源,因为它提供了从基础到实践的完整流程。 **Struts2** 是一个MVC(Model-View-Controller)框架,负责处理用户的请求,...

    基于SSH框架开发的图书管理系统

    SSH框架是Java Web开发中的一个经典组合,它由Spring、Struts和Hibernate三个开源框架组成。这个框架组合在早期的Web应用开发中被广泛使用,提供了强大的功能和良好的可扩展性。在这个“图书管理系统”项目中,SSH...

    SSH框架的小项目

    这个小项目以SSH框架为基础,旨在实现登录注册功能,对于初级开发人员来说,是一个很好的学习和实践平台。 Struts2是MVC(模型-视图-控制器)设计模式的一个实现,它提供了处理HTTP请求、控制应用流程、以及与视图...

    ssh框架简单教程(附案例)

    本教程将深入浅出地介绍SSH框架的基础知识,并通过一个简单的注册登录案例来帮助你快速上手。 首先,Spring框架是核心的依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)...

Global site tag (gtag.js) - Google Analytics