导航:首页 > 编程语言 > 纯jsp验证码刷新

纯jsp验证码刷新

发布时间:2023-05-26 15:56:05

1. jsp页面该如何刷新验证码

(1)jsp代码
<img id = "img_authcode" src="${ctx}/account/authcode" /><a href="javascript:;" onclick="javascript:document.getElementById('img_authcode').setAttribute('src', '${ctx}/account/authcode?' + Math.random())">换一换</a>

(2)java代码(该代码为我自己框架代码,跟servlet写法不一样的我都给你注释了):
public View authcode() throws IOException {
HttpServletResponse response = PuffContext.getResponse();//获取response
response.setContentType("image/jpeg");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
String authCode = AuthCodeUtil.getRandom(4); //获取验证码,代码在下面(3)
System.out.println("生成随机码:" + authCode);
PuffContext.getSession().setAttribute("session_authcode", authCode);//把该验证码存储在session
ServletOutputStream output = response.getOutputStream();
AuthCodeUtil.draw(output, authCode);
output.flush();
output.close();
return ViewFactory.nullView();//返回null
}

(3)///////////////////////////下面为生成验证码类////////////////////////////////////

public class AuthCodeUtil {
private final static Random random = new Random();
// 随机字体样式
private final static int[] fontStyle = { Font.HANGING_BASELINE, Font.ITALIC, Font.LAYOUT_LEFT_TO_RIGHT, Font.LAYOUT_NO_LIMIT_CONTEXT,
Font.LAYOUT_NO_START_CONTEXT, Font.LAYOUT_RIGHT_TO_LEFT };

/**
* 画随机码图
*
* @param out
* @param width
* @param height
* @throws IOException
*/
public static void draw(OutputStream out, String value) throws IOException {
int width = 80, height = 30;
BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g = (Graphics2D) bi.getGraphics();
g.setColor(Color.WHITE);
g.fillRect(0, 0, width, height);
g.drawRect(1, 1, width - 2, height - 2);
for (int i = 0; i < 10; i++) {
g.setColor(randColor(150, 250));
g.drawOval(random.nextInt(110), random.nextInt(24), 5 + random.nextInt(10), 5 + random.nextInt(10));
}
int n = (int) (Math.random() * 6);
Font mFont = new Font("Arial", fontStyle[n], 23);
g.setFont(mFont);
g.setColor(randColor(10, 240));
g.drawString(value, 10, 21);// 随机数,水平距离,垂直距离
ImageIO.write(bi, "png", out);
}

private static Color randColor(int fc, int bc) {// 给定范围获得随机颜色
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);
}

public static void main(String[] args) throws IOException {
FileOutputStream out = new FileOutputStream("d:\\aa.png");
draw(out, getRandom(4));
}

public static String getRandom(int size) {// 随机字符串
char[] c = { '1', '3', '5', '6', '7', '8', '9' };
StringBuffer sb = new StringBuffer();
for (int i = 0; i < size; i++)
sb.append(c[Math.abs(random.nextInt()) % c.length]);
return sb.toString();
}

}

2. jsp 一段点击验证码刷新的代码,看不太懂

这就是一张图片,图片引用了一个JSP页面,image.jsp生成的验证码显示在这个页面的图片上,seeE方法就起到了刷新验证码的作用,把路径重新赋值给图片就是刷新效果,后面的时间是因为javascript的缓存机制引起的。你要是用纯代码来写Ajax无刷新登录就会知道原理。相同的路径不会向后台发出第二次请求,时间的毫秒数是不可能重复的,所以每次路径都不一样。另外有时候还可以用随机数

3. 怎么ajax实现jsp的验证码部分刷新

