Java 如何在Tomcat中从客户端获取自定义头?
当我运行下面的代码块时,我只看到Tomcat中的一些请求头。我没有看到我添加的一些定制的Java 如何在Tomcat中从客户端获取自定义头?,java,tomcat,servlets,Java,Tomcat,Servlets,当我运行下面的代码块时,我只看到Tomcat中的一些请求头。我没有看到我添加的一些定制的 public void doGet(HttpServletRequest request, HttpServletResponse response) { List<String> headerNames = Collections.list((Enumeration<String>) request.getHeaderNames()); for (String ke
public void doGet(HttpServletRequest request, HttpServletResponse response) {
List<String> headerNames = Collections.list((Enumeration<String>) request.getHeaderNames());
for (String key : headerNames) {
System.out.println("Key: " + key + " Value: " + request.getHeader(key));
}
}
下面是servlet打印出来的内容(请注意,定制的_头值不在这里):
谁能告诉我我做错了什么吗?出现了一个用户错误。我只是在我设置的浏览器中再次尝试发送自定义标题,结果成功了 这应该行得通。如何测试添加自定义头?有两件事:在像Apache或Nginx这样的tomcat之前有代理/负载平衡器吗?这个请求是否在到达servlet之前被重定向/转发?这两种情况都可能导致丢失自定义标头。
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.5
Cache-Control: max-age=0
Connection: keep-alive
Cookie: test=test
Host: localhost:8080
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:37.0) Gecko/20100101 Firefox/37.0
CUSTOM_HEADER: test
Key: host Value: localhost:8080
Key: connection Value: keep-alive
Key: cache-control Value: max-age=0
Key: accept Value: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Key: user-agent Value: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36
Key: accept-encoding Value: gzip, deflate, sdch
Key: accept-language Value: en-US,en;q=0.8