前面是后台代码,分别为Bean用户实体类,模拟DB,Dao层类,Service层类,Servlet类(登录、注册、注销)。还有两个过滤器(字符编码和拦截个人资料)没写上去,再写就太多了。当然,这是个练手之作,望大佬不吝指教。
有问题的话,请在评论留言。

用户实体类

package bean;public class Bean_User {private String name;private String password;private String email;private String loves;private String url;public Bean_User() {}public Bean_User(String name, String password, String email, String loves, String url) {super();this.name = name;this.password = password;this.email = email;this.loves = loves;this.url = url;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getLoves() {return loves;}public void setLoves(String loves) {this.loves = loves;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}}

DB模拟数据库类

package db;import java.util.ArrayList;import bean.Bean_User;public class DB_UserList {public static ArrayList<Bean_User> userList = new ArrayList<Bean_User>();static {Bean_User admin = new Bean_User("admin", "admin", "admin@163.com","吃,喝","Files//wan.jpg");userList.add(admin);}}

Dao层操作数据类

package dao;import bean.Bean_User;
import db.DB_UserList;public class Dao_User {/*** 查询用户*/public Bean_User find(String name,String password) {for (int i=0;i<DB_UserList.userList.size(); i++) {if(name.equals(DB_UserList.userList.get(i).getName())) {if(password.equals(DB_UserList.userList.get(i).getPassword())) {return DB_UserList.userList.get(i);}}}return null;}/*** 添加用户*/public void add(Bean_User user) {DB_UserList.userList.add(user);}/***     查询是否用户名是否注册*/public boolean judgeName(String name) {boolean flag = true;for (int i=0;i<DB_UserList.userList.size();i++) {if(name.equals(DB_UserList.userList.get(i).getName())) {flag = false;}}return flag;}/***   查询是否邮箱是否注册*/public boolean judgeMail(String mail) {boolean flag = true;for (int i=0;i<DB_UserList.userList.size();i++) {if(mail.equals(DB_UserList.userList.get(i).getEmail())) {flag = false;}}return flag;}}

Service业务类(本来这个类可以不要的,但是为了框架完整,还是敲上去了)

package service;import bean.Bean_User;
import dao.Dao_User;public class Service_User {Dao_User userDao = new Dao_User();/*** 查询用户*/public Bean_User find(String name,String password) {return userDao.find(name, password);}/*** 添加用户*/public void add(Bean_User user) {userDao.add(user);}/*** 查询用户名是否注册*/public boolean judgeName(String name) {return userDao.judgeName(name);}/*** 查询邮箱是否注册*/public boolean judgeMail(String mail) {return userDao.judgeMail(mail);}}

Servlet 注册功能(Regist)

package servlet;import java.io.File;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import bean.Bean_User;
import service.Service_User;@WebServlet("/RegistServlet")
public class RegistServlet extends HttpServlet {private static final long serialVersionUID = 1L;Service_User userService = new Service_User();protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {judgeForm(request,response);subForm(request);response.setHeader("refresh", "1;url=HomePage.jsp");}public void judgeForm(HttpServletRequest request, HttpServletResponse response) throws IOException {String action = request.getParameter("action");System.out.println(action);if("VerName".equals(action)) {String name = request.getParameter("name");System.out.println(name);boolean flag = userService.judgeName(name);if(flag) {response.getWriter().write("0");}else {response.getWriter().write("1");}}else if("VerMail".equals(action)) {String mail = request.getParameter("mail");System.out.println(mail);boolean flag = userService.judgeMail(mail);if(flag) {response.getWriter().write("0");}else {response.getWriter().write("1");}}}public void subForm(HttpServletRequest request) {//创建解析器工厂DiskFileItemFactory factory = new DiskFileItemFactory();//创建解析器对象ServletFileUpload parserObj = new ServletFileUpload(factory);//创建一个Bean_User对象存放内容Bean_User user = new Bean_User();//判断上传的字符编码是否是字节上传if(ServletFileUpload.isMultipartContent(request)) {//解析表单并接收解析结果try {List<FileItem> fitems=parserObj.parseRequest(request);//遍历解析的表单元素for (FileItem fitem : fitems) {try {saveForm(user, fitem, request);} catch (Exception e) {e.printStackTrace();}}} catch (FileUploadException e) {e.printStackTrace();}}//将新建的Bean_User对象存入集合中userService.add(user);}//向新建实体类对象中存储表单元素public void saveForm(Bean_User user,FileItem fitem,HttpServletRequest request) throws Exception {if(fitem.isFormField()) {//判断是否是普通表单String fitemName = fitem.getFieldName();//得到普通表单的name属性if("name".equals(fitemName)) {String value=fitem.getString("utf-8");System.out.println(value);user.setName(value);}else if("mail".equals(fitemName)) {String value=fitem.getString("utf-8");System.out.println(value);user.setEmail(value);}else if("password".equals(fitemName)) {String value=fitem.getString("utf-8");System.out.println(value);user.setPassword(value);}else if("hobby".equals(fitemName)) {String value = fitem.getString("utf-8");System.out.println(value);if(user.getLoves()==null) {user.setLoves(value);}else {user.setLoves(user.getLoves()+","+value);}}}else {//是文件表单String fileName=fitem.getName();//获取文件名String path=request.getServletContext().getRealPath("Files/");//获取上传文件路径fitem.write(new File(path, fileName));//上传文件user.setUrl("Files/"+fileName);}    }}

Servlet 登录功能(Login)

package servlet;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import service.Service_User;@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {private static final long serialVersionUID = 1L;Service_User userService = new Service_User();   protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获得用户名和密码String name = request.getParameter("name");String password = request.getParameter("password");//检查用户名和密码if(userService.find(name, password)!=null) {//登录成功//将用户状态user对象存入session域request.getSession().setAttribute("user",userService.find(name, password));//发送自动登录的cookieString autoLG = request.getParameter("autoLG");if(autoLG!=null) {Cookie cookie = new Cookie("autoLG",name+"-"+password);cookie.setMaxAge(Integer.parseInt(autoLG));cookie.setPath(request.getContextPath());response.addCookie(cookie);}//跳转至首页response.sendRedirect(request.getContextPath()+"/HomePage.jsp");}else {request.setAttribute("errerMsg","用户名或密码错误");request.getRequestDispatcher("/Login.jsp").forward(request, response);}}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}

Servlet 注销功能(Logout)

package servlet;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;@WebServlet("/LogoutServlet")
public class LogoutServlet extends HttpServlet {private static final long serialVersionUID = 1L;protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//用户注销request.getSession().removeAttribute("user");//从客户端删除自动登录的cookieCookie cookie = new Cookie("autoLG","msg");cookie.setPath(request.getContextPath());cookie.setMaxAge(0);response.addCookie(cookie);response.sendRedirect(request.getContextPath()+"/HomePage.jsp");}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}

从这开始,下面是前端的代码,分别是主页,登录,注册,个人资料四个页面,在使用的时候,需要在WebContent下建Files文件夹,用来存储上传的头像图片,并且需要导入Jquery文件,鄙人用的是3.3.1js,其他的也行的。

HomePage 主页面,欢迎界面

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>首页</title>
</head>
<body><br><h3 align="center">欢迎来到召唤师峡谷</h3><br><br><c:choose><c:when test="${sessionScope.user==null}"><a href="${pageContext.request.contextPath}/Login.jsp">用户登录</a><a href="${pageContext.request.contextPath}/Regist.jsp">用户注册</a></c:when><c:otherwise>欢迎你,${sessionScope.user.name}!<a href="${pageContext.request.contextPath}/PersonData.jsp">个人资料</a><a href="${pageContext.request.contextPath}/LogoutServlet">注销</a></c:otherwise></c:choose><hr></body>
</html>

注册页面(Regist)

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>注册</title>
<script type="text/javascript" src="JQ_JS/jquery-3.3.1.js"></script>
<script type="text/javascript">$(function(){$("#name").blur(function() {var name = $("#name").val();if(name==""){$("#InspectName").html("不能为空 ");}else{$.ajax({type: "post",url: "RegistServlet?action=VerName",data: "name="+$("#name").val(),//将表单系列化,将表单元素整体上传async:true,success: function(data){if(data=="1"){$("#InspectName").html("用户名已注册");}else{$("#InspectName").html("");}}});}});$("#mail").blur(function() {var mail = $("#mail").val();if(mail==""){$("#InspectMail").html("不能为空 ");}else{$.ajax({type: "post",url: "RegistServlet?action=VerMail",data: "mail="+$("#mail").val(),//将表单系列化,将表单元素整体上传async:true,success: function(data){if(data=="1"){$("#InspectMail").html("邮箱已注册 ");}else{$("#InspectMail").html("");}}});}});});</script>
</head><body style="text-align: center;"><form action="${pageContext.request.contextPath}/RegistServlet" method="post" enctype="multipart/form-data"><table align="center" border="1" cellspacing="0"><tr><td>头像:</td><td colspan="2"><input type="file" name="myHead"></td></tr><tr><td>用户名:</td><td><input type="text" name="name" id="name" /></td><td id="InspectName" style="color:red;"></td></tr><tr><td>邮箱:</td><td><input type="text" name="mail" id="mail" onblur="InspectMail()"></td><td id="InspectMail" style="color:red;"></td></tr><tr><td>密码:</td><td colspan="2"><input type="password" name="password"></td></tr><tr><td>爱好:</td><td colspan="2"><input type="checkbox" name="hobby" value="吃">吃<input type="checkbox" name="hobby" value="喝">喝<input type="checkbox" name="hobby" value="拉">拉<input type="checkbox" name="hobby" value="撒">撒<input type="checkbox" name="hobby" value="睡">睡</td></tr><tr><td colspan="3"><input type="submit" value="提交"><input type="reset" value="重置"></td></tr>              </table></form>
</body>
</html>

登录页面(Login)

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body style="text-align: center;"><form action="${pageContext.request.contextPath}/LoginServlet" method="post"><table border="1" width="600px" cellspacing="0" align="center"><tr><td>用户名:</td><td><input type="text" name="name"></td></tr><tr><td>密&nbsp;码:</td><td><input type="password" name="password"></td></tr><tr><td colspan="2"><input type="submit" value="登录"><input type="reset" value="重置"></td></tr></table>      </form>
</body>
</html>

个人资料展示页面(PersonData)

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>个人资料</title>
</head>
<body style="text-align: center;"><table align="center" border="1" cellspacing="0"><tr><td>头像:</td><td colspan="2"><a href="${user.url}" download=""><img src="${user.url}" name="HeadPhoto" height="100" width="90"></a></td></tr><tr><td>用户名:</td><td>${user.name}</td></tr><tr><td>邮箱:</td><td>${user.email}</td></tr><tr><td>爱好:</td><td>${user.loves}</td></tr><tr><td colspan="2"><input type="button" onclick="window.location.href='HomePage.jsp'" value="返回"></td></tr>                </table>
</body>
</html>

WEB:注册登录功能与Jquery唯一性验证相关推荐

  1. 8、ABPZero系列教程之拼多多卖家工具 添加手机注册登录功能

    现在网站基本都用手机注册,很少用邮箱注册,本篇内容比较多,代码我会尽量加备注,有些操作需要连续添加几个文件才不报错,如果VS显示错误,请继续后续步骤. 前面已经有一篇文章讲到集成短信发送模块:http ...

  2. 一步步开发自己的博客 .NET版(3、注册登录功能)

    前言 这次开发的博客主要功能或特点:     第一:可以兼容各终端,特别是手机端.     第二:到时会用到大量html5,炫啊.     第三:导入博客园的精华文章,并做分类.(不要封我)     ...

  3. JavaWeb实现注册登录功能并将用户数据写进数据库(商城系统第一部分)

    JavaWeb实现注册登录功能并将用户数据写进数据库(商城系统第一部分) 声明:本人并非项目原创,该商城系统原创来自撩课高新强老师:https://study.163.com/course/intro ...

  4. 01: 实现注册登录功能

    目录:抽屉项目之js最佳实践 01: 实现注册登录功能 02: 实现发布帖子功能 03: 将帖子展示到页面.点赞 04: 层级评论 目录: 1.1 显示.隐藏 "登录/注册" 菜单 ...

  5. javaweb实现简单注册登录功能——(注册)

    这里实现的注册登录功能是在学习了javaweb课程之后做的一个大作业中的内容,没有涉及任何框架技术,都是基础知识凑成的✌.适合刚开始接触web的孩纸. --首页: 首页代码: <%@ page ...

  6. 手机短信验证码一键注册登录功能开发 2

    1. 上一篇我们开发好了 短信验证码的发送功能, 接下来开发 我们的 一键登录注册功能 2. 有前端的视图我们可以看到, 传入的参数为手机号和验证码,我们用BO对其进行统一的封装,同时使用valid ...

  7. PHP+ mysql实现注册登录功能

    首先打开XAMPP的mysql,创建一个adatabase数据库,再创建一个user的数据表. login.html <!DOCTYPE html> <html lang=" ...

  8. 登录功能中发送邮箱验证的简单使用

    登录功能中发送邮箱验证的简单使用 java开发中常用的邮箱相关的就是给邮箱发送验证码,发送验证码在java中使用javamail,它提供了一套发送和接收功能的标准,支持协议:smtp,pop3,ima ...

  9. 微信小程序-注册登录功能-本地数据保存-页面数据交替

    Title:微信小程序-注册登录功能-本地数据保存-页面数据交替 完美-小程序登录注册功能.rar-- 访问码:yqa5 1.主页面 主页面login.js代码 // pages/login/logi ...

最新文章

  1. PL/SQL Developer 连接远程oracle的方法
  2. OGRE例子:Demo_Ocean 源码解析
  3. windows下搭建iphone开发环境
  4. MyBatis 【返回自增id】
  5. python threading编程中的LOCK和RLOCK(可重入锁)
  6. Google Adsense的技巧、诀窍和秘密
  7. three.js 文本_使用Three-bmfont-text在Three.js中创建文本
  8. 《凤凰项目——一个IT运维传奇故事》关于运维员的那些事
  9. 首旅如家新生活方式空间品牌--如咖啡正式落地
  10. Spring AOP 之 Introductions
  11. 基于递归回溯算法实现八皇后游戏问题
  12. centos搭建proxypool
  13. leaflet加载接入腾讯矢量、腾讯影像地图(leaflet篇.4)
  14. Spring 事务源码(2)—<tx:annotation-driven/>事务标签源码解析
  15. Intel GPA 参数
  16. 扫地机器人朋友圈文案_扫地机器人方案
  17. 项目没有亮点,如何应对面试官的提问?
  18. 中国现有国家级风景名胜区
  19. 如何将万能地图下载器下载的卫星地图加载到Autodesk InfraWorks 360内进行道路规划设计
  20. 无人机探测雷达2022年全球行业分析报告

热门文章

  1. 芯片和cpu制造工艺流程-详细版
  2. centos7 安装gcc boost 、cmake
  3. 关于开行周口—北京西K402/1次旅客列车的公告
  4. html5 表单必填项,javascript - HTML5表单必填属性。 设置自定义验证消息?
  5. ubuntu切换root用户出错:sudo:无法切换为root组ID:不允许的操作
  6. sh命令 /Linux中执行shell脚本的4种方法总结
  7. 索尼PS VR售价大降,有利其持续保持领先优势
  8. 部署虚拟环境安装Linux系统
  9. Mysql排序与分类汇总实践
  10. 苹果更新系统服务器,苹果发布紧急公告:11月3日前部分设备不更新系统将停止部分服务...