可以使用 HttpServletRequest 的 getHeaderNames() 方法来读取 HTTP 头信息。该方法返回了一个枚举,包含与当前的 HTTP 请求相关的头信息。
通过遍历枚举的方式可以获取所有头字段及相关值信息。
使用 hasMoreElements() 方法来确定何时停止循环,使用 nextElement() 方法来获取每个参数的名称。
具体测试代码如下:
package Servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Httphead extends HttpServlet {
/**
* Constructor of the object.
*/
public Httphead() {
super();
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
Enumeration headerNames = request.getHeaderNames();
while(headerNames.hasMoreElements()){
String name = (String) headerNames.nextElement();
String value = request.getHeader(name);
out.println("head信息如下:");
out.println("===========================");
out.println("zi duan ming:"+name+" "+"zhi "+value);
System.out.println("zi duan ming:"+name+" "+"zhi "+value);
}
}
/**
*获取客户端http头信息测试代码
*/
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
}
}

网友评论