我一直试图在不使用表单的情况下将数据从JSP页面传递到Java Servlet。 JSP表单返回自身(action =“”),然后验证表单元素。然后,我想将用户的输入传递给Java Servlet。找不到好的解决方案。有什么简单的方法吗?
fanzongqi 回答:如何不使用表单将数据从JSP页面传递到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,可以简单地尝试一下,但是您需要在链接上添加参数 这是一个例子。
<a href="ServletName?theNameOfParameterToSend=TheValueOfTheParameter&anotherNameOfParameterToSend=TheAotherValueOfTheParameter>
这是真实的例子
<a href="MyApp?currancy=usd&country=usa>Send</a>
通过这种方式,您无法在帖子中通过String查询发送数据,该数据将始终在链接中可见。
希望我能帮上忙。