您的位置:首页 > 理论基础 > 计算机网络

(7) HttpServletRequest

2015-08-02 11:28 666 查看
方法概述:

获取用户信息:

getResquestURL()    返回客户端发出请求的完整URL
getResquestURI()    返回客户端发出请求的资源名部分
getQueryString()    获取请求头以GET方式提交的所有传递的参数和值
getRemoteAddr()     获取请求方的 IP
getRemoteHost()     获取请求方的主机名(如果客户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 是不同的

待补充.....
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  httpservletrequest