javaWeb验证码
来源:互联网 发布:合并两个排序数组js 编辑:程序博客网 时间:2024/05/24 05:01
在web开发中,我们经常会用到,验证码的用法。现在就给大家写一个例子。
注:利用到的技术:主要是HttpServlet
jsp主页面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> </head><!-- 该函数无法执行的话,可能是没有通知浏览器不要缓存的原因 --> <script type="text/javascript"> function toreal(){ document.location.href="index.jsp"; } </script> <body> <form action="" method="post"> <input type="text" name="username"><br/> <input type="password" name="password"><br/> <input type="text" name="code"> <img alt="验证码" src="/java_Code/servlet/code"> <a href="javascript:toreal()">看不清</a> <br/> <input type="submit" value="登录"><br/><!-- 内部自动发送请求,加载验证码 --> </form> </body></html>
servlet页面生成验证码的图片代码:
package com.dp.java.code;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 code extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//通知浏览器不要缓存response.setHeader("Expires", "-1");response.setHeader("Cache-Control", "no-cache");response.setHeader("Pragma", "-1");int height=25;int width=120;//得到一个内存图像BufferedImageBufferedImage img=new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);//得到一个画笔Graphics g=img.getGraphics();//画边框drawRect绘制指定矩形的边框。g.drawRect(0, 0, width, height);//填充颜色g.setColor(Color.RED);g.fillRect(1, 1, width-2, height-2);//画干扰线g.setColor(Color.BLACK);Random r=new Random();for(int i=0;i<20;i++)g.drawLine(r.nextInt(width), r.nextInt(height), r.nextInt(width), r.nextInt(height));//生成随机数字g.setColor(Color.BLUE);g.setFont(new Font("微软雅黑", Font.BOLD|Font.ITALIC, 20));//BOLD加粗,ITALIC斜体int d=15;for(int j=0;j<4;j++){g.drawString(r.nextInt(10)+"", d, 20);d+=20;} //输出打web页面ImageIO.write(img, "jpg", response.getOutputStream());}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}
最后是xml映射文件:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>java_Code</display-name> <servlet> <servlet-name>code</servlet-name> <servlet-class>com.dp.java.code.code</servlet-class> </servlet> <servlet-mapping> <servlet-name>code</servlet-name> <url-pattern>/servlet/code</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>
结果:
0 0
- JavaWeb验证码
- JavaWeb验证码代码
- javaweb 验证码制作
- Javaweb验证码生成
- javaWeb验证码
- javaweb生成验证码
- javaWeb验证码技术
- JavaWeb---制作验证码
- JavaWeb登陆验证码
- JavaWeb实现验证码
- JavaWeb 生成验证码
- javaweb验证码代码
- JavaWeb---制作验证码
- 【JavaWeb】画验证码图片
- JavaWeb---绘制随机验证码
- javaweb生成验证码图片
- javaweb中的验证码实现
- javaweb生成验证码图片
- 现实与理想的辩证关系
- 45Jump Game II
- 欢迎大家来我的博客园踩踩~~
- 多态
- ZOJ1414题的解法
- javaWeb验证码
- poj3565Ants【线段相交判断】
- 文章标题
- 接口
- gcc下fflush(stdin)无效的解决
- C#软件开发实例.私人订制自己的屏幕截图工具(一)功能概览
- 输入法切换不了
- SpringMVC 返回数据的缺省格式
- 【IOS 开发学习总结-OC-13】★★objective-c面向对象之——KVC(键值编码)