2017-09-16 66 views
-2

我想循環遍歷包含java servlet中所有表頭名稱的枚舉。我的代碼如下:在Java Servlet中循環遍歷包含表頭名稱的Enumeration

public class ServletParameterServlet extends HttpServlet 
{ 
    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException 
    { 
     ServletConfig c = this.getServletConfig(); 
     PrintWriter writer = response.getWriter(); 

     writer.append("database: ").append(c.getInitParameter("database")) 
       .append(", server: ").append(c.getInitParameter("server")); 

     Enumeration<String> headerNames = ((HttpServletRequest) c).getHeaderNames(); 


    } 
} 

這是正確的語法嗎?如何實際迭代Java中的枚舉值?特別是在這種情況下?

感謝您的幫助, 馬克

+0

當你將ServletConfig轉換爲HttpServletRequest時,你想達到什麼目的? – Henry

+0

這是日食的建議:)這對我沒有意義。 –

回答

1

這就像普通的Java迭代:

for (Enumeration<?> e = request.getHeaderNames(); e.hasMoreElements();) { 
    String nextHeaderName = (String) e.nextElement(); 
    String headerValue = request.getHeader(nextHeaderName); 
} 

注意,對於某些設置,這是在HTTP頭有點危險可以被複制。在這種情況下,headerValue將只是具有該名稱的第一個HTTP標頭。使用getHeaders來獲得所有這些。

扔掉所有Eclipse的建議 - 這是垃圾。