对于客户端的一个请求,服务端建立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
每当客户端给Web服务器发送一个http请求,web服务器就会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。request和response对象就代表请求和响应,所以我们可以通过request对象...
ProxyFactory.proxy 方法,生成接口的代理对象,直接调用方法客户端和服务器端的接口和实体类要一致,实体类必须是可以序列化的比如:定义Bean: public class DemoBean implements java.io.Serializable{ ...
protected void doGet(HttpServletRequest req,HttpServletResponse resp) 用于处理GET类型的Http请求的方法 protected void doPost(HttpServletRequest req,HttpServletResponse resp) 用于处理POST类型的Http请求...
javax.servlet JAR包,解决找不到 import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; jar包问题
HTTP请求的内容,创建各种对象(例如HttpServletRequest、HttpServletResponse、 HttpSession等) 3. web容器通过请求的URL来选择需要用哪个Servlet来处理请求(这个就是web.xml中配置的或者 @webServlet注解的作用...
学生管理程序 ...import java.io.IOException;... public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); }
用mvc实现对学生信息的删除修改插入和数据库的连接,J2ee实现代码。package cn.controller; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import ...
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. ...
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....
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation....
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * @author ideawu * */ public class HelloController implements Controller { /* * private ...
对数据库的增删改查,前端页面和后端数据 使用java对数据库进行基本操作 并设计前端页面。 package control; import service.UserServiceImpl; import vo.User; import javax.servlet.ServletException; import ...
Http协议和Tomcat服务器 36 JavaWeb核心之Servlet 41 HttpServletResponse 46 HttpServletRequest 51 会话技术Cookie&Session; 55 动态页面技术(JSP/EL/JSTL) 59 javaEE的开发模式 65 事务(JDBC) 67 Json数据...
HttpServlet实现类 HttpServletRequest HttpServletResponse接口 Get Post方法使用 说明
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { String parentID = request.getParameter("parent");//获得id的值 if ...
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String fileToBeRead="e://test.xls"; ReadExcel(fileToBeRead); } public void ...
生鲜配送平台源码java nowcoder问答平台 本项目是一个基于 SpringBoot 的问答平台。数据库使用了 redis 和 ...事件流等功能,同时通过一个异步消息框架来实现事件的异步处理。...httpservletresponse 来封装请求和相响应
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub doPost(req, resp); } @Override protected ...