HttpServletResponse most includes response to file, response to image, response to redirect(most important).
1.response to file(I/O)
1 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 2 // String realPath = this.getServletContext().getRealPath("C:\\Users\\Mingy\\developer\\javaweb_02_servlet\\response\\src\\main\\resources\\1.jpg"); 3 String realPath = "C:\\Users\\Mingy\\developer\\javaweb_02_servlet\\response\\src\\main\\resources\\1.jpg"; 4 System.out.println("download path: "+ realPath);//get file path 5 String fileName = realPath.substring(realPath.lastIndexOf("\\") + 1);//get file name 6 resp.setHeader("Content-Disposition", "attachment; filename= "+fileName);//browser can support download the image 7 FileInputStream inputStream = new FileInputStream(realPath);//get the inputStream of download file 8 int len = 0; 9 byte[] buffer = new byte[1024];//create buffer 10 ServletOutputStream outputStream = resp.getOutputStream();//get outputStream 11 while ((len = inputStream.read(buffer)) > 0){//read inputStream into buffer,and use outputStream to write the data to client 12 outputStream.write(buffer,0,len); 13 } 14 inputStream.close(); 15 outputStream.close(); 16 }
2.response to image (problem: browser can refresh per 3 second, but the image cannot be generated)
1 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 2 //verification code 3 resp.setHeader("refresh", "3");//是否是这里的问题,浏览器无法出现验证码 4 BufferedImage image = new BufferedImage(80,20,BufferedImage.TYPE_INT_RGB); 5 Graphics2D graphics = (Graphics2D) image.getGraphics(); 6 //set bgm color 7 graphics.setColor(Color.white); 8 graphics.fillRect(0,0,80,20); 9 //write data into image 10 graphics.setColor(Color.blue); 11 graphics.setFont(new Font(null,Font.BOLD,20)); 12 graphics.drawString(makeNum(),0,20); 13 //there is cache in website, set no cache. 14 resp.setContentType("image/jpeg");//let browser open it in image 15 resp.setDateHeader("expires", -1); 16 resp.setHeader("Cache-Control", "no-cache"); 17 resp.setHeader("Pragma", "no-cache"); 18 }
random method:
1 private String makeNum(){ 2 Random random = new Random(); 3 String num = String.valueOf(random.nextInt(9999999)); 4 StringBuffer stringBuffer = new StringBuffer(); 5 for (int j = 0; j < 7 -num.length(); j++) { 6 stringBuffer.append("0"); 7 8 } 9 num = stringBuffer.toString() + num; 10 return num; 11 }
3.response to redirect
3.1 redirect
1 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 2 resp.sendRedirect("/response_war/img");//path must be "/response_war/img" can not be "/img" or "response_war/img" 3 4 }
3.2 redirect to .jsp
1 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 2 String username = req.getParameter("username"); 3 String password = req.getParameter("password"); 4 System.out.println(username+" : "+password); 5 resp.sendRedirect("/response_war/success.jsp"); 6 }
1 <body> 2 <h2>Hello, Ming</h2> 3 <form action="success.jsp" method="get"> 4 username: <input type="text" name="username"><br> 5 password: <input type="password" name="password"><br> 6 <input type="submit"> 7 8 </form> 9 10 </body>
- HttpServletResponse Servletservlet javax nosuchmethodexception httpservletresponse httpservletresponse servlet httpservletresponse对象servlet p4 httpservletresponse httpservletresponse day 101 httpservletresponse常见 httpservletresponse httpservletrequest九天 httpservletresponse httpservletrequest方式 httpservletresponse控制台 接口curl 乱码httpservletresponse printwriter方法