5.2.6 获得HTTP请求消息头的各个方法的演示
优质
小牛编辑
135浏览
2023-12-01
本例将演示如何使用在HttpServletRequest接口中定义的方法来获得HTTP请求消息头。
例子 : 获得HTTP请求头信息的各个方法的演示
1. 编写HeaderInfo类
HeaderInfo类负责获得并输出HTTP请求消息头的所有字段名及字段值,该类的实现代码如下:
package chapter5;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HeaderInfo extends HttpServlet
{
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
// 返回HTTP请求头的Content-Length字段的值
out.println("getContentLength:" + request.getContentLength() + "</br>");
// 返回HTTP请求头的Content-Type字段的值
out.println("getContentType:" + request.getContentType() + "</br>");
// 通常从HTTP请求头的Content-Type字段中提取
out.println("getCharacterEncoding:" + request.getCharacterEncoding() + "</br>");
out.println("<br/><b>HTTP响应头信息</b><br/>");
java.util.Enumeration headers = request.getHeaderNames();
while(headers.hasMoreElements())
{
String header = headers.nextElement().toString();
out.println(header + ":" + request.getHeader(header) + "</br>");
}
// 如果有多个同名的字段,可以使用getHeaderNames方法来同名字段的所有值
}
}
2. 配置HeaderInfo类
HeaderInfo类的配置代码如下:
<servlet>
<servlet-name>HeaderInfo</servlet-name>
<servlet-class>chapter5.HeaderInfo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HeaderInfo</servlet-name>
<url-pattern>/HeaderInfo</url-pattern>
</servlet-mapping>
3. 查看输出的HTTP请求消息头
在浏览器地址栏中输入如下的URL:
http://localhost:8080/demo/HeaderInfo
浏览器中显示的结果如图5.9所示。
图5.9 输出HTTP请求消息头