我對servlets相當陌生,所以我希望這不是一個明顯的問題。所以我有一個使用模板在NetBeans中創建的簡單Java servlet。我有我在web.xml中列出允許的主機上創建一個環境參數(我的請求參數一個是我將比較反對這個列表中的網址):在servlet的web.xml中保留單詞嗎?
<context-param>
<param-name>allowedHosts</param-name>
<param-value>
http://opendap.co-ops.nos.noaa.gov/thredds/wms/NOAA/CBOFS/MODELS/201206/nos.cbofs.fields.nowcast.20120612.t00z.nc?service=WMS&version=1.3.0&request=GetCapabilities
http://www.google.com
http://www.facebook.com
</param-value>
</context-param>
當我把唯一的虛擬網址像谷歌和Facebook,這完美的作品。但是,當我添加第一個URL時,Tomcat服務器甚至無法部署。看着我的日誌,我看到在一個很長的堆棧跟蹤的頂部:
SEVERE: Parse Fatal Error at line 19 column 146: The reference to entity "version" must end with the ';' delimiter.
org.xml.sax.SAXParseException: The reference to entity "version" must end with the ';' delimiter.
行19列146確實指向一個長的URL我在的上下文參數列表中的「版本」部分。所以顯然「版本」是某種保留字。如果我從這個URL中刪除「版本」參數,「請求」也是一個問題。
我可以通過只做http://opendap.co-ops.nos.noaa.gov/thredds/wms/
作爲URL來解決這個問題(因爲最終我想要一個不是特定URL的主機列表),但是我想知道爲了解決這個問題需要做些什麼呢?有沒有辦法在web.xml中包含具有這些「保留字」的URL?
謝謝!
我不確定您的答案是否正常工作。你是否建議我對網址進行編碼?如'&'而不是? – carmenism
是的,我會更新我的答案(我有幾個去做,因爲StackOverflow的編輯器有點挑剔!) – davidfrancis
謝謝;這工作! – carmenism