对于客户端的一个请求,服务端建立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
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.
A 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("这是字符流输出的内容");
获取字节流还是字符流只能选择一种。
相关推荐
Java中,引入javax.servlet.http.HttpServletRequest和javax.servlet.http.HttpServletResponse包的必备jar包:org.apache.commons.httpclient.jar
在Java Web应用开发中,HttpServletRequest和HttpServletResponse是两个核心的接口,它们扮演着至关重要的角色。这两个接口是Java Servlet API的一部分,为开发人员提供了处理HTTP请求和构造HTTP响应的丰富功能。...
总结,`HttpServletRequest`和`HttpServletResponse`是Servlet编程的核心,它们帮助开发者处理HTTP请求并构造响应,实现了服务器与客户端的通信。了解并熟练掌握这两个接口的使用,对于进行Java Web开发至关重要。在...
Java中的HttpServletRequest和HttpServletResponse是Servlet API中的两个核心接口,它们分别代表了客户端向服务器发起的HTTP请求和服务器向客户端返回的HTTP响应。了解这两个接口对于任何进行Java Web开发的程序员来...
HttpServletRequest和HttpServletResponse是Servlet编程中两个最重要的接口,它们提供了对HTTP请求和响应的控制和处理。下面是对HttpServletRequest和HttpServletResponse的方法总结: HttpServletRequest: 1. ...
在Java Web开发中,`HttpServletRequest`和`HttpServletResponse`是两个至关重要的接口,它们是Java Servlet API的核心组成部分,用于处理客户端(通常是Web浏览器)与服务器之间的HTTP通信。这两个接口提供了丰富的...
在Java Web开发中,HttpServletRequest和HttpServletResponse是Servlet API中的核心接口,它们分别代表了客户端的HTTP请求和服务器的HTTP响应。每次客户端向Web服务器发起请求时,服务器都会为每个请求创建一个...
ProxyFactory.proxy 方法,生成接口的代理对象,直接调用方法客户端和服务器端的接口和实体类要一致,实体类必须是可以序列化的比如:定义Bean: public class DemoBean implements java.io.Serializable{ ...
`HttpServletResponse`接口是Java Servlet API中的核心接口之一,主要用于处理HTTP响应。在Web应用开发过程中,通过`HttpServletResponse`可以向客户端发送响应数据,包括设置响应头、状态码等。对于中文乱码问题、...
总的来说,`HttpServletResponse`和`HttpServletRequest`是Java Web编程中处理HTTP请求和响应的核心工具。理解并熟练掌握它们的使用,对于进行Java Web应用程序的开发至关重要。这两个接口提供的方法能够帮助开发者...
`HttpServletResponse`和`HttpServletRequest`是Java Servlet API的一部分,用于处理客户端请求和服务器响应。`getOutputStream()`方法用于获取用于发送响应的`ServletOutputStream`。 知识点七:数据传输过程 在...
以上代码展示了如何使用`HttpServletRequest`和`HttpServletResponse`接口来处理和设置请求头及响应头,这对于构建高效、安全且功能丰富的Web应用程序至关重要。通过对这些头信息的有效管理和利用,可以极大地提升...
然而,与Struts1.x不同,Struts2的Action类不再直接接收HttpServletRequest和HttpServletResponse对象作为execute方法的参数。这使得在Action中直接获取Response对象变得稍显复杂。下面我们将详细介绍在Struts2中,...
### 自学HttpServletResponse ...掌握了`HttpServletResponse`的使用方法后,可以更灵活地控制HTTP响应,从而提高Web应用的功能性和可用性。同时,通过设置合适的HTTP状态码和响应头,可以增强与客户端之间的交互体验。
javax.servlet JAR包,解决找不到 import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; jar包问题
由于HTTP协议的无状态特性,每次请求完成后,HttpServletRequest和HttpServletResponse对象都会被销毁,以释放资源。 总结起来,Servlet请求和响应机制涉及客户端与服务器间的交互,包括HTTP请求的发送、Web容器的...
服务器可以通过`HttpServletResponse.addCookie()`方法设置Cookie,而`HttpServletRequest.getCookies()`则用于读取Cookie。Cookie通常包含键值对,例如用户名或会话ID。每个Cookie都有一个名称、值、过期时间、路径...
【标题】"JavaWeb程序设计入门课件HttpServletRes"主要涵盖了JavaWeb开发中的核心概念,特别是关于HttpServlet和HttpServletRequest、HttpServletResponse两个关键接口的使用。在JavaWeb开发中,这些是构建动态web...
在Java Web开发中,`HttpServlet`和`HttpServletRequest`是两个至关重要的类,它们构成了Java Servlet API的基础,用于处理HTTP请求并生成响应。本篇总结将深入探讨这两个类的使用和功能,帮助你更好地理解Java Web...
在Java Web开发中,HttpServletRequest和HttpServletResponse是Servlet处理HTTP请求和响应的关键工具。开发者通常会在doGet()或doPost()方法中处理它们,从而实现业务逻辑,例如读取请求参数、处理数据、生成响应...