假设我有一些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");
}
当我发布内容时, subject
和link
始终为null
。但是,如果我在表单中使用method="get"
并将doPost
重命名为doGet
,则此代码可以正常运行,而subject
和link
则很好。 (如果我将getAttribute()
更改为getParameter()
),也会发生这种情况。
为什么会发生这种情况?如何在doPost
中获取我的价值?
答案 0 :(得分:1)
根据Difference between getAttribute() and getParameter(),您应该使用getParameter
,而不是getAttribute
;根据{{3}},您的表单应使用enctype="application/x-www-form-urlencoded"
- 多部分编码类型适用于上传文件的表单。顺便说一句,这两个问题都不取决于你是使用App Engine还是其他网络服务器。