1、通过Request获得请求行
方法:
String getRequestURI() (获取所有资源地址,相对地址,绝对地址,网络地址)
StringBuffer getRequestURL() (获取网络资源地址)
最重要的是:
String getContextPath() (获得web应用的名称)在开发过程中尽量所有的有web应用名称的地方调用getContextPath()
代码:String contextpath=request.getContextPath()
2、通过Request获得客户机的信息
方法:
代码:String remoteAddr=request.getRemoteAddr();
提示:cmd 里通过Ping某个网址可以拿到这个网址的外网IP地址
3、通过Request获得请求头
String getHeader(String name) 这个方法用的比较多,通过传入参数name的这个键,获得对应的值
4、通过Request获得请求参数
方法;
①获取单个值:
String getParameter(String name) 传入name单个键,返回name键对应的值
②获取多个值:(例如页面里多选的情况)
String[ ] getParameterValues(String name) 传入name单个键,返回name键对应的多个值,返回到string
数组里
③获得所有的参数,封装到一个map中Map
Map gerParameterMap()
代码:
Map
for(Map.Entry
{/........}
-------------------------------------------------分割线----------------------------------------------
5.Request完成请求转发
获得请求转发器----path是转发的地址
RequestDispatcher dispatcher =getRequestDispatcher(String path)
执行转发方法
dispatcher.forward(request,response)
6.Request作为域对象
原因:每次访问request和response都是新创建的对象,作用范围是一次请求中
方法:
setAttribute(String name, object o)
getAttribute(String name)
removeAttribute(String name)
-------------------------------------------------分割线----------------------------------------------
注意:
①和servletContext比较:
ServletContext 创建:服务器启动 Request 创建:访问时创建
销毁:服务器关闭 销毁:响应结束时
域作用范围:整个web应用 域作用范围:一次请求中
②重定向与转发区别:
重定向:两次请求,地址改变,可访问外部网站
转发:一次请求,地址不变,只能内部资源,转发性能优于重定向
注意:重定向地址不改变,当用户刷新时,存在页面刷不刷新回去的问题
③客户端地址与服务器端地址区别:
客户端地址:写上web应用名称
直接输入的地址,重定向地址
服务器端地址:不需要写上web应用名称
转发