三层架构(MVC)实现简单登陆注册验证(含验证码)
前言在我的上一篇微博里我已经提出了登陆的方法,当时我采取的是纯servlet方式,因为当时刚接触到servlet,正好网上没有这方面的全面讲解,所以我就发飙了。不过在现实生产中我们大多采用的三层架构。所谓三层架构(web层+service层+dao层)。下面我就详细讲解一下
一、dao层——数据访问层
- 模拟数据库:依然像钱一张一样,我们无法将数据库拿到文档中,所以我还是模拟了数据库(Dao).只不过这里我用的是xml文件来实现数据库
<?xml version="1.0" encoding="UTF-8" ?>
<users>
<user username="Admin" password="Admin" nickname="Admin" email="1@qq.com"></user>
<user username="张新华" password="123" nickname="烟花散尽13141" email="870775401@qq.com"></user>
</users>然后再数据库中我实现了查找了和增加功能,查找呢又细分通过用户名查找和通过用户名密码查找,前者是查找后者则偏向于验证。通过后者可以验证用户名和密码是否匹配,这两个函数在后面的web层中起到关键因素。
通过用户名查找:
- `public User FindUserByUsername(String username)
{
Document dom=XmlDaoUtil.GetDom();//�õ�dom����
Element root=dom.getRootElement();
List list = root.selectNodes(“//user[@username=’”+username+”’]”);
if(list.size()>0)
{
Element userele=list.get(0);
User user=new User();
user.setUsername(userele.attributeValue(“username”));
user.setPassword(userele.attributeValue(“password”));
user.setNickname(userele.attributeValue(“nikename”));
user.setEmail(userele.attributeValue(“email”));
return user;
}
else
{
return null;
}
}`- `public User FindUserByUsername(String username)
通过用户名和密码进行验证
- public User FindUserByUNameAndPsw(String username,String password)
{
Document dom=XmlDaoUtil.GetDom();//�õ�dom����
Element root=dom.getRootElement();
List list = root.selectNodes(“//user[@username=’”+username+”’ and @password=’”+password+”’]”);
if(list.size()>0)
{
Element userele=list.get(0);
User user=new User();
user.setUsername(userele.attributeValue(“username”));
user.setPassword(userele.attributeValue(“password”));
user.setNickname(userele.attributeValue(“nikename”));
user.setEmail(userele.attributeValue(“email”));
return user;
}
else
{
return null;
}
}- public User FindUserByUNameAndPsw(String username,String password)
- 添加用户
public void AddUser(User user)
{
Document dom=XmlDaoUtil.GetDom();
Element root=dom.getRootElement();//��ȡ���ڵ�//����һ��Ԫ�ض���
Element userele=DocumentHelper.createElement(“user”);
Attribute attr1=DocumentHelper.createAttribute(userele, “username”, user.getUsername());
Attribute attr2=DocumentHelper.createAttribute(userele, “password”, user.getPassword());
Attribute attr3=DocumentHelper.createAttribute(userele, “nickname”, user.getNickname());
Attribute attr4=DocumentHelper.createAttribute(userele, “email”, user.getEmail());userele.add(attr1);
userele.add(attr2);
userele.add(attr3);
userele.add(attr4);root.add(userele);
}
三层架构(MVC)实现简单登陆注册验证(含验证码)的更多相关文章
- Python tkinter 实现简单登陆注册 基于B/S三层体系结构,实现用户身份验证
Python tkinter 实现简单登陆注册 最终效果 开始界面 注册 登陆 源码 login.py # encoding=utf-8 from tkinter import * from ...
- tornado框架&三层架构&MVC&MTV&模板语言&cookie&session
web框架的本质其实就是socket服务端再加上业务逻辑处理, 比如像是Tornado这样的框架. 有一些框架则只包含业务逻辑处理, 例如Django, bottle, flask这些框架, 它们的使 ...
- c#利用三层架构做一个简单的登录窗体
就个人而言,三层架构有点难理解,不知道该如何下手,各层与各层之间怎么调用 最近一直在研究三层架构,经过网上学习与多方打听写一下自己的心得.有不足之处,可以评论和私聊探讨 言归正传: 三层架构(3-ti ...
- 三层架构下实现用户登陆C#
上篇文章讲到三层.接下来就通过一个实例详细的看怎么用三层实现用户登陆界面. 一.Model实体(LoginModel): namespace LoginModel { //加入类:UserInfo M ...
- asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(一)—— 手把手教你创建第一个三层架构+mvc的asp.net项目
下面开启项目 1. 打开vs2010-文件-新建项目 2. 先创建一个空的解决方案: 选择其他项目类型-visual studio 解决方案-空白解决方案(默认.NET Framework 4),项目 ...
- 利用python实现简单登陆注册系统
#!/usr/bin/env python # -*- coding:utf-8 -*- def login(username,password): ''' :param username:用户名 : ...
- html+css+js实现简单登陆注册页面
先看一下最终效果,登陆和注册 背景图片: 附源码: login.html <!DOCTYPE html> <html lang="en"> <head ...
- 浅析MVC模式与三层架构的区别01
三层架构和MVC是有明显区别的,MVC应该是展现模式(三个加起来以后才是三层架构中的UI层)三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI ...
- MVC模式与三层架构的区别
之前总是混淆MVC表现模式和三层架构模式,为此记录下. 三层架构和MVC是有明显区别的,MVC应该是展现模式(三个加起来以后才是三层架构中的UI层) 三层架构(3-tier application) ...
随机推荐
- scrapy实战9动态设置ip代理从数据库中随机获取一个可用的ip:
在目录下创建tools(python package) 在tools中创建crawl_xici_ip.py文件写入代码如下: #coding=utf-8 import requests from sc ...
- 网络下载器 迅雷大众版 v7.9.42.5050 精简绿色版
下载地址:点我 基本介绍 迅雷大众版是一款采用了先进的超线程技术基于网格原理,能够将存在于第三方服务器和计算机上的数据文件进行有效整合,通过这种先进的超线程技术,用户能够以更快的速度从这些第三方节点平 ...
- 谷歌浏览器 Google Chrome 70.0.3538.102 便携版
oogle Chrome 是由Google开发的一款设计简单.运行高效.支持扩展的浏览器,它基于高速WebKit/Blink内核和高性能JavaScript V8引擎,在支持多标签浏览的基础上,提供顺 ...
- ASP.NET Core Web Api之JWT(一)
前言 最近沉寂了一段,主要是上半年相当于休息和调整了一段时间,接下来我将开始陆续学习一些新的技术,比如Docker.Jenkins等,都会以生活实例从零开始讲解起,到时一并和大家分享和交流.接下来几节 ...
- Coder必须自废的两样神功
Coder必须自废的两样神功 大理段氏以一阳指神功驰名天下.奉六脉宝经,立天龙佛院:凭借数百载基业威名,与嵩山少林.终南全真分庭抗礼:乃宋代中华武术三大派系之一. 二指禅是一种鲜为人知的秘传功法,通过 ...
- python连接greenplum_postgresql
1. 场景描述 使用python连接greenplum或者postgresql. 2. 解决方案 2.1 真实代码 2.1.1 调用类 import dbgp as dbgp # 执行 def exe ...
- Greenplum客户端访问控制
1. 问题描述 Greenplum默认是对客户端不开放的,即客户端要访问Greenplum数据库,需要首先开通权限. 2. 解决方案: 2.1.安装greenplum-cc-web控制台. Gp的 ...
- 整型,布尔值,字符串详解,for语句 练习
2019 年 7 月 8 日 1.将今天的课上的代码敲一遍,然后整理笔记 已完成 2.有变量name = "aleX leNb" 完成如下操作: 移除 name 变量对应的值两边的 ...
- 最全caffe安装踩坑记录(Anaconda,nvidia-docker,Linux编译)
Anaconda,nvidia-docker,Linux三种方式安装caffe 1.Anaconda安装caffe 1.首先安装anaconda 2.创建虚拟环境(python2.7) conda c ...
- MTSC2019第五届移动互联网测试开发大会PPT下载
关注公众号「软件测试大本营」后台回复「MTSC」或「测试开发大会」即可获取云盘下载地址及提取码. 注:PPT文件版权归相关撰写人所有,仅供学习交流,请勿用于任何商业用途,谢谢 前不久在北京举办了第五届 ...