首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Java Web 多表單提交到同一 Servlet:隱藏域區分 action 或多 Servlet 映射

     編輯:程式設計疑難解答

方案 1:隱藏域標識操作類型(最常用)

<form action="UserServlet" method="post">
    <input type="hidden" name="action" value="login">
    ...
</form>
<form action="UserServlet" method="post">
    <input type="hidden" name="action" value="register">
    ...
</form>
// Servlet
String action = request.getParameter("action");
switch (action) {
    case "login": doLogin(req, resp); break;
    case "register": doRegister(req, resp); break;
}

方案 2:不同 URL 映射同一 Servlet

<servlet-mapping>
    <servlet-name>UserServlet</servlet-name>
    <url-pattern>/user/login</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>UserServlet</servlet-name>
    <url-pattern>/user/register</url-pattern>
</servlet-mapping>
// Servlet 根據 request.getServletPath() 分派
String path = request.getServletPath();
if ("/user/login".equals(path)) ...

方案 3:REST 風格 + 方法分派(Spring MVC 推薦)

@PostMapping("/user/login")    public void login(...) {}
@PostMapping("/user/register") public void register(...) {}

方案 1 最簡單、兼容性最好;現代框架建議方案 3,URL 語義清晰、易測試。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved