`
passion99
  • 浏览: 12963 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

http之HttpServletRequest和HttpServletResponse

    博客分类:
  • http
 
阅读更多

对于客户端的一个请求,服务端建立request和response对象,分别代表请求和返回。

 

一、HttpServletRequest对象

   客户端通过http协议访问时,请求中所有的信息都存放在该对象中,包括parameter name和value,attribute,

input stream,cookie,http协议相关的信息等。

 

1、parameter和attribute的区别

parameter是客户端提交的参数;

attribute是与客户端无关,在不同servlet之间传递参数,当做容器使用

 

设置:

 String white = (String) request.setAttribute(“name”,"china");

 

读取:

 

String white = (String) request.getAttribute(“name”);

2、Cookie

Cookies are passed as HTTP headers, both in the request (client -> server), and in the response (server -> client).

cookie是当做http头部信息存储k-v形式存储,key固定为Cookie,v为name=value形式,多个键值以分号分割。

服务端读取cookie

//简便的获取cookie信息的方式
Cookie[] cookies = request.getCookies();
for(Cookie cookie : cookies){
    log.info("name={},value={}",cookie.getName(),cookie.getValue());
}
//原始的从头部获取cookie的方式
String rawCookie = request.getHeader("Cookie");
String[] rawCookieParams = rawCookie.split(";");
for(String cookie : rawCookieParams){
    log.info("cookie={}",cookie);
}

 

 

参考:

https://stackoverflow.com/questions/33690741/httpservletrequest-getcookies-or-getheader

 

3、inputStream

ServletInputStream servletInputStream = request.getInputStream();

参考JAVA API解释

可以看出为客户端请求的字节流,一般框架已经封装好,使用较少。 

public abstract class ServletInputStream
extends InputStream
Provides an input stream for reading binary data from a client request, including an efficient readLine method for reading data one line at a time. With some protocols, such as HTTP POST and PUT, a ServletInputStream object can be used to read data sent from the client.

ServletInputStream object is normally retrieved via the ServletRequest.getInputStream() method.

This is an abstract class that a servlet container implements. Subclasses of this class must implement the java.io.InputStream.read() method.

 

 二、HttpServletReponse对象

 //设置http返回码:404、200等
resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
resp.setContentType("application/json;charset=UTF-8");
String data = "这是字节流输出的内容";
 byte[] dataByteArr = data.getBytes(StandardCharsets.UTF_8);
//获取http输出字节流
 //resp.getOutputStream().write(dataByteArr);
 //resp.flushBuffer();
//获取http输出字符流
resp.getWriter().println("这是字符流输出的内容");

 获取字节流还是字符流只能选择一种。

分享到:
评论

相关推荐

    HttpServletRequest和HttpServletResponse的必备包

    Java中,引入javax.servlet.http.HttpServletRequest和javax.servlet.http.HttpServletResponse包的必备jar包:org.apache.commons.httpclient.jar

    深入解析Java Web中的HttpServletRequest与HttpServletResponse

    在Java Web应用开发中,HttpServletRequest和HttpServletResponse是两个核心的接口,它们扮演着至关重要的角色。这两个接口是Java Servlet API的一部分,为开发人员提供了处理HTTP请求和构造HTTP响应的丰富功能。...

    HttpServletRequest和HttpServletResponse的讲解

    总结,`HttpServletRequest`和`HttpServletResponse`是Servlet编程的核心,它们帮助开发者处理HTTP请求并构造响应,实现了服务器与客户端的通信。了解并熟练掌握这两个接口的使用,对于进行Java Web开发至关重要。在...

    java HttpServletRequest和HttpServletResponse详解

    Java中的HttpServletRequest和HttpServletResponse是Servlet API中的两个核心接口,它们分别代表了客户端向服务器发起的HTTP请求和服务器向客户端返回的HTTP响应。了解这两个接口对于任何进行Java Web开发的程序员来...

    HttpServletRequest-response方法总结

    HttpServletRequest和HttpServletResponse是Servlet编程中两个最重要的接口,它们提供了对HTTP请求和响应的控制和处理。下面是对HttpServletRequest和HttpServletResponse的方法总结: HttpServletRequest: 1. ...

    HttpServletRequest源码 HttpServletResponse源码

    在Java Web开发中,`HttpServletRequest`和`HttpServletResponse`是两个至关重要的接口,它们是Java Servlet API的核心组成部分,用于处理客户端(通常是Web浏览器)与服务器之间的HTTP通信。这两个接口提供了丰富的...

    HttpServletRequest与HttpServletResponse的实现类.docx

    在Java Web开发中,HttpServletRequest和HttpServletResponse是Servlet API中的核心接口,它们分别代表了客户端的HTTP请求和服务器的HTTP响应。每次客户端向Web服务器发起请求时,服务器都会为每个请求创建一个...

    基于Spring的HttpInvoker实现改写egova_invoker.zip

    ProxyFactory.proxy 方法,生成接口的代理对象,直接调用方法客户端和服务器端的接口和实体类要一致,实体类必须是可以序列化的比如:定义Bean: public class DemoBean implements java.io.Serializable{ ...

    HttpServletResponse

    `HttpServletResponse`接口是Java Servlet API中的核心接口之一,主要用于处理HTTP响应。在Web应用开发过程中,通过`HttpServletResponse`可以向客户端发送响应数据,包括设置响应头、状态码等。对于中文乱码问题、...

    Java Web程序设计入门课件-HttpServletResponse和HttpServletRequest.pptx

    总的来说,`HttpServletResponse`和`HttpServletRequest`是Java Web编程中处理HTTP请求和响应的核心工具。理解并熟练掌握它们的使用,对于进行Java Web应用程序的开发至关重要。这两个接口提供的方法能够帮助开发者...

    private void sendVideo(HttpServletRequest request, HttpServletResponse….pdf

    `HttpServletResponse`和`HttpServletRequest`是Java Servlet API的一部分,用于处理客户端请求和服务器响应。`getOutputStream()`方法用于获取用于发送响应的`ServletOutputStream`。 知识点七:数据传输过程 在...

    HTTP请求头概述(HttpServletRequest)

    以上代码展示了如何使用`HttpServletRequest`和`HttpServletResponse`接口来处理和设置请求头及响应头,这对于构建高效、安全且功能丰富的Web应用程序至关重要。通过对这些头信息的有效管理和利用,可以极大地提升...

    Struts2在Action中获得Response对象的四种方法

    然而,与Struts1.x不同,Struts2的Action类不再直接接收HttpServletRequest和HttpServletResponse对象作为execute方法的参数。这使得在Action中直接获取Response对象变得稍显复杂。下面我们将详细介绍在Struts2中,...

    自学HttpServletResponse

    ### 自学HttpServletResponse ...掌握了`HttpServletResponse`的使用方法后,可以更灵活地控制HTTP响应,从而提高Web应用的功能性和可用性。同时,通过设置合适的HTTP状态码和响应头,可以增强与客户端之间的交互体验。

    javax.servlet 的JAR包

    javax.servlet JAR包,解决找不到 import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; jar包问题

    Servlet请求和响应的资料,帮助初学者掌握Servlet的请求和响应

    由于HTTP协议的无状态特性,每次请求完成后,HttpServletRequest和HttpServletResponse对象都会被销毁,以释放资源。 总结起来,Servlet请求和响应机制涉及客户端与服务器间的交互,包括HTTP请求的发送、Web容器的...

    JAVAWEB-09:HttpServletRequest对象&会话管理之Cookie

    服务器可以通过`HttpServletResponse.addCookie()`方法设置Cookie,而`HttpServletRequest.getCookies()`则用于读取Cookie。Cookie通常包含键值对,例如用户名或会话ID。每个Cookie都有一个名称、值、过期时间、路径...

    JavaWeb程序设计入门课件HttpServletRes

    【标题】"JavaWeb程序设计入门课件HttpServletRes"主要涵盖了JavaWeb开发中的核心概念,特别是关于HttpServlet和HttpServletRequest、HttpServletResponse两个关键接口的使用。在JavaWeb开发中,这些是构建动态web...

    javaWEB总结(7):HttpServlet和HttpServletRequest

    在Java Web开发中,`HttpServlet`和`HttpServletRequest`是两个至关重要的类,它们构成了Java Servlet API的基础,用于处理HTTP请求并生成响应。本篇总结将深入探讨这两个类的使用和功能,帮助你更好地理解Java Web...

    java学习笔记经典版

    在Java Web开发中,HttpServletRequest和HttpServletResponse是Servlet处理HTTP请求和响应的关键工具。开发者通常会在doGet()或doPost()方法中处理它们,从而实现业务逻辑,例如读取请求参数、处理数据、生成响应...

Global site tag (gtag.js) - Google Analytics