gpt4 book ai didi

java - 使用 servlet 处理多部分请求和普通请求

转载 作者:行者123 更新时间:2023-11-29 09:02:25 26 4
gpt4 key购买 nike

我正在使用 servlet API 3.0 和 AJAX 开发网络应用程序。我已经在本地开发和测试(在 Eclipse 中使用 run-jetty-run),它似乎工作正常。但是,当我部署到我的 Tomcat7 实例时,我从对 getPart() 的调用中得到了一个 NullPointerException

我的设置如下:

我有一个普通的 servlet(没有 @MultipartConfig 注释)。

在我的 doPost() 中,我正在检查“Activity ”参数,该参数告诉 servlet 用户正在尝试做什么并确定下一步的操作过程。我知道在 multipart/form-data 请求中,它们作为流的一部分存在,所以我写了一个辅助方法来抽象它。简而言之,它会尝试将其作为参数获取,如果找不到,则假定它是一个多部分请求,因此它会调用 getPart("activity") 来获取该部分,然后读取来自部件的 InputStream 的值。

现在,在 RJR 本地,我可以毫无问题地执行这段代码。 servlet 能够在正常请求和多部分请求中接收“activity”参数。然后我远程部署到 Tomcat7 实例。测试应用程序后,正常请求工作,但是当多部分请求到达时,它们在我调用 req.getPart("activity").getInputStream();

时抛出空指针异常

我想我的问题的关键归结为是否可以在同一个 servlet 中正确接收 multipart/form-data 以及正常请求。

此外,这应该没有什么区别,但是当我远程部署和测试时,我使用 SSH 隧道将流量路由到 tomcat 实例的端口。

最佳答案

凭直觉,我尝试添加 @MultipartConfig 注释,它起作用了。这表明不同的 servlet 容器以不同的方式处理注释。

关于java - 使用 servlet 处理多部分请求和普通请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16594144/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com