要求:
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 ;
}
}
本文介绍了一个简单的用户注册系统的实现过程,包括前端验证、后端处理及数据库模拟等环节,使用了Java、Servlet、JSP、jQuery等技术。
4449

被折叠的 条评论
为什么被折叠?



