我正在使用 jsp 将数据发布到 servlet,但在发布数据后,我想保持原样的 jsp。简要地说: 1)我在这里有一个带有 2 个文本框的 jsp。我使用 javascript 通过单击按钮将数据从一个复制到另一个。2)我使用相同的按钮将数据发布到数据库。3)我希望同时完成这两个动作,不应该去第三个jsp(servlet post result),但是,应该去我使用的另一个jsp。
我能够分别处理这两件事,但在一起我无法做到。数据在数据库中更新并在第一个文本中显示一个新行(这是我的错,我正在使用重定向方式)或将数据从第一个文本框移动到另一个文本框并且不进行数据发布。请帮我做这件事。下面是我用来做的代码。
复制数据和发布数据的java脚本是:
function move(){
document.getElementById('tgt1').value = document.getElementById('Allocation').value;
document.getElementById('Allocation').value="";
document.getElementById("Send").disabled=true;
}
function invoke(but)
{
if(but==0)
{
document.myform.action="Alloc_Insert.do";
}
按钮的方法声明如下:
<table><tr><center><td><input type="Submit" value="Allocate" id="Send" onClick="invoke(0);move();" style="width:150px" style="font-size:100%"/></td></center></tr> </table>
我使用的servlet代码如下。
ResultSet rs=null;
String Add=request.getParameter("tgt1");
String user=(String) session.getAttribute("myusername");
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();Date d1 = new Date();
String d1_str = new SimpleDateFormat("yyyy-MM-dd").format(d1);
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system","tiger");
PreparedStatement ps=con.prepareStatement("UPDATE SCOPE1 SET ALLOCATED='"+d1_str+"', SPECIALIST='"+user+"' WHERE DBID='"+Add+"'");
con.setAutoCommit(true);
int i=ps.executeUpdate();
if(i==1)
{
String redirectURL= "Update_Counts.jsp";
response.sendRedirect(redirectURL);
}
else{
out.print("retry");
}
我想发布数据以及与复制到第二个文本框中的文本框值相同,因为我将使用它作为我的进一步参考。
谢谢