带验证码的登录效果图

登录成功时,记录用户名和访问次数

登录失败,弹出错误提示

方法一:应用request对象获取表单数据实现登录操作

代码结构:

index.jsp源码及详解:

当表单被提交时,数据会被提交到check.jsp中去,此处表单的提交实在js的mycheck()方法中完成的。

Stringintsum=intmethod+""+intmethod2+intmethod3+intmethod4;此处+""是为了将int数据类型转为String类型。

登录页面

functionmycheck(){//定义mycheck()方法

if(form1.UserName.value==""){

alert("用户名不能为空!");

form1.UserName.focus();return;

}if(form1.PWD.value==""){

alert("密码不能为空!");

form1.PWD.focus();return;

}if(form1.yanzheng.value==""){

alert("验证码不能为空!");

form1.yanzheng.focus();return;

}

form1.submit();

}

用户名:
密    码:
验证码:

//获取0~9的随机数intintmethod=(int)((((Math.random())*11))-1);intintmethod2=(int)((((Math.random())*11))-1);intintmethod3=(int)((((Math.random())*11))-1);intintmethod4=(int)((((Math.random())*11))-1);//加入""是为了让int类型转为String类型。//int类型和字符串类型相加,为字符串类型.Stringintsum=intmethod+""+intmethod2+intmethod3+intmethod4;%>

">

.gif">

.gif">

.gif">

.gif">

check.jsp源码及详解:

此处有两种页面的跳转方式

jsp中:response.sendRedirect("main.jsp");

js中:window.location.href='index.jsp';

使用requst.getParameter("name值")获取表单提交的数据

使用session.setAttribute("name", name),是将name保存到session范围内“name”变量中。

使用session.getAttribute("name")是从name中取出之前保存的数据。

response.sendRedirect("目标路径");实现页面的跳转。

//设置编码方式,防止中文乱码

request.setCharacterEncoding("UTF-8");//使用requst.getParameter("")获取表单提交的数据Stringname=request.getParameter("UserName");Stringpassword=request.getParameter("PWD");Stringyanzheng=request.getParameter("yanzheng");Stringmessage;if(!yanzheng.equals(request.getParameter("vcode"))){

message="验证码输入有误";

}else if(name.equals("mr")&&password.equals("123456")){

message="登录成功";//将name保存到session范围内“name”变量中,使用get方法可获取name

session.setAttribute("name", name);//成功页面跳转

response.sendRedirect("main.jsp");

}else{

message="用户名或密码错误!";

}%>

window.location.href='index.jsp';

验证中...

main.jsp的源码及详解:

巧妙使用session.setAttribute()和session.getAttribute()实现页面计数。

session.getAttribute("name").toString():由于get方法返回的是Object类型,将其赋值给String类型需要进行强制类型转换或调用toString()方法。

登录成功!

number=1;

}else{

number=Integer.parseInt(session.getAttribute("number").toString());

number=number+1;

}

out.print("您是第"+number+"次访问");

session.setAttribute("number", number);%>

方法二:应用JavaBean获取表单数据实现登录操作

代码结构

javaBean代码:

JavaBean规范:

(1)JavaBean 类必须是一个公共类,并将其访问属性设置为 public  ,如: public class user{ …}

(2)JavaBean 类必须有一个空的构造函数:类中必须有一个不带参数的公用构造器,例如:public User() {…}

(3)一个javaBean类不应有公共实例变量,类变量都为private  ,如: private int id;

( 4 )javaBean属性是具有getter/setter方法的成员变量。

packagecom.wgh;public classUserBean {private String name="";private String pwd="";private String yanzheng="";private String vcode="";publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}publicString getPwd() {returnpwd;

}public voidsetPwd(String pwd) {this.pwd =pwd;

}publicString getYanzheng() {returnyanzheng;

}public voidsetYanzheng(String yanzheng) {this.yanzheng =yanzheng;

}publicString getVcode() {returnvcode;

}public voidsetVcode(String vcode) {this.vcode =vcode;

}

}

index.jsp源码

当表单被提交时,数据会被提交到check.jsp中去,此处表单的提交实在js的mycheck()方法中完成的。

正在登录

functionmycheck(){if(form1.name.value==""){

alert("用户名不能为空!");

form1.name.focus();return;

}if(form1.pwd.value==""){

alert("密码不能为空!");

form1.PWD.focus();return;

}if(form1.yanzheng.value==""){

alert("验证码不能为空!");

form1.yanzheng.focus();return;

}

form1.submit();

}

用户名:
密    码:
验证码:

intintmethod=(int)((((Math.random())*11))-1);intintmethod2=(int)((((Math.random())*11))-1);intintmethod3=(int)((((Math.random())*11))-1);intintmethod4=(int)((((Math.random())*11))-1);Stringintsum=intmethod+""+intmethod2+intmethod3+intmethod4;%>

">

.gif">

.gif">

.gif">

.gif">

check.jsp源码

实例化javaBean对象,对象名为user

设置user对象的值,将表单中的数据写入javabean中去。使用property="*"要保证表单中各元素的name值与javabean中定义的属性名保持一致。

用户名与密码验证中...

