190713-07(service 请求处理){content}

创建并运行一个简单的Servlet 程序,完成浏览器和服务器的简单交互


Request 对象:

问题:

浏览器发起请求到服务器,会遵循HTTP 协议将请求数据发送给服务器。

那么服务器接受到请求的数据改怎么存储呢?不但要存,而且要保证完成性。

解决:

使用对象进行存储,服务器每接受一个请求,就创建一个对象专门的存储此次请求的请求数据。

request 对象解释:

服务器接收到浏览器的请求后,会创建一个Request 对象,对象中存储了此次请求相关的请求数据。服务器在调用 Servlet 时会将创建的Request 对象作为实参传递给 Servlet 的方法,比如:service 方法。

使用:

获取请求头数据

获取请求行数据获取用户数据


读取HTTP 头的方法

下面的方法可用在Servlet 程序中读取 HTTP 头。这些方法通过 HttpServletRequest 对象可用。

方法& 描述:

Cookie[] getCookies()

返回一个数组,包含客户端发送该请求的所有的Cookie 对象。

Object getAttribute(String name)

以对象形式返回已命名属性的值,如果没有给定名称的属性存在,则返回null。

String getCharacterEncoding()

返回请求主体中使用的字符编码的名称。

String getContextPath()

返回指示请求上下文的请求URI 部分。

String getHeader(String name)

以字符串形式返回指定的请求头的值。

String getMethod()

返回请求的HTTP 方法的名称,例如,GET、POST 或 PUT。

String getParameter(String name)

以字符串形式返回请求参数的值,或者如果参数不存在则返回null。

备注:如果参数是中文获取不到,那么需要在服务器上设置server.xml配置文件,需要配置useBodyEncodingForURI="true"

<Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"/>

String getPathInfo()

当请求发出时,返回与客户端发送的URL 相关的任何额外的路径信息。

String getProtocol()

返回请求协议的名称和版本。

String getQueryString()

返回包含在路径后的请求URL 中的查询字符串。

String getRemoteAddr()

返回发送请求的客户端的互联网协议(IP)地址。

String getRequestURI()

从协议名称直到HTTP 请求的第一行的查询字符串中,返回该请求的 URL 的一部分。

String getServletPath()

返回调用JSP 的请求的 URL 的一部分。

String[] getParameterValues(String name)

返回一个字符串对象的数组,包含所有给定的请求参数的值,如果参数不存在则返回null。

int getIntHeader(String name)

返回指定的请求头的值为一个int 值。

int getServerPort()

返回接收到这个请求的端口号。

int getParameterMap()

将参数封装成Map 类型。



Response 对象:

问题:

在使用Request 对象获取了请求数据并进行处理后,处理的结果如何显示到浏览器中呢?

解决:

使用Response 对象服务器在调用指定的Servlet 进行请求处理的时候,会给 Servlet 的方法传递两个实参 request 和 response。其中 request 中封存了请求相关的请求数据,而response 则是用来进行响应的一个对象。

 使用:

设置响应头

设置响应编码格式

设置HTTP 响应报头的方法

下面的方法可用于在Servlet 程序中设置 HTTP 响应报头。这些方法通过 HttpServletResponse 对象可用。

方法& 描述

void addCookie(Cookie cookie)

把指定的cookie 添加到响应。

void addHeader(String name, String value)

添加一个带有给定的名称和值的响应报头。

void sendRedirect(String location)

使用指定的重定向位置URL 发送临时重定向响应到客户端。

void setCharacterEncoding(String charset)

设置被发送到客户端的响应的字符编码(MIME 字符集)例如,UTF-8。

void setContentType(String type)

如果响应还未被提交,设置被发送到客户端的响应的内容类型。

void setHeader(String name, String value)

设置一个带有给定的名称和值的响应报头。

void setStatus(int sc)

为该响应设置状态码。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,844评论 6 13
  • 一. Java基础部分.................................................
    wy_sure阅读 9,228评论 0 11
  • http://blog.csdn.net/luman1991/article/details/52678559 基...
    Nic_ofh阅读 5,841评论 0 3
  • JAVA面试题 1、作用域public,private,protected,以及不写时的区别答:区别如下:作用域 ...
    JA尐白阅读 4,853评论 1 0
  • JSP总结(经典) day1 JSP 定义: 1)Java Server Page, Java EE 组件,本...
    java日记阅读 8,824评论 0 13