web-Request

Request:

1.request对象和response对象的原理

      1.tomcat服务器会根据请求url中的资源路径,创建对应的ServletDemo的对象。

      2.tomcat服务器会创建request和response对象,request对象中封装请求消息数据。

      3.tomcat将request和response两个对象传递给service方法,并且调用service方法。

      4.程序员可以通过request对象获取请求消息数据,通过response对象设置响应消息数据。

      5.服务器在给浏览器做出响应之前,会从response对象中拿程序员设置的响应消息数据。

2.request对象继承体系结构:

ServletRequest ---接口

|

HttpServletRequest---接口

|

org.apache.catalina.connector.RequestFacade---实现类

3.request功能:

 1.获取请求消息数据:

 1.获取请求行数据。

GET /crmm/demo1?name=zhangsan HTTP/1.1

方法:

1.获取请求方式:GET

String getMethod();

2.获取虚拟目录:/crmm

String getContextPath()

3.获取Servlet路径:/demo1

String getServletPath()

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

String getQueryString()

5.获取请求URI:/crmm/demo1

String getRequestURI() /crmm/demo1

StringBuffer getRequestURL()     http://localhost/crmm/demo1

URI:统一资源标识符

URL:统一资源定位符

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

String getProtocol()

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

String getRemoteAddr()

2.获取请求头数据。

1.方法:

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

Enumeration<String> getHeaderNames();获取所有请求头名称

3.获取请求体数据。

只有POST请求方式,才有请求体,在请求体中封装了POST请求的请求参数。

步骤:

1.获取流对象

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

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

2.从流对象中拿数据

2.其他功能:

1.获取请求参数,通用方式:不论get/post都可以使用下列方法。

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

2..String[] getParameterValues(String name);根据参数名称获取参数值的数组。

3.Enumeration<String> String getParameterNames();获取所有参数名称

4.Map<String,String[]> getParameterMap();获取所有参数的MAP集合。

中文乱码的问题:::

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

post方式:会乱码

解决:设置流的编码:request.setCharacterEndcoding("utf-8");

2.请求转发:一种在服务器内部资源跳转的方式。

1.步骤:

1.RequestDispatcher getRequestDispatcher(String path);

2.使用RequestDispatcher 对象来进行转发 forward(req,resp);

2.特点:

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

    2.服务器内部资源跳转的方式,不能访问服务器外部的资源。

    3.转发是一次请求。

3.共享数据:

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

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

方法:

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

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

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

4.获取ServletContext

ServletContext getServletContext(); //ApplicationContextFacade

javaBean:标准的Java类

1.要求:

1.类必须public

2.必须提供空参的构造器

3.成员变量必须使用private

4.提供公共setter和getter方法

2.功能:封装数据

概念:

成员变量

属性:setter和getter方法截取后的产物。

例如:getUsername() -->Username-->username

方法:setProperty()

getProperty()

populate(Object obj,Map map)

猜你喜欢

转载自blog.csdn.net/zcl_200886/article/details/106453412
今日推荐