• java学习笔记—校验码的实现(15)


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

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

    字符流做响应体的输出

    public class Demo3 extends HttpServlet {
        String str = null;
        public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
            // 设置字符流的编码方式
            response.setCharacterEncoding("utf-8");
            // 通知浏览以指定的编码方式进行解码
            response.setContentType("text/html;charset=utf-8");
            // 获取响应对象的字符流对象
            PrintWriter out = response.getWriter();
            // 定义输出数据
            String data = "hello<br/>";
            // 输出字符串数据
            out.write(data);
            // 输出页面数据
            data = "<h2>this is a h2</h2>";
            out.write(data);
            // 输出中文数据
            data = "中国";
            out.write(data);
            out.write("<br/>");
            // 输出数字
            out.write(65);         // A
            out.write("<br/>");
            // 调用打印方法
            out.println(65);        // 65
            out.println(true);    // true
            out.println(34.567);    // 34.567
            
            out.write(str);       // 空指针异常
            out.println(str);        // 输出null
        }
    }

    write()和prinln()的区别?

    输出数字不同: write()输出数字转换为字符,println原样输出。

    输出null不同: write()输出引用类型的时候调用的toString转换为String数据,因此如果对象为null那么直接抛出空指针异常。Println直接输出null。

  • 相关阅读:
    n!末尾有几个零
    NYOJ 14(会场安排)
    使用dynamic来简化反射实现,并且提高了性能。
    VB.NET 、Java 与 C# 语法对比。
    你不得不使用的XML代码生成器,那就是XmlFactory
    C# 和vb.net事件
    SQL Server 2008中的hierarchyid
    系统架构师基础到企业应用架构客户端/服务器
    Asp.Net在IIS上运行不了,就试下下面方法应该可以你的问题
    为你的博客添加几分色彩
  • 原文地址:https://www.cnblogs.com/zhenghongxin/p/4360819.html
Copyright © 2020-2023  润新知