2012-11-19 89 views
5

我有一個使用XSL和XML生成PDF的Servlet。 因爲我想指定通過URL的文件,我需要從那裏得到這些參數:使用Java檢索URL中的參數

localhost/Servlet?xml=c:\xml\test.xml&xsl=c:\xsl\test.xsl 

,這樣我需要的是

c:\xml\test.xml 
c:\xsl\test.xsl 

的參數和那些需要被讀入變量XML文件和xsl文件。

我有這個,但並沒有真正幫助我,我想,因爲我不知道該怎麼值應用到變量:

Map para = request.getParameterMap(); 
java.util.Iterator it = params.keySet().iterator(); 

while (it.hasNext()) 
{ 
    String key = (String) it.next(); 
    String value = ((String[]) para.get(key))[ 0 ]; 
} 

如何做到這一點任何想法?

感謝,

TheVagabond

+1

將URL作爲URL參數發送文件路徑是**非常糟糕的主意有幾個原因:1)它提供了不必要的關於你的系統的信息,2)通常很難確保只有「有效」的文件被引用,3)它切換到另一個系統內部更難(因爲你仍然需要處理文件名),4.)我敢肯定還有很多其他的原因...... –

+0

將你的servlet部署與源文件綁定到同一個文件系統上? –

+0

我知道這不是一個好主意,但在這種特殊情況下,它是這樣想的...所以我這樣做:-) – Thevagabond

回答

6

在SERVLET中必須要求,是嗎?

String xml_path = request.getParameter(「xml」);

String xsl_path = request.getParameter(「xsl」);

2

這有什麼錯呢?

String xsl = request.getParameter("xsl"); 
String xml = request.getParameter("xml"); 
2

您可以通過HttpServletRequest.getParameter()名剛剛獲得的參數...

String xml-file = request.getParameter("xml"); 
String xsl-file = request.getParameter("xsl"); 
+0

- 沒有工作....需要使用_但除此之外它也有作品 – Thevagabond

3

我覺得你只是想request.getParameter(String param)

例如

String xml = request.getParameter("xml"); 

注(以供將來參考),上述將不會處理多個xml參數。爲此,你應該使用request.getParameterValues(String param)

如上所述,你可能不應該傳遞文件名。首選我會上傳文件,生成PDF並使其可用(只需通過響應,或者將其存儲在本地到您的servlet部署並返回一個ID以供稍後檢索?)

+0

只有一個xml和一個xsl參數 – Thevagabond