在Java中将数据插入数据库而不进入下一个屏幕?
我使用JSP和servlet首先在JSP页面中显示一个表单,然后将所有参数插入servlet中的一个表中。下面是我正在使用的一些代码:在Java中将数据插入数据库而不进入下一个屏幕?,java,jsp,servlets,Java,Jsp,Servlets,我使用JSP和servlet首先在JSP页面中显示一个表单,然后将所有参数插入servlet中的一个表中。下面是我正在使用的一些代码: <form action="ClassServlet" method="post"> <fieldset> <label for="year">Year</label> <input type="text" name="yea
<form action="ClassServlet" method="post">
<fieldset>
<label for="year">Year</label>
<input type="text" name="year" id="year" class="text ui-widget-content ui-corner-all" />
<label for="subject">Subject</label> <input type="text" name="subject" id="subject" value="" class="text ui-widget-content ui-corner-all" />
<label for="name">Name of your class</label> <input type="text" name="name1" id="name1" value="" class="text ui-widget-content ui-corner-all" />
<input type="hidden" name="teacher" id="teacher"
<%
out.println("value=\""+TeacherId+"\"");
%>
class="text ui-widget-content ui-corner-all" />
<input type="submit" value="Add">
</fieldset>
</form>
代码运行得非常好,但作为新手,我想知道是否有任何可能的方法在一个页面上完成相同的任务。如果是,那怎么办?请提供帮助?您需要的是一个名为ajax的流程 您不希望转到新页面,而是希望向服务器发送消息以进行插入,但不进行页面更改 请看一看如何将jquery与servlet结合使用,因此在javascript中的流程类似于以下内容
$.post('/servlet');
然后在该servlet中,只需执行insert SQL语句
请看一个简短的示例以进一步说明。您要寻找的是一个称为ajax的过程 您不希望转到新页面,而是希望向服务器发送消息以进行插入,但不进行页面更改 请看一看如何将jquery与servlet结合使用,因此在javascript中的流程类似于以下内容
$.post('/servlet');
然后在该servlet中,只需执行insert SQL语句
请看一个简短的示例以进一步说明。在java脚本中使用XmlHttpRequest,您可以将输入和输出都放在同一个页面上 下面的代码片段应该适合您
var xhReq = new XMLHttpRequest();
xhReq.open("post", "ClassServlet", false);
xhReq.send(null);
var serverResponse = xhReq.responseText;
alert(serverResponse);
在提交按钮的单击事件中使用此代码。。。然后,它会将请求发送到“ClassServelet”,并在警报框中显示输出。使用java脚本中的XmlHttpRequest,可以在同一页面上同时显示输入和输出 下面的代码片段应该适合您
var xhReq = new XMLHttpRequest();
xhReq.open("post", "ClassServlet", false);
xhReq.send(null);
var serverResponse = xhReq.responseText;
alert(serverResponse);
在提交按钮的单击事件中使用此代码。。。然后它会将请求发送到“ClassServelet”,并在警报框中显示输出。有几种技术,我只能推荐 您可以在一个servlet中完成这一切,如下所示:
ps = con.prepareStatement("insert into TB_classes"
+ "( CLASS_TEACHER_ID , CLASS_NAME , CLASS_YEAR , CLASS_SUBJECT) "
+ "values (? , ? , ? ,?)");
ps.setString(1, request.getParameter("teacher"));
ps.setString(2, request.getParameter("name1"));
ps.setString(3, request.getParameter("year"));
ps.setString(4, request.getParameter("subject"));
ps.executeUpdate();
ResultSet primaryKeysRS = ps.getGeneratedKeys();
if (primaryKeyRS.next()) {
int classId = primaryKeyRS.getInt(1);
...
}
primaryKeysRS.close();
- 在HTTP GET(正常页面调用)上,填充数据模型=do
并将其与表单、视图一起转发到JSPrequest.setAttribute(“TeacherId”,TeacherId)
- 在HTTPPOST上(从表单返回),执行SQL插入,对于新的情况,调用doGet
${TeacherId}
从数据库本身派生新的记录ID。在MySQL中,这将是一个INT AUTO_INCR字段。生成的主键可以按如下方式检索:
ps = con.prepareStatement("insert into TB_classes"
+ "( CLASS_TEACHER_ID , CLASS_NAME , CLASS_YEAR , CLASS_SUBJECT) "
+ "values (? , ? , ? ,?)");
ps.setString(1, request.getParameter("teacher"));
ps.setString(2, request.getParameter("name1"));
ps.setString(3, request.getParameter("year"));
ps.setString(4, request.getParameter("subject"));
ps.executeUpdate();
ResultSet primaryKeysRS = ps.getGeneratedKeys();
if (primaryKeyRS.next()) {
int classId = primaryKeyRS.getInt(1);
...
}
primaryKeysRS.close();
有几种技术,我只能推荐 您可以在一个servlet中完成这一切,如下所示:
ps = con.prepareStatement("insert into TB_classes"
+ "( CLASS_TEACHER_ID , CLASS_NAME , CLASS_YEAR , CLASS_SUBJECT) "
+ "values (? , ? , ? ,?)");
ps.setString(1, request.getParameter("teacher"));
ps.setString(2, request.getParameter("name1"));
ps.setString(3, request.getParameter("year"));
ps.setString(4, request.getParameter("subject"));
ps.executeUpdate();
ResultSet primaryKeysRS = ps.getGeneratedKeys();
if (primaryKeyRS.next()) {
int classId = primaryKeyRS.getInt(1);
...
}
primaryKeysRS.close();
- 在HTTP GET(正常页面调用)上,填充数据模型=do
并将其与表单、视图一起转发到JSPrequest.setAttribute(“TeacherId”,TeacherId)
- 在HTTPPOST上(从表单返回),执行SQL插入,对于新的情况,调用doGet
${TeacherId}
从数据库本身派生新的记录ID。在MySQL中,这将是一个INT AUTO_INCR字段。生成的主键可以按如下方式检索:
ps = con.prepareStatement("insert into TB_classes"
+ "( CLASS_TEACHER_ID , CLASS_NAME , CLASS_YEAR , CLASS_SUBJECT) "
+ "values (? , ? , ? ,?)");
ps.setString(1, request.getParameter("teacher"));
ps.setString(2, request.getParameter("name1"));
ps.setString(3, request.getParameter("year"));
ps.setString(4, request.getParameter("subject"));
ps.executeUpdate();
ResultSet primaryKeysRS = ps.getGeneratedKeys();
if (primaryKeyRS.next()) {
int classId = primaryKeyRS.getInt(1);
...
}
primaryKeysRS.close();
你听说过Ajax吗?是的,但从未尝试过(实际上我是第一次使用J2ee)。Ajax解决了你的问题。了解Ajax并了解如何将其添加到您的项目中。您听说过Ajax吗?是的,但从未尝试过(实际上我是第一次使用J2ee)。Ajax解决了您的问题。了解Ajax并了解如何将其添加到项目中。