request对象API(常用)
1、获取客户机信息:
getMethod(); --- 获取请求的方式
getQueryString(); --- 获取请求路径后的提交参数的字符串
getRequestURL(); --- 获取请求路径的url
getRemoteAddr(); --- 获取客户机的ip地址
2、获取请求头的方法:
getHeader(String name); --- 获得一个key对应一个value的请求头
getHeaders(String name); --- 获得一个key对应多个value的请求头
3、获取请求参数的方法:
getParameter(String name); --- 获得提交的参数(一个name对应一个value)
getParameterValues(String name); --- 获得提交的参数(一个name对应多个value)
getParameterMap(); --- 获得提交的参数,将提交的参数的名称和对应的值存入到一个Map集合中
4、request作为域对象存储数据的方法:
setAttribute(Sring,object) 向request域对象中存入数据;
getAttribute(String) 从request域对象中获取数据;
removeAttrubute(String) 从request域对象中移除数据;
5、Request对象接收表单请求参数的中文乱码处理
1、POST方式接收中文
2、GET方式接收中文
6、Request作为域对象作用范围
Request对象其实就是从客户端浏览器向服务器发送的一次请求信息的封装。那么实质上向Request中所保存的数据有效期也是一次请求范围。
一次请求范围:从客户端浏览器向服务器发送一次请求,服务器针对这次请求对浏览器作出响应。当服务器作出响应之后,请求对象就销毁了,保存在其中的数据就无效了。
7、请求转发的写法
通过ServletRequest对象获得RequestDispatcher对象。
RequestDispather dispather = request.getRequestDispather("/xxx/yyy.jsp");
再根据RequestDispatcher中的方法进行请求转发
dispather.forward(request,response);
即可实现请求转发。
8、请求转发和重定向区别总结
1、请求转发是一次请求一次响应,而重定向是两次请求两次响应。
2、请求转发地址栏不会变化的,重定向地址栏发生变化。
3、请求转发路径不带工程名,重定向需要带工程名路径。
4、请求转发只能在本网站内部,重定向可以定向到任何网站。
注意:
如果需要使用request进行值传递,需要通过请求转发完成。如果页面需要跳转到其他网站上必须使用重定向。