如何在不使用表单的情况下将数据从 JSP 页面传递到 Java Servlet?

How can I pass data from JSP page to a Java Servlet without using form?

我一直试图在不使用表单的情况下将数据从 JSP 页面传递到 Java Servlet。 JSP 表单 returns 自身 (action="") 并且我验证表单元素。然后我想将用户的输入传递给 Java Servlet。找不到好的解决方案。有什么简单的方法吗?

也许你可以试试Ajax。

我用Ajax异步验证账号是否存在

如果账号不存在,会在下方提示。

无需刷新页面即可传递数据

这是我的相关代码。

public User getUserByName(String name) {
        User user = null;
        try {
            conn = DBUtils.getConnection();
            String sql = "select id,name,pwd from user_info where `name`=?";
            statement = conn.prepareStatement(sql);
            statement.setString(1, name);
            resultSet = statement.executeQuery();
            while (resultSet.next()) {
                user = new User();
                user.setName(resultSet.getString("name"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtils.close(conn, statement, resultSet);
        }
        return user;
    }
public class CheckNameServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String name = req.getParameter("name");
        UserDao userDao = new UserDaoImpl();
        User user = userDao.getUserByName(name);
        PrintWriter pw = resp.getWriter();
        if (user == null) {
            pw.print(1);
        } else {
            pw.print(0);
        }
    }
}
<script type="text/javascript">
    function checkName() {
        var name = $("#name").val();
        $.ajax({
            type: "post",
            url: "check",
            data: {"name": name},
            success: function (data) {
                if (data == "0") {
                    $("#msg").html("");
                } else {
                    $("#msg").html("The account does not exist, please re-enter!")
                }
            }
        });
    }
</script>

然后将 msg 放入您的 HTML。

希望对您有所帮助。

我明白你在找什么,如果你想在不使用表单的情况下将参数传递给 Servlet,你可以简单地试试这个,但你需要在 link 这是一个例子。

 <a href="ServletName?theNameOfParameterToSend=TheValueOfTheParameter&anotherNameOfParameterToSend=TheAotherValueOfTheParameter> 

这是真实的例子

<a href="MyApp?currancy=usd&country=usa>Send</a>

通过使用这种方式,您无法通过 post 中的字符串查询发送数据,它将始终在 link 中可见。

希望我能有所帮助。