用Java获取URL中的参数

5

我有一个小Servlet,使用XSL和XML生成PDF。由于我想通过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参数发送是一个非常糟糕的想法,原因有几个:1)它会泄露关于您系统的不必要信息,2)往往很难确保只引用“有效”的文件,3)它使内部切换到另一个系统更加困难(因为您仍然需要处理文件名),4)我相信还有很多其他原因... - Joachim Sauer
将Servlet部署与源文件绑定到相同的文件系统? - Brian Agnew
我知道这不是一个好主意,但在这种特殊情况下,这样做是想要的...所以我就这么做了 :-) - Thevagabond
4个回答

6
在 SERVLET 中必须有请求,对吗?

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

String xsl_path = request.getParameter("xsl");


3

我认为你只是想要request.getParameter(String param)

例如:

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

请注意(供将来参考),上述内容无法处理多个xml参数。为此,您应该使用request.getParameterValues(String param)
如上所述,您可能不应该传递文件名。优先选择上传文件,生成PDF并使其可用(仅通过响应,或者可能将其存储在servlet部署的本地并返回ID以供以后检索?)

只有一个xml和一个xsl参数。 - Thevagabond

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");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接