(7) HttpServletRequest

来源:互联网 发布:oracle数据库面试题 编辑:程序博客网 时间:2024/06/06 14:10

方法概述:

获取用户信息:

getResquestURL()    返回客户端发出请求的完整URLgetResquestURI()    返回客户端发出请求的资源名部分getQueryString()    获取请求头以GET方式提交的所有传递的参数和值getRemoteAddr()     获取请求方的 IPgetRemoteHost()     获取请求方的主机名(如果客户DNS没注册则返回 IP)

获取HTTP信息:

getHead(消息头)   获取HTTP的某个消息头内容  getHeaderNames() 获取HTTP的所有消息头,返回的是枚举                 用 while(has) 方式遍历

获取表单内容:

getParameter()getParameterValues()

转发:
转发是在服务器端完成的,所以我们使用的是同一个 response 和 request,request.getRequestDispatcher(“/servlet”) 不用写应用名
这里写图片描述

注意:
1. forward 不可以请求该 web 应用外的资源
2. forward 是发生在 web 服务器的,所以使用的是同一个 response request
3. 使用 sendRedirect 方法不能通过 request.setAttr 把属性传给下个Servlet
因为,重定向后,request 对象是不同的
简言之:
一个 web 资源收到客户端请求后,通知服务器去调用另外一个web资源进行处理,称之为请求转发
一个web资源收到客户端请求后,通知浏览器去访问另一个web资源,称之为请求重定向

sendRedirect 和 forward 区别 ?
1. 叫法不同,第一个是 重定向、第二个是 转发
2. 实际发生的位置不一样
 sendRedirect 发生在 浏览器客户端
  forward 发生在 web 服务器
3. 用法不一样
  request.getRequestDispatcher(“/ WEB应用下的页面”).forward( )
  response.sendRedirect(“/ 指明 WEB应用 / 页面”);
4. 能够去的范围不一样
  forward 方法只能转发给同一个 web 站点的资源,而 sendRedirect 方法还可以定位到同一个 web 站点的其他应用
5. 转发发生在服务器,是不会影响到浏览器上面的地址栏的。
  重定向发生在客户端,浏览器的地址栏会发生改变
6. forward 方法在运行时 request 和 response 是相同的
  sendRedirect 方法在运行时 request 和 response 是不同的

待补充.....

0 0
原创粉丝点击