jsp中生成图形验证码 方法2利用在servlet里面来生成验证码

jsp生成图片验证码并进行校验 这里用到的是itcast-tool jar包实现的图片验证码。 1.编写jsp页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta char... 阅读详情

jsp页面代码如下: 
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 
<form action="LoginServlet" method="post"> 
用   户 名:<input type=text name=username><br> 
密 码:<input type=password name=pwd><br> 
请输入验证码:<input type=text name=check><img src="ImgServlet" id="img"><a href="javaScript.:change()">看不清,换张</a><br> 
<input type=submit value="登录"> <input type=reset value="重置"> 
</form> 
<script type="text/javascript"> 
function change() 
{ 
document.all.img.src="ImgServlet"; 
} 
</script> 

 

下面便是在servlet里面来生成验证码了.代码如下: 
package www.wnetw.net.img; 
import java.awt.Color; 
import java.awt.Graphics; 
import java.awt.image.BufferedImage; 
import java.io.IOException; 
import java.util.Random; 
import javax.servlet.ServletException; 
import javax.servlet.ServletOutputStream; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import com.sun.image.codec.jpeg.JPEGCodec; 
import com.sun.image.codec.jpeg.JPEGImageEncoder; 
public class ImgServlet extends HttpServlet { 

//得到随机字符的方法 
public char[] getRand() 
{ 
char[] rand=new char[4]; 
String str="0123456789qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM"; 
for(int i=0;i<4;i++) 
{ 
Random rd=new Random(); 
int index=rd.nextInt(str.length()); 
//通过下标获取字符 
rand=str.charAt(index); 
} 
return rand; 
} 
public void doGet(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException { 
//接收图片类型 
response.setContentType("image/jepg"); 
//创建字节流 
ServletOutputStream sos=response.getOutputStream(); 
//设置缓冲区 
BufferedImage img=new BufferedImage(60,30,4); 
//在缓冲区中绘图 
Graphics g=img.getGraphics(); 
//调方法,得到随机字符 
char[] rand=this.getRand(); 
//保存于session中,以便其它页面可用 
request.getSession().setAttribute("rand", new String(rand)); 
//干拢线 
g.setColor(Color.red); 
g.drawLine(new Random().nextInt(60), new Random().nextInt(60), 
new Random().nextInt(20), new Random().nextInt(20)); 
g.drawLine(new Random().nextInt(60), new Random().nextInt(60), 
new Random().nextInt(60), new Random().nextInt(20)); 
g.drawLine(new Random().nextInt(80), new Random().nextInt(60), 
new Random().nextInt(50), new Random().nextInt(20)); 
//画背景色 
g.drawRect(0, 0, 60, 30); 
g.setColor(Color.blue); 

//设置前景色 
g.setColor(Color.green); 
g.drawString(""+rand[0], 5, 20); 
g.drawString(""+rand[1], 20, 10); 
g.drawString(""+rand[2], 30, 15); 
g.drawString(""+rand[3], 50, 20); 
//关闭 
g.dispose(); 

JPEGImageEncoder code=JPEGCodec.createJPEGEncoder(sos); 
code.encode(img); 

} 

public void doPost(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException { 
this.doGet(request, response); 
} 
} 

 

 

 

好,验证码生成. 
先写个数据库***作类,理所当然有两个字段,用户名和密码咯.(name,pwd) 
数据库简单代码如下: 
package www.wnetw.net.db; 
import java.sql.*; 
public class DataBase { 
private Connection con; 
private Statement st; 
private ResultSet rs; 
//获得连结 
public Connection getCon() 
{ 
String classStr="com.microsoft.jdbc.sqlserver.SQLServerDriver"; 
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=t74"; 
try { 
Class.forName(classStr); 
} catch (ClassNotFoundException e) { 
e.printStackTrace(); 
} 
try { 
con=DriverManager.getConnection(url,"sa",""); 
} catch (SQLException e) { 
e.printStackTrace(); 
} 
return con; 
} 
//判断用户名与密码是否正确 
public boolean isLogin(String name,String pwd) throws SQLException 
{ 
if(con==null) 
con=this.getCon(); 
String sql="select *from Login"; 
st=con.createStatement(); 
rs=st.executeQuery(sql); 
while(rs.next()) 
{ 
String dbname=rs.getString("name"); 
String dbpwd=rs.getString("pwd"); 
if(dbname.equals(name)&&dbpwd.equals(pwd)) 
{ 
return true; 
} 
} 
return false; 
} 
} 

 

接下来该写什么?当然又是servlet咯,不信,看看代码便知道,如下: 
package www.wnetw.net.img; 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.sql.SQLException; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
public class LoginServlet extends HttpServlet { 
public void doGet(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException { 
// 设置编码 
request.setCharacterEncoding("utf-8"); 
response.setContentType("text/html;charset=utf-8"); 
PrintWriter out=response.getWriter(); 
// 得到值 
String name = request.getParameter("name"); 
String pwd = request.getParameter("pwd"); 
// 得到验证码 
String check = request.getParameter("check");//输入 
String rand = (String) request.getSession().getAttribute("rand");// 随机产生 
// 实例化数据库***作类 
com.db.DataBase db = new com.db.DataBase(); 
boolean mark = false; 
try { 
mark = db.isLogin(name, pwd); 
} catch (SQLException e) { 
e.printStackTrace(); 
} 
if (mark == true && check.equals(rand)) { 
out.print("成功"); 
} else { 
out.print("失败"); 
} 
} 
public void doPost(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException { 
this.doGet(request, response); 
} 
}

 

Java图形验证码开源软件SimpleCaptcha Java中有很多开源xi 阅读详情

相关推荐

简单实现动态验证码的JSP示例教程

JSP(Java Server Pages)是一种用于开发动态Web应用程序的技术,自1999年被Sun Microsystems公司推出以来,已成为构建企业级Web应用程序的重要工具之一。JSP允许开发者将Java代码直接嵌入到HTML页面中,从而简化了Web页面的开发。通过JSP,开发者可以实现页面逻辑与页面内容的分离,利用服务器端的JavaBean和自定义标签来生成动态内容。JSP页面被编译成Servlet执行,这一点对于理解其运行机制至关重要。

weixin_42594419的博客 1561

使用JSP+Servlet实现图片验证码

使用JSP+Servlet制作图片验证码

邓威的博客 2万+

SAP Workflow 工作流开发步骤总结

SAP WORKFLOW

qq_36952606的博客 5095

html中img标签引用后台Servlet的验证码图片展示不出来,但是直接访问servlet接口可以正常展示

html中img标签引用后台Servlet的验证码图片展示不出来,但是直接访问servlet接口可以正常展示

weixin_51285375的博客 1183

基于Arduino的智能垃圾桶

通过本次简单的Arduino智能垃圾桶小实验可以快速了解Arduino的基本用法 1、材料准备 Arduino UNO HC-SR04超声波模块 SG90舵机 杜邦线 电源 电脑 2、代码分析 电机的控制 #include<Servo.h> #define duoji D5 Servo myduoji; void setup() { myduoji.attach(duoji); //舵机连接 Serial.begin(115200); } void loop() { myduoji.w

weixin_41679960的博客 1万+

香橙派5B-RK3588-NPU内核升级至0.9.8:RKLLM多模态部署实战

本文详细介绍了香橙派5B-RK3588设备NPU内核升级至0.9.8版本的完整流程,重点讲解了升级的必要性、两种升级方案(预编译包安装与自行编译内核)以及RKLLM SDK的安装配置。通过实战演示多模态模型转换与推理,显著提升AI计算性能,为嵌入式AI部署提供实用指南。

salt9的博客 1027

Servlet和JSP生成动态图片验证码

这是由Servlet和jsp代码生成的图片验证码 主要功能是可以实现在网页上生成一个图片验证码,通过点击事件可以进行动态的切换。 Servlet2.java文件 package MyServlet; import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.annotatio...

夏牧子的博客 347

【每天一个知识点】多视图子空间聚类(Multi-view Subspace Clustering)

本文深入解析了多视图子空间聚类技术,这是一种处理多源异构数据的先进方法。它通过融合多个数据视图(如文本、图像、网络结构)的共识与互补信息,学习统一的潜在子空间表示,从而获得比单一视图更鲁棒、准确的聚类结果。文章详细阐述了其核心思想、主流技术流派(如图融合、共同潜在子空间、张量及深度学习方法),并提供了Python实战代码与调优经验,适用于跨模态检索、生物信息学等多领域复杂数据分析。

weixin_29065015的博客 461

servlet生成验证码图片

com.rolia.learning.learningweb.validationcode.ValidationCodeServlet.java ValidationCodeServlet.java

Java之路 797

Reactor 响应式编程(第一篇:Reactor核心)

响应式:响应式编程: 全异步、消息、事件回调默认还是用当前线程,生成整个流、发布流、流操作.log();//只要不指定线程池,默认发布者用的线程就是订阅者的线程;

moments的博客 1573

【ArcGIS微课1000例】0068:ArcGIS加载world imagery高清卫星影像教程

本文介绍了如何在ArcGIS中加载World Imagery高清卫星影像作为谷歌影像的替代方案。通过添加ArcGIS Server并输入在线图集URL(https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer),即可连接并预览包含中国影像、青海湖、东方明珠等全球高清卫星图。该教程提供了详细的操作步骤图示,帮助用户快速获取优质底图数据,适用于地理信息分析和可视化应用。

智慧空间实验室 5420

基于Jsp,Servlet的图形验证码

基于Jsp,Servlet的图形验证码 关于图形验证码 其实图形验证码还是和JavaGUI有一定关系的,因为我们知道其实这是一个图片,而图片上的字符又需要存到session中。 代码如下: <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> &lt...

LOL_toulan的博客 411

【QT/C++】事件过滤器之基于重写 eventFilter 方法的多种常见应用场景及实现

Qt事件过滤器通过重写eventFilter方法实现多种实用功能:1)鼠标事件处理(点击全选文本、禁用滚轮、悬停提示);2)键盘事件处理(输入内容限制、快捷键提交);3)焦点事件处理(自动弹出下拉框、实时验证);4)绘图事件处理(自定义控件绘制);5)窗口事件处理(防止意外关闭、尺寸限制)。事件过滤器提供非侵入式的事件处理方案,相比传统子类化方式更灵活,通过installEventFilter安装到目标控件即可实现各种交互增强功能。

