`
passion99
  • 浏览: 11158 次
  • 性别: 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

    HttpServletRequest与HttpServletResponse的实现类.docx

    每当客户端给Web服务器发送一个http请求,web服务器就会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。request和response对象就代表请求和响应,所以我们可以通过request对象...

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

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

    JavaWeb开发技术-Servlet接口及其实现类.pptx

    protected void doGet(HttpServletRequest req,HttpServletResponse resp) 用于处理GET类型的Http请求的方法 protected void doPost(HttpServletRequest req,HttpServletResponse resp) 用于处理POST类型的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、 HttpSession等) 3. web容器通过请求的URL来选择需要用哪个Servlet来处理请求(这个就是web.xml中配置的或者 @webServlet注解的作用...

    LoginServlet

    学生管理程序 ...import java.io.IOException;... public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); }

    mvc实现操作

    用mvc实现对学生信息的删除修改插入和数据库的连接,J2ee实现代码。package cn.controller; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import ...

    servlet2.4doc

    doOptions(HttpServletRequest, HttpServletResponse) - Method in class javax.servlet.http.HttpServlet Called by the server (via the service method) to allow a servlet to handle a OPTIONS request. ...

    jQuerySlide切换

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } public void doPost(HttpServletRequest ...

    比较简单的添加购物车,不过只有一个小程序

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session=request.getSession(); ShopCart cart=(ShopCart)session....

    springmvc的一个简单实例

    import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation....

    SpringMvc初步入门简单的例子

    import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * @author ideawu * */ public class HelloController implements Controller { /* * private ...

    数据库的基本操作前端加后端.zip

    对数据库的增删改查,前端页面和后端数据 使用java对数据库进行基本操作 并设计前端页面。 package control; import service.UserServiceImpl; import vo.User; import javax.servlet.ServletException; import ...

    javaweb详细笔记,绝对详细(内含代码)

    Http协议和Tomcat服务器 36 JavaWeb核心之Servlet 41 HttpServletResponse 46 HttpServletRequest 51 会话技术Cookie&Session; 55 动态页面技术(JSP/EL/JSTL) 59 javaEE的开发模式 65 事务(JDBC) 67 Json数据...

    user_login.java

    HttpServlet实现类 HttpServletRequest HttpServletResponse接口 Get Post方法使用 说明

    ajax树形展示,JavaScript

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { String parentID = request.getParameter("parent");//获得id的值 if ...

    EXCEL POI 代码和资源下载

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String fileToBeRead="e://test.xls"; ReadExcel(fileToBeRead); } public void ...

    生鲜配送平台源码java-nowcoder-project:现在编码器项目

    生鲜配送平台源码java nowcoder问答平台 本项目是一个基于 SpringBoot 的问答平台。数据库使用了 redis 和 ...事件流等功能,同时通过一个异步消息框架来实现事件的异步处理。...httpservletresponse 来封装请求和相响应

    zhifuba-demo.rar

    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub doPost(req, resp); } @Override protected ...

Global site tag (gtag.js) - Google Analytics