Javaweb第四次

文章目录
系列文章目录
请求和响应
一、HttpServletResponse对象
二、HTTPServletResponse应用
请求和响应
Servlet最主要的作用就是处理客户端的请求,并向客户端做出响应。为此,针对Servlet的每次请求,Web服务器在调用service()方法之前,都会创建两个对象,分别是HttpServletRequest和HTTPServletResponse。其中,HttpServletReques用于封装HTTP请求消息,简称request对象。HTTPServletResponse用于封装HTTP响应消息,简称response对象。
一、HttpServletResponse对象
在Servlet API中,定义了一个HttpServletResponse接口,它继承自ServletResponse接口,专门来封装HTTP响应消息。HTTP响应消息分为状态行、响应消息头、消息体三部分。

发生状态码的相关方法
方法 描述
void setStatus (int sc) 设置此次给客户端的状态码
voidsendError(int sc) 使用指定的状态码向客户端返回一个错误响应,并且清空缓冲区
voidsendError(int sc,String) 使用指定的状态码和状态描述向客户端返回一个错误响应,并清空缓冲区

发送响应消息头相关的方法
相应方法 说明
setContentType(String type) 设定Content-Type消息头
setContentLength(int length) 设定给Content-Length消息头
setCharacterEncoding(String charset) 设定返回给客户端的内容的编码方式
addHeader(String name,String value) 新增 string类型的值到名为name的header
addlnHeader(String name,int value) 新增int类型的值到名为name的header
addDateHeader(String name,long date) 以毫秒数新增类型为date的header
addCookie(Cookie c) 为Set-Cookie消息头增加啊一个值

发送响应消息体的相关方法
方法 描述
ServletOutputStream 返回一个适合写入二进制数据ServletOutputStream对象,并通过调用flush()提交这次响应
PrintWriter getWriter() 返回一个PrintWriter对象,该对象可以将字符文本发送到客户端

二、HTTPServletResponse应用
1.解决中文输出乱码问题
为了解决浏览器中显示的乱码,我们在HttpServletResponse接口中,提供了一个setCharacterEncoding()方法,改方法用于设置字符的编码方式,而解决乱码有两种方案:
第一种:response.setCharacterEncoding(“utf-8”);设置HTTPServletResponse使用utf-8编码
response.setHeader(“Content-Type”,“text/html;charset=utf-8”);通知浏览器使用utf-8解码
第二种方式:response.setContentType(“text/html;charset=utf-8”) 这个包含了第一种方string式的两个功能

2.HttpServletRequest对象
HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。
获取请求行的相关方法
String getMethod()该方法用于获取HTTP 请求消息中的请求方式
String getRequestURI()该方法用于获取请求行中资源名称部分,即位于URL 的主机和端口之后、参数部分之前的部分
String getQueryString()该方法用于获取请求行中的参数部分,也就是资源路径后面问号(?)以后的所有内容
String getProtocol()该方法用于获取请求行中的协议名和版本,例如,HTTP/1.0或HTTP/1.1
String getContextPath()该方法用于获取请求URL中属于Web应用程序的路径,这个路径以“1”开头,表示相对于整个Web站点的根目录,路径结尾不含“/”。如果请求URL属于Web站点的根目录,那么返回结果为空字符串

总结
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值