JavaWeb ------ HttpServletResponse, HttpServletRequest

HttpServletResponse

1. Clasificación simple

1.1 Estado Código de Respuesta
int SC_CONTINUE = 100;
int SC_SWITCHING_PROTOCOLS = 101;
int SC_OK = 200;
int SC_CREATED = 201;
int SC_ACCEPTED = 202;
int SC_NON_AUTHORITATIVE_INFORMATION = 203;
int SC_NO_CONTENT = 204;
int SC_RESET_CONTENT = 205;
int SC_PARTIAL_CONTENT = 206;
int SC_MULTIPLE_CHOICES = 300;
int SC_MOVED_PERMANENTLY = 301;
int SC_MOVED_TEMPORARILY = 302;
int SC_FOUND = 302;
int SC_SEE_OTHER = 303;
int SC_NOT_MODIFIED = 304;
int SC_USE_PROXY = 305;
int SC_TEMPORARY_REDIRECT = 307;
int SC_BAD_REQUEST = 400;
int SC_UNAUTHORIZED = 401;
int SC_PAYMENT_REQUIRED = 402;
int SC_FORBIDDEN = 403;
int SC_NOT_FOUND = 404;
int SC_METHOD_NOT_ALLOWED = 405;
int SC_NOT_ACCEPTABLE = 406;
int SC_PROXY_AUTHENTICATION_REQUIRED = 407;
int SC_REQUEST_TIMEOUT = 408;
int SC_CONFLICT = 409;
int SC_GONE = 410;
int SC_LENGTH_REQUIRED = 411;
int SC_PRECONDITION_FAILED = 412;
int SC_REQUEST_ENTITY_TOO_LARGE = 413;
int SC_REQUEST_URI_TOO_LONG = 414;
int SC_UNSUPPORTED_MEDIA_TYPE = 415;
int SC_REQUESTED_RANGE_NOT_SATISFIABLE = 416;
int SC_EXPECTATION_FAILED = 417;
int SC_INTERNAL_SERVER_ERROR = 500;
int SC_NOT_IMPLEMENTED = 501;
int SC_BAD_GATEWAY = 502;
int SC_SERVICE_UNAVAILABLE = 503;
int SC_GATEWAY_TIMEOUT = 504;
int SC_HTTP_VERSION_NOT_SUPPORTED = 505;
1.2 responsable de enviar los datos al método del navegador

ServletOutputStream getOutputStream() throws IOException;

PrintWriter getWriter() throws IOException;
1.3 responsable de enviar las cabeceras de respuesta al método de navegador
void sendError(int var1, String var2) throws IOException;

void sendError(int var1) throws IOException;

void sendRedirect(String var1) throws IOException;

void setDateHeader(String var1, long var2);

void addDateHeader(String var1, long var2);

void setHeader(String var1, String var2);

void addHeader(String var1, String var2);

void setIntHeader(String var1, int var2);

void addIntHeader(String var1, int var2);

void setStatus(int var1);

2. Aplicaciones comunes

2.1 para pasar información al navegador
2.2 Descargar archivo
  1. Para obtener la ruta de descarga del archivo
  2. Perfil de la descarga es lo que?
  3. Creado para encontrar la manera de permitir que el navegador soporte de lo que necesitamos para descarga
  4. Toma un flujo de entrada para descargar el archivo
  5. Crear un buffer
  6. Obtener objeto OutputStream
  7. El búfer se escribe en el búfer de la secuencia FileOutputStream
  8. FlujoSalida utilizando el búfer de datos de salida para el cliente!
