[真格邦]JAVA-WEB之模拟注册

本文介绍了一个简单的用户注册系统的实现过程,包括前端验证、后端处理及数据库模拟等环节,使用了Java、Servlet、JSP、jQuery等技术。

要求:

1、输入用户名,密码

2、输入用户名之后异步判断用户名是否存在

3、若已存在,则提示不能注册

4、若不存在可正常注册

5、注册成功后,使用静态MAP存放用户数据-模拟数据库,并返回注册成功提示界面

使用技术:

   java基础、servlet、jsp、、jQuery、ajax(异步)、mvc设计模式



<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
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 'reg.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="<%=basePath%>js/jquery-1.8.3.js"></script>
  </head>
  
  <body>
  <form action="<%=basePath%>servlet/UserServlet" method="post">
	    用户名:<input type="text" name="userName" id="userName" value="${user.userName }">
	    <font color="red" id="userTip">${flagDesc }</font>
	    <br/>
	    <br/>	
	    密码:<input type="password" name="password" value="${user.password }">
	    <input type="hidden" name="type" value="reg">
	  <input type="submit" value="注册">
    </form>
  </body>
  <script type="text/javascript">
  //页面加载完成后执行以下方法
  $(function(){
	  $("#userName").blur(function(){
		  var userName = $(this).val();
			$.ajax({
		        type: "POST",
		        url: "<%=basePath%>servlet/UserServlet", // 目标地址
		        dataType: "json",
				data : {
					"userName":userName,
					"type":"isExist"
				},
		        success: function (obj) {
		          if(obj.flag==-1){
		        	  $("#userTip").html("用户名已存在,请重新输入!");
		          }else{
		        	  $("#userTip").html("");
		          }
		        }
		     });
	  });
  });
  </script>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
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 'reg.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">
	-->

  </head>
  
  <body>
  <h2>恭喜你,注册成功</h2><br/>
  你的用户名是:${user.userName }<br/>
  </body>
</html>
package cn.zgb.bean;

public class User {
	/**
	 * 用户名
	 */
	private String userName;
	/**
	 * 密码
	 */
	private String password;
	
	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;
	}
}


package cn.zgb.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.zgb.bean.User;
import cn.zgb.service.UserService;

@SuppressWarnings("serial")
public class UserServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request,response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//功能编码
		String type = request.getParameter("type");
		String userName = request.getParameter("userName");
		String password = request.getParameter("password");
		//将页面上获取的值放入user对象中
		User user = new User();
		user.setUserName(userName);
		user.setPassword(password);
		//UserService
		UserService userService = new UserService();
		int flag = -1;
		//注册功能
		if("reg".equals(type)){
			//第一步:判断用户名是否存在
			flag = userService.isExist(user);
			if(flag == 0){//说明用户名不存在,可以新增
				flag = userService.insertUser(user);
			}
			request.setAttribute("user",user);
			request.setAttribute("flag",flag);
			if(flag == 0){//注册成功
				request.getRequestDispatcher("/suc.jsp").forward(request, response);
			}else{//注册失败

				request.setAttribute("flagDesc","用户名已存在,请重新输入");
				request.getRequestDispatcher("/reg.jsp").forward(request, response);
			}
			
		}else if("isExist".equals(type)){//判断用户名是否已注册
			System.out.println(userName);
			//判断用户名是否存在
			flag = userService.isExist(user);
			
			response.setCharacterEncoding("UTF-8");
			response.setContentType("application/json; charset=utf-8");
			String jsonStr = "{\"flag\":\""+flag+"\"}";
			PrintWriter out = null;
			try {
			    out = response.getWriter();
			    out.write(jsonStr);
			} catch (IOException e) {
			    e.printStackTrace();
			} finally {
			    if (out != null) {
			        out.close();
			    }
			}
			
		}else if("login".equals(type)){//登录功能
			
		}
	}

}

package cn.zgb.service;

import cn.zgb.bean.User;
import cn.zgb.dao.UserDao;

public class UserService {
	/**
	 * 判断当前要注册的用户名是否存在
	 * 1、存在:返回-1
	 * 2、不存在:返回0
	 */
	public int isExist(User user){
		int flag = -1;
		UserDao userDao = new UserDao();
		User newUser = userDao.findUser(user.getUserName());
		if(newUser==null){//说明当前用户名不存在,可以注册
			flag = 0;
		}
		return flag;
	}
	
	/**
	 * 新增用户
	 * 新增成功:返回0
	 * 新增失败:返回-1
	 */
	public int insertUser(User user){
		UserDao userDao = new UserDao();
		return userDao.insertUser(user);
	}
}

package cn.zgb.dao;

import java.util.HashMap;
import java.util.Map;

import cn.zgb.bean.User;

public class UserDao {
	/**
	 * 存放用户信息
	 * key-用户名
	 * value-用户对象
	 */
	public static Map<String ,User> userMap = new HashMap<String ,User>();
	/**
	 * 根据用户名查询用户信息
	 * @return
	 */
	public User findUser(String userName){
		User user = null;
		if(userMap!=null&&!userMap.isEmpty()){
			user = userMap.get(userName);
		}
		return user;
	}
	//新增用户
	public int insertUser(User user){
		int flag = -1;
		userMap.put(user.getUserName(), user);
		flag = 0;//说明新增成功
		return flag ;
	}
}



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值