<script language="javascript">
function loadimage(){
document.getElementById("randImage").src = "image.jsp?"+Math.random();
}
</script>
<img alt="code..." name="randImage" id="randImage" src="image.jsp" border="基裤档1" >
image.jsp
<%@ page contentType="image/jpeg;charset=GBK" import="java.awt.*, java.awt.image.*,java.util.*,javax.imageio.*" %>
<%@ page import="java.io.OutputStream" %>
<搏乱%!
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);
}
%>
<%
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
int width=80, 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(getRandColor(160,200));
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);
}
String sRand="";
for (int i=0;i<6;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
session.setAttribute("rand",sRand);
g.dispose();
OutputStream os=response.getOutputStream();

ImageIO.write(image, "JPEG", os);

os.flush();
os.close();
os=null;
response.flushBuffer();
out.clear();
out = pageContext.pushBody();
%>

4. 我用jsp做了一个登录界面,用另一个jsp做了验证码,放在第一个界面当中怎么才能刷新验证码

获取验证码时不用写在js里敬芹面,你可以这样写就能刷新验证码了
<img src="image.jsp" style="cursor:pointer" onclick="this.src='code.jsp?t1='+Math.random()" title="看不清?点击图片试试">
其中这虚笑句onclick="this.src='code.jsp?t1='+Math.random()" 就是亮誉毕起到刷新作用

5. JSP前台验证码做验证时session值总是记住刷新前的一次,求大神指导!!!

你在产生图片后就更新下session验证码的值就可以啦

6. JSP页面验证码不能刷新怎么回事

链接后面带个随机数参数试试
xxx.jsp?a=Math.random()

7. 用Js,Ajax做的一个jsp页面的验证码功能,但是就是刷不出来图片呀,总是一把×。查了好久,还是没有解决。

你的图片路径 你确定是 code?code=随机数 么?
你这不是发送到后台的 地址? 确定是 图片的绝对(相版对) 地址?

你犯了一个权错误。 $('imgVcode') 这个应该是你的图片的id 。 你想着给他 赋值 .src
这是对的。
然而应该先 ajax 请求 得到 一个随机数再 把后台返回过来的随机数 赋值吧?
例如这样$ajax{
url:
type:
data:
} success : function(result){
$('imgVcode').src="code+result";
}
应该是这样吧。

8. JSP验证码刷新报错:java.net.SocketException: Connection reset by peer: socket write error

太奇怪,我测试了一下你的代码,很好用阿,采用两种方式都没有问题

直接访问img.jsp或者访问html文件的img标签基含,都没有搏谈笑问题。

补充:

我是在本地访问侍拆的,如果你访问其它计算机,那么看看是否是防火墙的问题。代码应该没有问题。

9. jsp下面刷新验证码 代码如下document.getElementById("authImg").src="authImgnow="+new Date();

document.getElementById("authImg").src="authImg?now="+new Date(); 先改成:
document.getElementById("authImg").src="aa.jpg"然后在IE7、IE6和IE8下试试,如果可以的话就说明版你后面的路径问题,如果路长没权有问题,你再在IE7和IE6下alert(new Date());看能否弹出对话框。

10. java web 项目验证码的刷新问题

你可以来用js来更新源img的src属性,例如
<img src="PicktureCheckCode" id="CreateCheckCode" align="middle" onclick="this.src=this.src+'?'" />
<a href="javascript:CreateCheckCode.onclick()">看不清,换一张</a>

阅读全文

与纯jsp验证码刷新相关的资料

热点内容
繁体中文输入工具 浏览:916
pc桌面壁纸文件夹 浏览:473
微信怎么添加群 浏览:781
40岁男人适合的微信名 浏览:925
编程里比例怎么打 浏览:215
苹果12两个app如何分屏 浏览:592
ps下载完不是压缩文件 浏览:362
电脑中的个人文件包括什么 浏览:572
网络连接一般什么密码 浏览:199
java定时器quartz实例 浏览:259
稻壳excel文件太大怎么弄 浏览:901
文件里的视频如何保存到相册 浏览:428
手机百度云文件电脑 浏览:957
编程怎么做到时钟精准 浏览:912
锤子用过的壁纸在哪个文件里 浏览:468
qq网站安全性未知访问不了怎么办 浏览:270
燕秀怎么修改编程人名字 浏览:789
2012年天之眼导航升级 浏览:595
如何安装视频文件 浏览:315
红米2A升级miui9 浏览:927

友情链接