HttpServletResponse
2017-04-19 17:06
190 查看
响应、解析编码
import java.io.FileInputStream; import java.io.IOException; import java.net.URLEncoder; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ServletDemo3 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //通过路径得到一个输入流 String path = this.getServletContext().getRealPath("/WEB-INF/classes/美女.jpg"); FileInputStream fis = new FileInputStream(path); //创建字节输出流 ServletOutputStream sos = response.getOutputStream(); //得到要下载的文件名 String filename = path.substring(path.lastIndexOf("\\")+1); //设置文件名的编码 filename = URLEncoder.encode(filename, "UTF-8");//将不安全的文件名改为UTF-8格式 //告知客户端要下载文件 response.setHeader("content-disposition", "attachment;filename="+filename); response.setHeader("content-type", "image/jpeg"); //执行输出操作 int len = 1; byte[] b = new byte[1024]; while((len=fis.read(b))!=-1){ sos.write(b,0,len); } sos.close(); fis.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ServletDemo2 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); ServletOutputStream sos = response.getOutputStream(); sos.write("你好123".getBytes("UTF-8"));//getBytes默认编码为本地编码(即:gbk) } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
文件下载
import java.io.FileInputStream; import java.io.IOException; import java.net.URLEncoder; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ServletDemo3 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //通过路径得到一个输入流 String path = this.getServletContext().getRealPath("/WEB-INF/classes/美女.jpg"); FileInputStream fis = new FileInputStream(path); //创建字节输出流 ServletOutputStream sos = response.getOutputStream(); //得到要下载的文件名 String filename = path.substring(path.lastIndexOf("\\")+1); //设置文件名的编码 filename = URLEncoder.encode(filename, "UTF-8");//将不安全的文件名改为UTF-8格式 //告知客户端要下载文件 response.setHeader("content-disposition", "attachment;filename="+filename); response.setHeader("content-type", "image/jpeg"); //执行输出操作 int len = 1; byte[] b = new byte[1024]; while((len=fis.read(b))!=-1){ sos.write(b,0,len); } sos.close(); fis.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
验证码
package com.itheima.servlet; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random; import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import cn.dsna.util.images.ValidateCode; public class ServletDemo4 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //告诉客户端不使用缓存 response.setHeader("pragma", "no-cache"); response.setHeader("cache-control", "no-cache"); response.setIntHeader("expires", 0); ValidateCode vc = new ValidateCode(110, 25, 4, 9); String code = vc.getCode();//得到生成的字符 vc.write(response.getOutputStream()); } private void test1(HttpServletResponse response) throws IOException { int width = 110; int height = 25; //在内存中创建一个图像对象 BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); //创建一个画笔 Graphics g = img.getGraphics(); //给图片添加背景色 g.setColor(Color.PINK);//设置一个颜色 g.fillRect(1, 1, width-2, height-2);//填充颜色 //给边框一个色 g.setColor(Color.RED); g.drawRect(0, 0, width-1, height-1);//设置边框的显示坐标 //设置文本样式 g.setColor(Color.BLUE); g.setFont(new Font("宋体", Font.BOLD|Font.ITALIC, 15)); //给图片添加文本 Random rand = new Random(); int position = 20; for (int i = 0; i < 4; i++) { g.drawString(rand.nextInt(10)+"", position, 20);//给图片填充文本 position+=20; } //添加9条干扰线 for (int i = 0; i < 9; i++) { g.drawLine(rand.nextInt(width), rand.nextInt(height), rand.nextInt(width), rand.nextInt(height)); } //将图片对象以流的方式输出的客户端 ImageIO.write(img, "jpg", response.getOutputStream()); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
刷新功能
package com.itheima.servlet; import java.io.IOException; import java.util.Random; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ServletDemo5 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); /*response.setIntHeader("refresh", 1);//设置1秒钟刷新一次 Random r = new Random(); response.getWriter().write(r.nextInt()+"");*/ response.getWriter().write("注册成功!3秒钟跳到主页"); //设置3秒钟跳转 response.setHeader("refresh", "3;url=/day09_00_HttpServletResponse/servlet/demo6"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
相关文章推荐
- servlet (4) HttpServletRequest 和HttpServletResponse
- HttpServletResponse和HttpServletRequest详解
- HttpServletResponse addHeader() 与 setHeader() 区别
- HttpServletResponse
- HttpServletRequest和HttpServletResponse详解
- java web给手机端写接口HttpServletRequest ,HttpServletResponse
- RequestDispatcher.forward和HttpServletResponse.sendRedirect的不同。
- The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes limit
- HttpServletResponse常见应用——生成验证码
- HttpServletResponse之输出流
- HttpServletRequest和HttpServletResponse的常用方法
- GZIP Http Servlet Response
- HttpServletResponse的encodeRedirectURL()与encodeURL()的差别
- HttpServletResponse
- HttpServletResponse.sendRedirect()与RequestDispatcher.forward()的区别
- ServletRequest,HttpServletRequest ServletResponse,ServletResponse的区别
- 转 httpServletResponse reset flushBuffer
- HttpServletResponse乱码问题_动力节点Java学院整理
- servlet response应用五:发送http头,控制浏览器禁止缓存当前文档内容
- JAVAWEB开发之HttpServletResponse和HttpServletRequest详解(上)(各种乱码、验证码、重定向和转发)