java_web:response使用

响应消息:服务器端发给客户端的消息
响应行

  1. 组成:协议、状态码、状态码描述
  2. 响应状态码: 服务器发给客户端浏览器当前请求与响应的一个状态
    1 1xx表示服务器接收客户端消息,当前没有接收完成
    2 2xx表示成功
    3 3xx表示重定向,302(重定向)、 304(访问缓存)
    4 4xx表示客户端错误,404(请求路径没有对应资源)、405(请求方式没有对应方法)
    5 5xx表示服务端错误,500(服务器端内部出现异常)

响应头
1.Content-Type:服务器告诉客户端本次响应体数据格式与编码格式
2.Content-disposition:服务器告诉客户端以什么格式打开响应体数据

Response对象
功能:1.设置响应行、2.设置响应头、3.设置响应体

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/demo01")
public class ResponseDemo01 extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("demo01....");

        resp.setStatus(302);
        resp.setHeader("location","/demo02");
        
        //resp.sendRedirect("/demo02");  //第二种方法


    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req,resp);
    }
}
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;


@WebServlet("/demo02")
public class ResponseDemo02 extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("demo02....");
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req,resp);
    }
}

重定向与转发的特点
在这里插入图片描述
服务器输出字符、字节数据到浏览器:

@WebServlet("/demo03")
public class ResponseDemo03 extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        resp.setCharacterEncoding("utf-8");

        resp.setHeader("content-type","text/html,charset=ytf-8");

        //resp.setContentType("text/html,charset=ytf-8"); //简单方式

        //1.获取字符输出流
        PrintWriter pw = resp.getWriter();
        //2.输出数据
        pw.write("hello world");
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }
}
@WebServlet("/demo03")
public class ResponseDemo03 extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        resp.setHeader("content-type","text/html,charset=ytf-8");

        //resp.setContentType("text/html,charset=ytf-8"); //简单方式

        ServletOutputStream outputStream = resp.getOutputStream();
        outputStream.write("你好".getBytes("utf-8"));
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }
}

案例----验证码

import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;


@WebServlet("/demo04")
public class CheckCodeServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        BufferedImage image = new BufferedImage(50,100,BufferedImage.TYPE_INT_RGB);

        Graphics graphics = image.getGraphics();
        graphics.setColor(Color.BLUE);
        graphics.fillRect(0,0,50,100);

        graphics.setColor(Color.green);
        graphics.drawRect(0,0,49,99);

        String str = "1234567890QWERTYUIOPASDFGHJKLZXCVBNMqwertyuioplmknjbhvgcfxdzsa";
        Random r = new Random();
        for(int i=1;i<5;i++){
            int index = r.nextInt(str.length());
            char c = str.charAt(index);
            graphics.drawString(c+"",20*i,50);
        }

        graphics.setColor(Color.PINK);
        for (int i=0;i<7;i++){
            int x1 =  r.nextInt(100);
            int x2 = r.nextInt(100);

            int y1 = r.nextInt(50);
            int y2 = r.nextInt(50);

            graphics.drawLine(x1,y1,x2,y2);

        }



        ImageIO.write(image, "jpg", resp.getOutputStream());
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req,resp);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值