Java Servlet请求参数为空

问题描述 投票:1回答:4

我正在研究一个简单的java servlet。似乎服务器没有获取参数。这是我的doPost()代码。

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String a = request.getParameter("a");
        String b = request.getParameter("b");
        System.out.println("I started doing something " + a + " " + b);

    }

这是我的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>AutoPresServerlet</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<description></description>
<display-name>Main</display-name>
<servlet-name>Main</servlet-name>
<servlet-class>com.altechwebdesign.java.autopres.Main</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Main</servlet-name>
<url-pattern>/Main</url-pattern>
</servlet-mapping>
</web-app>

我正在使用Chrome的Advanced Rest Client发送POST请求。

java jsp webserver http-post server
4个回答
0
投票

您显示的证据中没有任何内容可以解释为什么参数为空。

似乎服务器没有获取参数。

我认为这意味着你有证据表明你的doPost方法实际上被调用了。这表明web.xml正确地将请求指向您的servlet代码。

这意味着参数未显示的原因是它们没有被提供(正确)。但这种情况发生在客户端代码和/或它发送的请求中,而您还没有向我们展示。

(也有可能你没有任何证据,你的“如果......似乎......”只是一个猜测。如果是这种情况,你需要找出正在发生的事情,并且/或者向我们展示证据你真的有。)

我也不明白为什么你在这里提到了JSP。您没有向我们展示任何JSP代码,它不太可能与您的问题直接相关。


0
投票

你需要一个表单或jsp页面来携带html输入类型值并触发一个servlet。 那么只有你的servlet才能获得价值 我建议在index.jsp写表格代码,并从form调用action / Main。 流应该是这样的

index.jsp-> submitform-> main servlet


0
投票

当且仅当您的操作被以下数据触发时(无论获取或发布)a = test_for_a&b = test_for_b,Servlet可以在您的代码中获取参数

你可以添加一些带名字的输入/ select / textarea(这是你在servlet中使用的参数名,即a和b)。

好吧,ajax将是另一个解决方案,这超出了我们的范围,我敢打赌。


0
投票

您可以通过以下方式测试请求和响应是否正常工作:PrintWriter writer = response.getWriter(); writer.write(“这是我的帖子”); ,您必须有一个html表单来提交&b值。检查那里的操作和方法是否正确,或者重新启动服务器并再试一次..

© www.soinside.com 2019 - 2024. All rights reserved.