Request请求对象和Response响应对象常用方法

一、request请求对象
1.请求对象常用方法-获取各种路径

返回值			方法名					说明
String			getContextPath()		获取虚拟目录名称
String			getServletPath()		获取Servlet映射路径
String			getRemoteAddr()			获取访问者ip地址
String			getQueryString()		获取请求的消息数据
String			getRequestURI()			获取统一资源标识符
StringBuffer	getRequeatURL()			获取统一资源定位符

2.请求对象常用方法-获取请求头信息

返回值					方法名						说明
String					getHeader(String name)		根据请求头名称获取一个值
Enumeration<String>		getHeaders(String name)		根据请求头名称获取多个值
Enumeration<String>		getHeaderNames()			获取所有请求头名称

3.请求对象常用方法-获取请求参数信息

返回值						方法名								说明
String						getParameter(String name)			根据名称获取数据
String[]					getParameterValues(String name)		根据名称获取所有数据
Enumeration<String>			getParameterNames()					获取所有名称
Map<String, String[]>		getParameterMap()					获取所有参数的键值对

4.流对象获取请求信息

返回值					方法名					说明
BufferedReader			getReader()				获取字符输入流
ServletInputStream		getInputStream()		获取字节输入流

5.中文乱码问题

GET方式,没有乱码。在Tomcat 8 版本后已经解决
POST方式,有乱码问题。可以通过setCharacterEncoding()方法来解决
	request.setCharacterEncoding("UTF-8");

6.请求域request域

返回值		方法名										说明
void		setAttribute(String name, Object value)		向请求域对象中存储数据
Object		getAttribute(String name)					通过名称获取请求域对象中的数据
void		removeAttribute(String name)				通过名称移除请求域对象中的数据

7.请求转发

返回值				方法名															说明
RequestDispatcher	getRequestDispatcher(String name)								获取请求调度对象
void				forward(ServletRequest request, ServletResponse response)		实现转发

8.请求包含

返回值					方法名														说明
RequestDispatcher		getRequestDispatcher(String name)							获取请求调度对象
void					include(ServletRequest request, ServletResponse response)	实现包含

二、response响应对象

1.响应流解决乱码问题

解决乱码	response.setContextType("txt/html;charset=UTF-8");

2.字节流响应消息

返回值					方法名					介绍
ServletOutputStream		getOutputStream()		获取响应字节输出流对象

3.字符流响应消息

返回值			方法名			介绍
PrintWriter		getWriter()		获取响应字符输出流对象

4.设置缓存:对于不经常变化的数据,我们可以设置合理缓存时间,以避免浏览器频繁请求服务器。以此来提高效率

返回值		方法名										介绍
void		setDateHeader(String name, long time)		设置消息头添加缓存
//例如:response.setDateHeader("Expires", System.currentTimeMillis() + 1*60*60*1000);	//1小时的缓存时间

5.定时刷新:过了指定时间后,页面自动进行跳转

返回值		方法名										介绍
void		setHeader(String name, String value)		设置消息头定时刷新
//例如:response.setHeader("Refresh", "5,URL=/response/login.jsp");	//5秒后跳转到登录页面

6.请求重定向:客户端的一次请求到达后,发现需要借助其他Servlet来实现功能

特点:浏览器地址栏会发生改变,两次请求,请求域对象中不能共享数据,可以重定向到其他服务器。

方式一://设置响应状态码为302
		response.setStatus(302);
		//设置响应的资源路径响应到哪里去,通过响应消息头location()来指定
		response.setHeader("location", "/response/servletDemo01");

方式二://响应重定向方法
返回值		方法名							介绍
void		sendRedirect(String name)		设置重定向
//例如:response.sendRedirect(request.getContextPath() + "/servletDemo01");

7.文件下载

设置响应头支持的类型
response.setHeader("Content-Type", "application/octet-stream");
	//Content-Type 消息头名称  支持的类型
	//application/octet-stream 消息头参数  应用的类型为字节流
设置响应头以下载方式打开附件
response.setHeader("Content-Disposition", "attachment;filename=jk.png");
	//Content-Disposition 消息头名称  处理的形式
	//attachment;filename=jk.png 消息头参数  附件形式处理  指定下载文件的名称
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值