【Servlet】Request对象

 

 

request对象和response原理:

*request和response对象由服务器创建

*request对象获取请求消息,response对象设置响应消息


request对象继承结构:


request对象功能:

获取请求行数据:

string getMethod():                    获取请求方式  GET

string getContextPath():            获取虚拟目录    /day14

 String getServletPath():               获取Servlet路径 /demo1

String getQueryString():                获取get方式的请求参数  name=zhangsan

URI:    统一资源定位符

URL:统一资源标识符  

String getRequestURI():               /day14/demo1

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

String getProtocol():                      获取协议及版本:     HTTP/1.1

String getRemoteAddr():             获取客户机的IP地址 

获取请求头数据:

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

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

遍历输出请求头

 获取user-agent判断浏览器版本:

Chrome/Firefox 

判断请求从哪里来:

 如果直接访问返回null

防盗链:

获取请求体数据

获取流对象:

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

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

从流对象中拿数据:

获取请求参数通用方式: 

get和post都可以用以下方法获取参数。

此时get和post没有区别,所以doGet和doPost方法的代码一样

在doGet中调用doPost方法即可

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

String[] getParameter(String name):根据参数名称获取参数值的数组,用于复选框

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

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

 中文乱码问题:

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

*post方式:设置流的编码(第一行)


请求转发:

一种在服务器内部的资源跳转方式

 

 

request.getRequestDispatcher("/转发资源路径").forword(request,response);

特点:

*浏览器地址栏路径不变

*只能访问服务器内部的资源

*转发是一次请求,多个资源使用同一个请求


共享数据

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

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

 方法:

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

Object getAttribute(String name):通过键获取值

void removeAttribute(String name):通过值移除键值对


获取ServletContext:ServletContext getServletContext()



猜你喜欢

转载自blog.csdn.net/m0_52043808/article/details/123919224
今日推荐