关于时间戳那段代码

关于时间戳那段代码

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>

http://img1.sycdn.imooc.com//climg/5c7908870001ea7319130964.jpg

按照老师的代码写的,能够正常运行,但是为啥图片的右边会显示有error,点开后是404.

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学这个不用担心哦,这个只是没有加载到这个ioc的logo,也就是

例如百度的这种logohttp://img1.sycdn.imooc.com//climg/5c79210c00012bbd01650055.jpg

这个影响代码的执行呦,同学不用担心。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 程研板 提问者 #1
    老师,这个ioc我也没有用这个代码啊,是上面哪个代码影响的呢?
    2019-03-03 18:00:10
  • 好帮手慕阿莹 回复 提问者 程研板 #2
    并不是代码的事儿,这个有可能是因为tomcat等一些原因没有加载到,可能会和网络有关,同学无需在意,不会影响到现在的代码。如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
    2019-03-04 09:59:31
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
从网页搭建入门Java Web2018版
  • 参与学习           人
  • 提交作业       1088    份
  • 解答问题       10204    个

如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师