jsp生成验证码
验证码的生成思想是在服务器段预先生成好验证码,前台显示,然后再到后台去匹配!
code.jsp:
<%@ page language="java" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*"
contentType="image/jpeg" pageEncoding="UTF-8"%>
<% //设置页面不缓存
response.setHeader("Pragma","No-cache");
response.setHeader("Cahce-Control","no-cache");
response.setDateHeader("Expires",0);
//在内存中创建图片
int width=58;
int height=20;
BufferedImage image=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
//获取图形上下文
Graphics g= image.getGraphics();
//生成随机类
Random random= new Random();
//设置背景颜色
g.setColor(new Color(150,200,100));
g.fillRect(0,0,width,height);
//设置字体
g.setFont(new Font("Times New Roman",Font.PLAIN,18));
//随机产生50条干扰线,使图形中的验证码不易被其他的程序探测到
g.setColor(new Color(150,200,100));
for(int i=0;i<50;i++)
{
int x=random.nextInt(width);
int y=random.nextInt(height);
int x1=random.nextInt(width);
int y1=random.nextInt(height);
g.drawLine(x,y,x+x1,y+y1);
}
//随机产生验证码(6位数字)
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.setAttribute("rand",sRand); //////将产生的验证码存储到sesson中
g.dispose();
ImageIO.write(image,"JPEG",response.getOutputStream());
out.clear();
out=pageContext.pushBody();
%>
code.jsp把生成的验证码输出成图片格式,所以页面引用时只需要把该也当图片处理!
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
相关文档:
JSP/Servlet转发与重定向的区别
尽管HttpServletResponse.sendRedirect 方法和RequestDispatcher.forward 方法都可以让浏览器获得另外一个URL所指向的资源,但两者的内部运行机制有着很大的区别。
下面是HttpServletResponse.sendRedirect 方法实现的请求重定向与RequestDispatcher.forward 方法实现的请求 ......
JSP的指令是用来包含外部文件或是进行页面全局设置的;它的有三种,分别是page,include,taglib指令
1.page指令
形如<%@page 属性='值' 属性='值' ........ %>
属性有:
language=''java'' : 设定jsp页面的脚本语言,目前只支持java,默认是java
......
关键字: struts2 webwork
今天遇到一个情况,要在jsp页面上处理查询出来list页的一些数据,改变Action类太麻烦,于是想到从页面上直接获取Action中的变量值,并进行操作,现在把获取方法记录一下,以便以后查询.
如果在Action类里有一个简单的变量,并且已经写好了它的get和set方法
private String test="jsp ......
JSP数据库连接大全
2008-07-22 11:47
一、jsp连接Oracle8/8i/9i数据库(用thin模式)
testoracle.jsp如下:
< %@ page contentType="text/html;charset=gb2312"% >
< %@ page import="java.sql.*"% >
< html >
< body >
< %Class.forName("oracle.jdbc.driver.OracleDriver").new ......
jsp中include的两种形式: 1.<%@ include file=” ”%>
&nbs ......