关于时间戳那段代码
package wust.code;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
import java.awt.*;
import java.awt.font.FontRenderContext;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.util.Random;
public class CaptcahCode {
public static String drawImage(HttpServletResponse response) {
StringBuilder builder=new StringBuilder();
for (int i = 0; i <4 ; i++) {
builder.append(randomChar());
}
String code=builder.toString();
int width=120;
int height=25;
BufferedImage bi=new BufferedImage(width,height,BufferedImage.TYPE_3BYTE_BGR);
Graphics2D g=bi.createGraphics();
Font font=new Font("微软雅黑",Font.PLAIN,20);
Color color=new Color(0,0,0);
g.setFont(font);
g.setColor(color);
g.setBackground(new Color(226,226,240));
g.clearRect(0,0,width,height);
FontRenderContext context=g.getFontRenderContext();
Rectangle2D bounds=font.getStringBounds(code,context);
double x=(width-bounds.getWidth())/2;
double y=(height-bounds.getHeight())/2;
System.out.println(x+" "+y);
double ascent= bounds.getY();
System.out.println(ascent);
double baseY=y-ascent;
System.out.println(baseY);
g.drawString(code,(int)x,(int)baseY);
g.dispose();
try{
ImageIO.write(bi,"jpg",response.getOutputStream());
response.flushBuffer();
}catch(Exception ex){
ex.printStackTrace();
}
System.out.println(code);
return code;
}
private static char randomChar() {
String string="qwertyuiopasdfghjklzxcvbnm1234567890";
Random random=new Random();
return string.charAt(random.nextInt(string.length()));
}
}<%@ page import="wust.code.CaptcahCode" %><%--
Created by IntelliJ IDEA.
User: 99322
Date: 2019/3/1
Time: 17:00
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<%
response.setHeader("pragma","no-cache");
response.setHeader("cache-control","no-cache");
response.setHeader("expires","0");
String code= CaptcahCode.drawImage(response);
session.setAttribute("code",code);
out.clear();
out=pageContext.pushBody();
%><%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<html>
<head>
<title>java验证码</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>
<body>
<img src="code.jsp" id="code">
<a href="javascript:void(0);" onclick="changeCode()">看不清?点我</a>
<script>
function changeCode(){
document.getElementById("code").src="code.jsp?d="+new Date().getTime();
console.log("haha");
}
</script>
</body>
</html>
按照老师的代码写的,能够正常运行,但是为啥图片的右边会显示有error,点开后是404.
0
收起
正在回答
1回答
同学这个不用担心哦,这个只是没有加载到这个ioc的logo,也就是
例如百度的这种logo
这个影响代码的执行呦,同学不用担心。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
从网页搭建入门Java Web2018版
- 参与学习 人
- 提交作业 1088 份
- 解答问题 10204 个
如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星