一、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 }