【皇甫】? 易买网_登录模块 上

  指导老师:北大青鸟五道口 原玉明

  先附张效果图:

需要掌握知识点:aJAX和layer 验证码

知识掌握:Ajax

AJAX不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。

使用Javascript向服务器提出请求并处理响应而不阻塞用户!核心对象XMLHTTPRequest。通过这个对象,您的 JavaScript 可在不重载页面的情况与Web服务器交换数据。

AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。

AJAX 可使因特网应用程序更小、更快,更友好。

AJAX 工作原理

AJAX 是一种独立于 Web 服务器软件的浏览器技术。 AJAX 基于下列 Web 标准:

JavaScriptXMLHTMLCSS在 AJAX 中使用的 Web 标准已被良好定义,并被所有的主流浏览器支持。AJAX 应用程序独立于浏览器和平台。

Web 应用程序较桌面应用程序有诸多优势;它们能够涉及广大的用户,它们更易安装及维护,也更易开发。

不过,因特网应用程序并不像传统的桌面应用程序那样完善且友好。

通过 AJAX,因特网应用程序可以变得更完善,更友好。

layer:

layer,一个可以让你想到即可做到的web弹窗(层)解决方案(js组件),作者贤心(前端开发工程师)。layer侧重于用户灵活的自定义,为不同人的使用习惯提供动力。其意义在于,可以让您的页面拥有更丰富与便捷的操作体验,而您只需在调用时简单地配置相关参数,即可轻松实现。

与同类弹出层组件相比,layer的优势明显,她尽可能地在以更少的代码展现出更强健的功能。layer格外注重性能的提升,在多层模式的回调处理中,具备其它多数层组件所没有的“独立不冲突”(截至到2013年10月23,已有115859人次关注新版layer)。您完全可以大可放心地在页面弹出任意数量的层,她们彼此不妨碍。当你问及她的兼容时,layer必须告诉你,她兼容了一切浏览器,包括古老的ie6。

layer公开了如此多的接口(api),这使得您可以DIY太多您需要的风格,尤其是页面层模式,意味着必要时您可以完全抛弃layer的现有皮肤,并用你的思维去勾勒她的衣着。而问题在于,我必须中止“王婆卖瓜”的陈述。因为一切的不足或友好,都需要您在使用过程中去发现。

据不完全统计,截至到2013年8月30号,layer已服务于6000多家web平台。layer作为layUI库的成员,将一直致力于为web开发提供动力。

验证码:

package cn.weilengdeyu.easybuy.web;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.PrintWriter;

import java.util.Random;

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

public class Num 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 {
        //设置页面不缓存
        response.setHeader("Pragma", "No-cache");
        response.setHeader("Cache-Control", "no-cache");
        response.setDateHeader("Expires", 0);
        // 在内存中创建图象
        int width = 60, height = 20;
        BufferedImage image = new BufferedImage(width, height,
                BufferedImage.TYPE_INT_RGB);
        // 获取图形上下文
        Graphics g = image.getGraphics();
        //生成随机类
        Random random = new Random();
        // 设定背景色
        g.setColor(getRandColor(200, 250));
        g.fillRect(0, 0, width, height);
        //设定字体
        g.setFont(new Font("Times New Roman", Font.PLAIN, 18));
        //画边框
        //g.setColor(new Color());
        //g.drawRect(0,0,width-1,height-1);  

        g.setColor(getRandColor(160, 200));
        // 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
        for (int i = 0; i < 155; i++) {
            int x = random.nextInt(width);
            int y = random.nextInt(height);
            int xl = random.nextInt(12);
            int yl = random.nextInt(12);
            g.drawLine(x, y, x + xl, y + yl);
        }
        // 取随机产生的认证码(4位数字)
        String sRand = "";
        for (int i = 0; i < 4; i++) {
            String rand = String.valueOf(random.nextInt(10));
            sRand += rand;
            // 将认证码显示到图象中
            g.setColor(new Color(20 + random.nextInt(110), 20 + random
                    .nextInt(110), 20 + random.nextInt(110)));//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
            g.drawString(rand, 13 * i + 6, 16);
        }
        // 将认证码存入SESSION
        request.getSession().setAttribute("numrand", sRand);
        // 图象生效
        g.dispose();
        // 输出图象到页面
        ImageIO.write(image, "JPEG", response.getOutputStream());

    }
    public Color getRandColor(int fc, int bc) {//给定范围获得随机颜色
        Random random = new Random();
        if (fc > 255)
            fc = 255;
        if (bc > 255)
            bc = 255;
        int r = fc + random.nextInt(bc - fc);
        int g = fc + random.nextInt(bc - fc);
        int b = fc + random.nextInt(bc - fc);
        return new Color(r, g, b);
    }
}

时间: 2024-08-21 03:04:39

【皇甫】? 易买网_登录模块 上的相关文章

Window上python开发--4.Django的用户登录模块User