Stringyanzheng=user.getYanzheng();Stringname=user.getName();Stringpwd=user.getPwd();Stringvcode=user.getVcode();Stringmessage;if(!yanzheng.equals(vcode)){

message="验证码输入有误!";

}else if(name.equals("mr")&&pwd.equals("123456")){

message="登陆成功";

session.setAttribute("name", user.getName());

response.sendRedirect("main.jsp");

}else{

message="用户名或密码错误!";

}%>

window.location.href('index.jsp');

main.jsp源码

登录成功!

number=1;

}else{

number=Integer.parseInt(session.getAttribute("number").toString());

number=number+1;

}

out.print("您是第"+number+"次访问");

session.setAttribute("number", number);%>

java登录代码带验证码实现_两种方法实现带验证码的用户登录相关推荐

  1. Java构造和解析Json数据的两种方法详解一

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...

  2. [转]DES加密 java与.net可以相互加密解密两种方法

    [转]原文地址:http://jumpman.javaeye.com/blog/605996 DES加密 java与.net可以相互加密解密两种方法 文章分类:Java编程 通过这个方法可以实现jav ...

  3. Java学习笔记:创建线程的两种方法

    Java学习笔记:创建线程的两种方法 一.预备工作 1.创建Maven项目ThreadDemo 2.在pom.xml里添加依赖 二.继承Thread类创建子线程

  4. 烽火HG680-KB_Hi3798MV310_当贝桌面_强刷及免拆_两种方法-卡刷固件包

    烽火HG680-KB_Hi3798MV310_当贝桌面_强刷及免拆_两种方法-卡刷固件包-内有短接点及教程 特点: 1.适用于对应型号的电视盒子刷机: 2.开放原厂固件屏蔽的市场安装和u盘安装apk: ...

  5. java 隐藏标题栏_两种方法一句代码隐藏Activity的标题栏

    把Activity的标题栏隐藏有两种方法.一种是在在Activity里面设置javacode.还有一种是在项目的清单文件AndroidManifest.xml中设置模版样式. 一.在Activity中 ...

  6. java 把图片插入窗体,JAVA JFrame窗体添加背景图像的两种方法

    首先还是要了解框架JFrame中的层次结构.JFrame中的层次分布及相对关系是:最底层是:JRootPane:第二层是:JlayerPane:最上层就是ContentPane,也正是我们常说的内容面 ...

  7. easyui关闭dialog后刷新父页面_两种方法WordPress批量打开、关闭文章评论功能

    WordPress没有一键打开和关闭已发表文章评论的功能.只是是否允许在新发表的文章发表评论,或者自动关闭发布多少天前的文章的评论功能.由于一些需要,我们需要关闭最初在网站上打开的WordPress文 ...

  8. java hashmap 去重_java数组去重的两种方法

    我们对于数组元素的使用,有时候在创建数组的初期,并没有考虑过元素的重复问题.当我们想要不重复元素的数组时,就要再进行一步去重的工作.数组的去重有两种方法可以实现,一个是循环比较,另一个是hashSet ...

  9. android沉浸模式代码,Android沉浸式的两种方法

    隐藏状态栏 一个Android应用程序的界面上其实是有很多系统元素的,观察下图: 而打造沉浸式模式的用户体验,就是要将这些系统元素全部隐藏,只留下主体内容部分. 怎么做呢,郭霖的一个Function搞 ...

最新文章

  1. 多伦多大学和清华大学创新创业论坛,数据科学研究院建言献策
  2. C#3.0扩展方法[转]
  3. Swift iOS : 内存管理
  4. Hive环境搭建启动报错
  5. C语言中scanf和printf格式化输入输出
  6. redhat7 配置xmanager登陆
  7. 打印机提示服务器状态未知,win7打印机提示rpc服务器不可用怎么办
  8. 失意时,要耐得住寂寞
  9. apollo决策规划学习--慢速障碍物超车
  10. 大三计算机组成原理深度学习——机器字长、存储单元、存储字长、存储容量,存储体的概念
  11. 8.称呼/no/not/meet/nice/of/倒装句/介绍他人的方式/see
  12. Pod状态异常排查问题集-pending状态排查思路
  13. 电脑艺术设计是否属计算机专业,电脑艺术设计属于计算机专业吗
  14. 安徽师范大学898专硕复习讲义
  15. 金融风控-贷款违约预测
  16. 我的2020年终总结
  17. 下载码是什么,下载码怎么用,下载码,下载码在哪,下载码完全使用手册,下载码在这,下载码下载
  18. 各大游戏公司面经笔试题汇总(资源来自网络)(实时更新)
  19. [Element Migrating][ElInput][Attribute]: icon is removed, use suffix-icon / prefix-icon instead.
  20. OpenGL之入门学习

热门文章

  1. oracle按相同年份_通过oracle建立Bsv的链上二元期权合约
  2. IPTV、数字电视和网络电视三者的区别与联系
  3. 年中必看!手把手教你职场晋升之道!
  4. tensorflow2读取数据P4: tf.data.TFRecordDataset创建Dataset
  5. 苹果闪照如何第二次查看_六款苹果已购游戏共享【博德之门1+2】【战地霸主+搏击长空】【阿尔托的冒险+奥德赛】IOS帐号分享...
  6. 清华邓志东:城市智能路网新基建催生路端世界级企业
  7. Mybatis特殊值Enum类型转换器-ValuedEnumTypeHandler
  8. js获取当前时间并转化格式
  9. 解决poi设置excel列宽精度丢失问题
  10. GitHub上排名前100的Android开源库(201603)