yuhuasheng1997的博客 1484

利用Servlet生成验证码

标签: servlet 验证码 it 分类: JavaEE jsp中验证码的使用 设计思路: 我们上网的时候经常可以看到,在登录某个网站的时候,在输入用户名和密码的同时,也需要输入验证码,这三项同时正确的时候,才允许登录。   验证码有效的防止用户利用机器人自动注册、登录、灌水。   什么是验证码?他的功能是什么?   验证码本质就是

w183705952的专栏 1207

精读204页华为的流程管理(文末附下载链接)

链接:https://pan.baidu.com/s/1eEwdBR5c0PIxkOrNhDZcGg?pwd=wha2 提取码:wha2 复制这段内容后打开百度网盘手机App,操作更方便哦。,以提升企业运营效率和竞争力,同时解决了诸多业务痛点,为华为的全球化发展提供了有力支撑。华为的流程管理对其发展起着关键作用,通过构建完善的流程体系,提升了企业运营效率与竞争力。华为的流程管理在企业发展中至关重要,其围绕。,并通过流程变革不断优化。在流程管理过程中,强调。构建了全面的流程体系。

cdfunlove的博客 283

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

基于jsp+servlet+js的图形验证码

jsp的图形验证码 servlet的生成图形验证码 package user; import java.awt.Color; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random; import javax.imageio.ImageIO; import javax.servlet.ServletException; im

