2013-07-31 178 views
0

我是新来的servelts编程。就在今天,我开始学习它。我有点困惑与Servlets混淆

HttpServletRequest。它是写在一个教程中,类doGET()有一些方法,如形式“查询”数据,HTTP请求标头和客户端的主机名。

就我所知,HttpServletRequest就像一个协议,允许SERVER从CLIENT端接收请求到 。我的问题是,为什么客户端在
有趣,知道像客户端的主机名或HTTP请求标头。

如果你发现这个问题很愚蠢,请不要投我的问题,因为我不想失去这个帐户与堆栈溢出。

+0

仅供参考,在问题被拒绝时您不会失去您的帐户;-) – Uooo

+0

因为那个,我丢失了2个 –

+0

您是否知道[HTTP协议]的基础知识(http://de.wikipedia.org /维基/ HTTP)?看起来问题更多的是缺乏HTTP协议而不是servlet的知识。 – Uooo

回答

0

首先HttpServletRequest是一个由您的Servlet容器实现的接口。 HttpServlet是一个便利的类,您的Servlet可以扩展并获取所有HTTP特定的方法。 doGet()是处理GET请求的方法之一。

HttpServletRequest的是一样的东西的协议允许服务器从客户端接收侧

HTTPrequest-response协议的请求。您的容器根据Web服务器收到的实际请求形成一个HttpServletRequest对象,并将其转发给您的Servlet的方法service()

为什么客户端在 中感兴趣,知道客户端的主机名或HTTP请求标头。

如果您在谈论Servlet,它总是在服务器端执行。因此,Servlet使用request.getHeader()等方法从客户端发送的请求中读取标头。这些头文件提供了一些有关请求(或响应)的额外信息。许多与请求相关的头文件都由服务器本身处理。举例来说,服务器如何限制对文档的访问。服务器使用HTTP标头,而servlet不需要知道详细信息。当服务器收到对受限页面的请求时,它会检查请求是否包含适当的授权标头,其中包含有效的用户名和密码。如果没有,服务器本身发出一个包含WWW-Authenticate头的响应,告诉浏览器访问资源被拒绝。当客户端发送一个包含适当Authorization头部的请求时,服务器授予访问权限,并通过getRemoteUser()调用为servlet调用对用户名称的访问权限。

阅读 HTTP Made Really EasyAn Overview of Request Headers