JavaWeb-HttpServletResponse(二)

一、HttpServletResponse常见应用——生成验证码

 1 package gacl.response.study;
 2 
 3 import java.awt.Color;
 4 import java.awt.Font;
 5 import java.awt.Graphics;
 6 import java.awt.Graphics2D;
 7 import java.awt.image.BufferedImage;
 8 import java.io.IOException;
 9 import java.util.Random;
10 
11 import javax.imageio.ImageIO;
12 import javax.servlet.ServletException;
13 import javax.servlet.http.HttpServlet;
14 import javax.servlet.http.HttpServletRequest;
15 import javax.servlet.http.HttpServletResponse;
16 
17 /**
18  * 生成随机图片
19  */
20 public class ResponseDemo01 extends HttpServlet {
21 
22     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
23         //设置refresh响应头控制浏览器每隔5秒刷新一次
24         response.setHeader("refresh", "5");
25         //1 在内存中创建一张图片
26         BufferedImage image = new BufferedImage(80,20,BufferedImage.TYPE_INT_RGB);
27         //2 得到图片
28         Graphics2D g = (Graphics2D) image.getGraphics();
29         //设置图片背景颜色
30         g.setColor(Color.WHITE);
31         //填充背景色
32         g.fillRect(0, 0, 80, 20);
33         //3 向图片写数据
34         //设置图片上字体到颜色
35         g.setColor(Color.BLUE);
36         g.setFont(new Font(null,Font.BOLD,20));
37         g.drawString(makeNum(), 0, 20);
38         //4 设置响应头控制浏览器以图片的方式打开
39         response.setContentType("image/jpeg");
40         //5 设置响应头控制浏览器不缓存图片数据
41         response.setDateHeader("expries", -1);
42         response.setHeader("Cache-Control", "no-cache");
43         response.setHeader("Pragma", "no-cache");
44         //6 将图片写给浏览器
45         ImageIO.write(image, "jpg", response.getOutputStream());
46     }
47     //生成随机数
48     private String makeNum() {
49         Random random = new Random();
50         String num = random.nextInt(9999999)+"";
51         StringBuffer sb = new StringBuffer();
52         for(int i = 0;i<7-num.length();i++) {
53             sb.append("0");
54         }
55         num = sb.toString()+num;
56         return num;
57     }
58 
59 
60     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
61 
62         doGet(request, response);
63     }
64 
65 }

二.重定向

 1 package gacl.response.study;
 2 
 3 import java.io.IOException;
 4 import javax.servlet.ServletException;
 5 import javax.servlet.http.HttpServlet;
 6 import javax.servlet.http.HttpServletRequest;
 7 import javax.servlet.http.HttpServletResponse;
 8 /**
 9  * 通过response实现重定向
10  */
11 public class ResponseDemo02 extends HttpServlet {
12 
13     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
14         response.sendRedirect("/JavaWebday09/index.jsp");
15     }
16     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
17         doGet(request, response);
18     }
19 }

猜你喜欢

转载自www.cnblogs.com/hellopaidaxing/p/9578296.html
今日推荐