是否可以让相同的servlet执行验证?看起来,这里可能需要使用某种递归,但是当我在电子邮件框中输入某些内容并单击提交时,电子邮件参数仍为空。 当我点击提交后,URL更改为:http://localhost/servlet/EmailServlet?Email=test
如何在servlet中获取表单参数? request.getAttribute不起作用
该页面显示Email: null
和文本框,但我期待它通过验证功能(即不是空)。是否有可能实现这种类型的递归行为?
public class EmailServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String theForm =
"<FORM METHOD=\"GET\" ACTION=\"EmailServlet\">\n<INPUT TYPE=\"TEXT\" NAME=\"Email\"><P>\n"
+ "<INPUT TYPE=\"SUBMIT\">\n</FORM>";
String email = (String) request.getAttribute("Email");
// Bogus email validation...
if(email == null)
{
out.println("Email: " + email + "\n" + theForm);
}
else if(emailAddressNotBogous(email))
{
out.println("Thank you!");
}
else
{
out.println("“Invalid input. Please try again:\n" + theForm);
}
out.flush();
}
}
更新:如接受的答案指出,代码中有错误。将getAttribute更改为getParameter可修复“问题”:)。
String email =
(String)
请求。
getAttribute
getParameter(“Email”);
@Vincent DOH!我不能相信我这么做......谢谢指出我的错误,现在一切正常。 – Kiril 2010-02-18 21:32:08