zl程序教程

您现在的位置是:首页 >  其它

当前栏目

校验码实现

实现
2023-09-11 14:18:04 时间

多学一招:如果一个网站中既有图片又有文本,那么请问需要使用什么流?

Repsonse不可能同时获取字节流和字符流,对于以上的问题是由于HTTP通信原理没有掌握清楚才导致。浏览器发送请求处理的一定是页面,但是页面中的图片表现的形式不是字节流的方式而是<img serc=”url”/>直接发送给浏览器即可,浏览器会检索该src指定的路径继续发送请求以字节流的方式获取图片。

校验码的实现

校验码的出现主要的任务是解决表单的重复提交问题。

 1 public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
 2        // 0. 通知浏览器不能缓存图片数据
 3        response.setHeader("expires", "-1");
 4        response.setHeader("cache-control", "no-cache");
 5        response.setHeader("pragma", "no-cache");
 6        // 1. 在内存中创建一个图片对象
 7        BufferedImage img = new BufferedImage(80,20,BufferedImage.TYPE_INT_RGB);    
 8        ServletOutputStream out = response.getOutputStream();
 9        // 2. 获取图片
10        Graphics pic = img.getGraphics();
11        // 3. 设置背景是白色
12        pic.setColor(Color.WHITE);
13        pic.fillRect(0, 0, 80, 20);
14        // 4. 设置图片
15        pic.setColor(Color.RED);
16        pic.setFont(new Font(null,Font.BOLD,12));
17        // 5. 添加数据
18        pic.drawString(makeString(4), 5, 15);
19        // 6. 输出图片到浏览器
20        ImageIO.write(img, "jpeg", out);  
21     }