qq_42998270的博客 208

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Jsp生成页面验证码的方法[附代码]

image.jsp------------------------------生成随机验证码图片的Jsp页面 代码如下: <%@ page contentType="image/jpeg" import="java.awt.*, java.awt.image.*,java.util.*,javax.imageio.*" %> <%! Color getRandColor(int fc,int bc) { Random random = new Random(); if(fc>.

烟台-山子的博客 1722

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

JSP页面的验证码生成,验证

这里简单介绍最简单的JSP页面的验证码生成,验证

疯狂的暴走蜗牛的专栏 3610

jsp+servlet实现登陆验证码

jsp+servlet实现登陆验证码验证码的作用效果图验证码生成原理servlet在web.xml中的配置验证码图片显示登陆处理的servlet登陆失败提示流程总结其他常见的验证码 验证码的作用 避免暴力注册,登录,论坛灌水 效果图 验证码生成原理 使用Java图形界面技术AWT或者Swing生成验证码 import java.awt.Color; import java.awt.Font; ...

qq_31456559的博客 1891

给JSP页面添加验证码

在JSP页面中添加图形验证码

海洋之心 2万+

使用servlet生成验证码

servlet实现: 注意:验证码已放入到session对象中 package com.servlet; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import jav...

休对故人思故国,且将新火试新茶。诗酒趁年华 934

JSP生成图片验证码

  1。建立一个JSP页面(image.jsp),把下面的代码全部复制到image.jsp下。@   pagecontentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*"   %>Color   getRandColor(int   fc,int   bc)...{//给定

深蓝忧郁的技术空间 3383

JSP+Servlet通过验证码防止表单重复提交

在Web开发中,用户因网络延迟反复点击提交按钮会导致表单重复提交,给服务器带来压力。本文介绍如何使用JSP和Servlet结合验证码机制有效解决这一问题。通过生成动态验证码并校验,确保每次提交的唯一性,从而避免重复操作,提升系统稳定性与用户体验。

weixin_42594419的博客 753

jsp-servlet图像验证码

实现图像验证码类ImageValidateCode: package com.myhome; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import

学习笔记 1013

Java图形验证码生成源码解析

本文详细分析了一个Java图形验证码的实现代码,包含ValidateCode和ImgFontByte两个类,展示了如何通过AWT生成带干扰线的随机字符验证码,并结合JSP页面实现前端展示与刷新功能,适用于Java Web项目中的登录安全防护。

weixin_36303305的博客 1298

Servlet生成JSP页面验证码

1、JSP页面调用后台的Servlet页面来生成验证码 JSP页面部分代码,点击验证码图片能够刷新验证码: function Refresh() { document.getElementById("ImgCode").src="servlet/ImgCodeServlet?now="+new Date(); }

奚学长的工地 623
上一篇: jsp中生成图形验证码
下一篇: mysql5.1.7-beta-log和mysql-connector-java-5.0.5中文乱码的解决
pulybuffer
博客等级 码龄19年 3粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值