从表单发布操作中检索值

时间:2015-12-17 18:52:54

标签: java html jsp google-app-engine http

假设我有一些form喜欢这个

<form action="/add_scores" method="post" enctype="multipart/form-data" id="add_link_form">
    <input type="text" name="subject" id="subject" placeholder="subject">
    <input type="text" name="link" id="link">
    <button type="submit" class="btn btn-success">Add</button>
</form>

在我的servlet

@Override
public void doPost(HttpServletRequest req, HttpServletResponse res)
        throws ServletException, IOException {
    String subject = (String)req.getAttribute("subject");
    String link = (String)req.getAttribute("link");
}
当我发布内容时,

subjectlink始终为null。但是,如果我在表单中使用method="get"并将doPost重命名为doGet,则此代码可以正常运行,而subjectlink则很好。 (如果我将getAttribute()更改为getParameter()),也会发生这种情况。

为什么会发生这种情况?如何在doPost中获取我的价值?

1 个答案:

答案 0 :(得分:1)

根据Difference between getAttribute() and getParameter(),您应该使用getParameter,而不是getAttribute;根据{{​​3}},您的表单应使用enctype="application/x-www-form-urlencoded" - 多部分编码类型适用于上传文件的表单。顺便说一句,这两个问题都不取决于你是使用App Engine还是其他网络服务器。