public class FileServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 1. 要获取下载文件的路径
        String realPath = "D:\\IDEA\\jsp\\servlet-java\\disangechengxu\\src\\main\\resource\\1.png";
        System.out.println("下载文件的路径:"+realPath);
        // 2. 下载的文件名是啥?
        String fileName = realPath.substring(realPath.lastIndexOf("\\") + 1);
        // 3. 设置想办法让浏览器能够支持(Content-Disposition)下载我们需要的东西,中文文件名URLEncoder.encode编码,否则有可能乱码
        resp.setHeader("Content-Disposition","attachment;filename="+fileName);
        // 4. 获取下载文件的输入流
        FileInputStream in = new FileInputStream(realPath);
        // 5. 创建缓冲区
        int len=0;
        byte[] bytes = new byte[1024];
        // 6. 获取OutputStream对象
        ServletOutputStream out = resp.getOutputStream();
        // 7. 将FileOutputStream流写入到buffer缓冲区,使用OutputStream将缓冲区中的数据输出到客户端!
        while((len=in.read(bytes))!=-1){
            out.write(bytes,0,len);
        }
        in.close();
        out.close();

    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}
2.3 código de cuenta con cinco segundos refrescar
public class ImageServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        resp.setHeader("refresh","3");

        BufferedImage image = new BufferedImage(80,20,BufferedImage.TYPE_INT_RGB);
        Graphics2D g = (Graphics2D) image.getGraphics();

        g.setColor(Color.white);
        g.fillRect(0,0,80,20);


        g.setColor(Color.BLUE);
        g.setFont(new Font(null, Font.BOLD,20));
        g.drawString(makeNum(),0,20);

        resp.setContentType("image/jpeg");
        resp.setDateHeader("expires",-1);
        resp.setHeader("Cache-Control","no-cache");
        resp.setHeader("Pragme","no-cache");

        ImageIO.write(image,"jpg",resp.getOutputStream());
    }
    public String makeNum(){
        Random random = new Random();
        String num = random.nextInt(9999999) + "";
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < 7 - num.length(); i++) {
            sb.append("0");
        }
        num=sb.toString()+num;
        return  num;
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}
2.4 redirección sencilla realización de inicio de sesión

Index.jsp escrito en Webapp->

<html>
<body>
<h2>Hello World!</h2>

<form action="${pageContext.request.contextPath}/login"method="get">
    用户名:<input type="text"name="username"><br>
    密码:<input type="password"name="password"><br>
    <input type="submit">

</form>
</body>
</html>

código de prueba de escritura

public class RequestTest extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        System.out.println(username+":"+password);
        resp.sendRedirect("../success.jsp");
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

Success.jsp escrito en Webapp->

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<h1>success</h1>

</body>
</html>

HttpServletRequest

HttpServletRequest nombre de la solicitud del cliente, el usuario Http servidor de acceso de protocolo, la petición HTTP toda la información se empaqueta en HttpServletRequest, HttpServletRequest través de este proceso, la obtención de toda la información del cliente;

Escenario: parámetros de adquisición, el reenvío de solicitud

Escribir index.jsp

<%--
  Created by IntelliJ IDEA.
  User: 27170
  Date: 2020/2/18
  Time: 23:52
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登录</title>
</head>
<body>

<h1>登录</h1>

<div style="text-aline:center">
    <form action="${pageContext.request.contextPath}/login"method="post">
        用户名:<input type="text"name="username"><br>
        密码:<input type="password"name="password"><br>
        爱好:
        <input type="checkbox"name="hobbys"value="女孩">女孩
        <input type="checkbox"name="hobbys"value="代码">代码
        <input type="checkbox"name="hobbys"value="唱歌">唱歌
        <input type="checkbox"name="hobbys"value="电影">电影

        <br>
        <input type="submit">
    </form>
</div>

</body>
</html>

Escribir success.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>



<h1>登陆成功</h1>
</body>
</html>

código de ensayo

public class LoginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf8");
        resp.setCharacterEncoding("utf8");
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        String[] hobbys = req.getParameterValues("hobbys");

        System.out.println("===============");
        System.out.println(username);
        System.out.println(password);
        System.out.println(Arrays.toString(hobbys));
        System.out.println("===============");


        req.getRequestDispatcher("/r/success.jsp").forward(req,resp);

    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}
Publicado 80 artículos originales · ganado elogios 7 · vistas 4765

Supongo que te gusta

Origin blog.csdn.net/y18791050779/article/details/104886630
Recomendado
Clasificación