HttpServletRequest类

HttpServletRequest类

service方法中的request的类型是ServletRequest,而doGet/doPost方法的request的类型是HttpServletRequest,

HttpServletRequest是ServletRequest的子接口,功能和方法更加强大,

 

通过request获取请求行

获得客户端的请求方式:

String Method();

 

获取页面地址

String getRequestURI();

 

获取web名称

String getContextPath();

 

通过request获取请求头

获取请求头

String getHeader(String name);

 

通过request获得请求体

获取参数

String getParameter(string name);

 

//获取一个name多个值

String【】 hobys=request.getParameterValues();

 

获取所有请求的参数值

Map<String.String[]> map=request.getParameterMap();

 

Map<String ,String[]> map=request.getParameterMap();

//遍历

Set<String > set=map.keyset();

for(String s:set){

sysout(s+"")

String[] str=map.get(s);

for(String ss:str){

sysout(ss+"")

}

}

 

 

request的其他功能

 

request是一个域对象

setAttribute(String name, Object o)

getAttribute(String name)

removeAttribute(String name)

 

请求转发

 

获得请求转发器----path是转发的地址

RequestDispatcher getRequestDispatcher(String path)

通过转发器对象转发

requestDispathcer.forward(ServletRequest request, ServletResponse response)

 

中文转码

request.setcharacterEncoding("UTF-8");

 

转发与重定向的区别?

          1)重定向两次请求,转发一次请求

          2)重定向地址栏的地址变化,转发地址不变

          3)重新定向可以访问外部网站 转发只能访问内部资源

          4)转发的性能要优于重定向

 

       注意:客户端地址与服务器端地址的写法?

          客户端地址:

              是客户端去访问服务器的地址,服务器外部的地址,特点:写上web应用名        

             

              直接输入地址:

              重定向

 

          服务器端地址:

              服务器内部资源的跳转的地址,特点:不需要写web应用的名称

 

              转发

 

 

 

 

相关文章