java创建response对象_javaweb入门-----request与response的作用

request对象和request对象的原理

1.request和response对象request对象和request对象的原理时由服务器创建的,我们来使用它们

2.request对象是来获取请求消息,response对象是来设置响应消息

requset对象继承体系结构:

ServletRequest -- 接口

| 继承

HttpServletRequest -- 接口

request功能:

1.获取请求行数据

*GET /day14/demo1?name=zhangsan HTTP/1.1

*方法

1. 获取请求方式:GET

*String getMethod()

**2.获取虚拟目录:/day14

*String getContextPath()

3.获取Servlet资源路径:/demo1

*String getServletPath()

4.获取get方式的请求参数:name=zhangsan

*String getQueryString()

**5.获取请求URI:/day14/demo1

*String getRequestURI(); /day14/demo1

*StringBuffer getRequestURL(): http://localhost/day14/demo1

例子:

URI:统一资源标识符 共和国

URL:统一资源定位符 中华人民共和国

6.获取协议及版本:HTTP/1.1

*String getProtocol()

7.获取客户机的IP地址:

*String getRemoteAddr()

2.获取请求头数据

*方法:

***String getHeader(String name);通过请求头的名称获取请求头的值

*Enumeration getHeaderNames();获取所有的请求头名称

//Enumeration 枚举的一种,想象成迭代器,可以遍历出数据

3.获取请求体数据

*请求体:只有post请求方式,才有请求体,在请求体中封装了post请求的请求参数

*步骤:

1.获取流对象

* BufferedReader getReader();获取字符输入流,只能操作字符数据

* ServletInputStream getInputStream();获取字节输入流,可以操作所有类型数据

2.再从流对象中拿数据

2:主要功能

1.获取请求参数通用方式(无论get或post请求方式都可以使用下列方法获取请求参数)

1.String getParameter(String name):根据参数名称获取参数值

username=zhangsan&pswd=123

2.String[] getParametervalues(String name):根据参数名称获取参数值的数组

hobby=study&hobby=game

3.Enumeration getParameterNames():获取所有请求的参数名称

4.MapgetParameterMap();获取所有参数的map集合

**中文乱码问题 *

get方式:tomcat8 已结将get方式乱码问题解决了

*post方式:会乱码 request.setCharacterEncoding("utf-8");

2.请求转发(包含):一种在服务器内部的资源跳转方式(例如 servletA 需要用 servletB的资源)

作用:

1.当一个请求需要由多个servlet协作完成时,这时可以使用请求转发(包含)

2.请求转发:由后一个servlet响应数据(体),前一个servlet可以设置响应头(留头不留体)

3.请求包含:有两个servlet共同完成响应体,由前一个servlet设置响应头(留体不留头)

4.无论请求转发或包含,都是使用同一个request和response

1.步骤:

1.通过request对象获取请求转发器对象:RequestDisspatcher getRequestDisspatcher(String path)

2.使用RequestDisspatcher对象来进行转发:forward(ServletRequest request, ServletResponse response)

(RequestDisspatcher对象来进行转发:include 包含的方法)

2.特点:

1.浏览器地址栏路径没有发生变化

2.只能转发到当前服务器内部资源中

3.转发是同一次请求

请求转发:留头不留体

请求包含:留体不留头

请求转发和重定向的区别:

1.请求转发是一个请求一个响应,重定向是两次请求两次响应

2.请求转发地址栏内容不变,重定向显示最后一个请求的地址

3.请求转发只能转发到本项目中的其他servlet,重定向还可以重定向到其他项目的servlet

4.请求转发是服务器内转发,只需写出要转发的servlet路径,重定向要写出项目名

重定向 response:请求给servlet1 servlet1做不了回应给客户端,再请求servlet2,servlet2回应

response.sendRedirect("/webrequest/redirect2"); 重定向要加上项目名

request作为域时的主要功能:

共享数据:

*域对象:一个有作用范围的对象,可以在范围内共享数据

*request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据

*方法:

1.void setAttribute(String name, Object obj);存储数据

2.Object getAttribute(String name);通过键获取值

3.void removeAttribute(String name);通过键移除键值对

了解了request和response的基本用法,并且掌握了请求转发包含与重定向的知识后,就可以明白当请求到来时,servlet是如何处理的。下文将介绍数据转发到页面,呈现给用户是用怎样的方式,jsp与el表达式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值