0

我有两个由表单组成的 jsp 页面。一个是“signup.jsp”页面,另一个是“login.jsp”。两个表单动作都被发送到“验证”servlet。servlet 将如何确定已提交的表单,因此将根据用户提交的表单对其进行验证。

4

2 回答 2

4

给提交按钮一个唯一的名称。

<form ...>
    ...
    <input type="submit" name="signup" value="Signup" />
</form>
<form ...>
    ...
    <input type="submit" name="login" value="Login" />
</form>

与所有其他输入元素一样,它们的名称=值对也将作为请求参数发送。所以,你需要在 servlet 中做的只是

if (request.getParameter("signup") != null) {
    // Signup form is submitted.
}
else if (request.getParameter("login") != null) {
    // Login form is submitted.
}

与具体问题无关,这种设计却有些奇怪。我希望每个表单都有一个单独的 servlet。无论您在“验证”servlet 中使用什么代码,都应该将其重构为一个独立的类,您可以在两个 servlet 中导入/使用该类。

也可以看看:

于 2013-02-16T00:23:12.083 回答
1

BalusC 答案的替代方案:

<form ...>
    ...
    <input type="submit" name="signup" value="signup" />
</form>

<form ...>
    ...
    <input type="submit" name="signup" value="login" />
</form>

如果我正确理解 Java 是“按值传递”,那么在 servlet 中您可以使用 switch/case 来检查参数值:

String signup = request.getParameter("signup");
switch(signup){
  case "signup":
    // signup form is submitted
  break;
  case "login":
    // login form is submitted
  break;
}
于 2014-07-20T10:26:30.857 回答