在搭建网站和web的应用程序时,用户的登录和管理是几乎是每个网站都必备的.今天主要从一个实例了解以下django本身自带的user模块.本文并不对user进行扩展. 主要使用原生的模块. 1.User模块基础: 在使用user 之前先import到自己的iew中.相当与我们自己写好的models.只不过这个是系统提供的models. from django.contrib.auth.models import User # 导入user模块 1.1User对象属性 User 对象属性:usern

【毕设】班级管理系统——登录模块

[登录模块介绍] 主要是处理用户的登录,赋予不同用户的不同权限.在登录模块中,系统在安全性上还增设了验证码和限制错误登录次数.主要目的是为了缓解服务器压力以及在一定程度上保护用户隐私. [界面设计] [登录错误图解] 限制错误登录次数功能说明:每名用户每次登陆初始时均有三次输入机会,一旦连续输错三次,则禁止再次输入,只能访问普通用户功能:若在一次或两次输错后但成功登陆者,输入机会将会再次重置为三次,以此类推. [程序流程图] [部分代码详解] private string UserA, PwA;

基于Servlet、JSP、JDBC、MySQL的登录模块(含过滤器的使用和配置)

接前文的注册模块,本篇是登录模块.主要包括登录主界面,和登录相关编写的LoginAction.LoginDao和LoginService.以及配置的Filter.下面按逻辑顺序记录详细过程和代码: 一.在前文的index目录点击登录按钮后,通过javascript跳转至LoginAction. <script type="text/javascript"> function login(){ var th = document.form1; if(th.username.v

安全性登录模块开发

1.非安全性登录模块开发 安全隐患:数据明文,数据库被荡下来不安全,不能明文存储数据明文,数据库被荡下来不安全,不能明文存储明文传输,中间窃听,就关注传输过程的加密.wireshark 2.安全加固1 摘要处理:在MySQL中对数据摘要处理sql语句:sha update userinfo(表名) set password = sha(password) md5 update userinfo set password = MD5(password) 比sha短 在jsp中应用md5校验数据 i

基于localStorge开发登录模块的记住密码与自动登录

前沿||我是乐于分享,善于交流的鸟窝 先做写一篇关于登录模块中记住密码与自动登录的模块.鸟窝微信:jkxx123321 关于这个模块功能模块的由来,这是鸟大大的处女秀,为什么这么说呢?一天在群里,一个哥们说有私活,开发一个****模块,我那天手痒痒就和他聊了两句,然后,就决定给她做这个模块了,和他谈了谈交付时间,他说最迟两天,然后谈了谈加个,最后达成,500¥!!!这个模块其实第一天晚上我就开发出来了,那时我给他微信说,功能模块开发ok了,要不要远程查看一下,没问题的话就交了,一会他回我,好了就

(转).net程序员转战android第三篇---登录模块之静态登录

这一篇我将分2个部分记录登录界面,第一部分是静态登录, 这部分将如何从界面布局.控件使用.文件关系.数据验证.登陆实现等5小块记录. 第二部分是动态登录,这块会基于上面的4小块,在数据验证不是静态数据, 而是通过WebService获取网络数据,然后解析网络数据,验证成功在进行文件关联,然后页面跳转,最后实现自动登陆; 需求分析 如图所见,对于一个程序员来说,不管你是做android\.NET\IOS,如果让你来做上图效果, 大家都会明白从哪里入手. 1:界面布局(分为3块,顶部标题栏.表单提交

如何教你用python 3 写简单的登录模块

一.首先,我们要先定一个需求,以方便我们去设计程序逻辑. 1.对帐号密码进行基本的判断,如果输入帐号密码正确的话,则提示欢迎信息. 2.如果对账户密码输错的情况,进行提示,让用户重新输入 3.输入超过3次错误,则程序自动退出 4.用户名或者密码为空的话,提示输入不能为空,请重新输入 二.理清程序逻辑 1.对需求整合下,设计下大致的框架. 比如说在超过3次输入错误的情况下,程序退出,以及对各种情况的判断,我们可以得出 这简单的登录模块 主要是用 while 语句 和 if 语句来写. 这是 对 输

spring boot 项目登录模块之身份验证

最近领导安排做一个微餐厅项目,需要做几个网页来管理数据,首先要写一个登录模块,主要关注登录成功后session中数据的存放与校验,以及拦截器. 在网上找了挺多,找到了一篇比较简单易懂的http://blog.didispace.com/springbootsecurity/ 下面是我按照文章上做的过程: 首先添加Spring Security依赖,然后编写配置类配置会被拦截的请求和不会被拦截的请求,拦截器就写好了,很简单.

Flask10 登录模块、表单框架、表单渲染、表单验证、bookie、请求之前钩子、g对象、编写装饰器

from flask import Flask from flask import request from flask import render_template from flask_wtf import CSRFProtect as WTF # 利用表单类去渲染模板时需要用到 from forms import LoginForm app = Flask(__name__) WTF(app) # 在app上注册一个 WTF (所有的flask插件都必须进行注册) app.config.f