如何在不使用表单的情况下将数据从 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 中可见。
希望我能有所帮助。
我一直试图在不使用表单的情况下将数据从 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 中可见。
希望我能有所帮助。