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
应用的名称
转发
原文地址:https://www.cnblogs.com/1997WY/p/10705943.html