student.jsp是输入要插入的记录的页面,输入信息完毕后,在该页面上点击新增按钮,提交到smid.jsp中进行插入记录到数据库的处理,使用javabean执行sql语句,在smid.jsp中定义String insert来标记是否插入成功。插入完毕后,重定向回student.jsp,并且将insert的值也传到student.jsp以下是smid.jsp,上半部分是插入按钮的处理
<jsp:useBean id="sdb" class="jbean.Sdb1" scope="request"/>
<jsp:setProperty name="sdb" property="*"/>
<body><%
String insert="true";
String sno=sdb.toChinese(request.getParameter("sno"));
String sname=sdb.toChinese(request.getParameter("sname"));
String dept=sdb.toChinese(request.getParameter("dept"));
String starttime=sdb.toChinese(request.getParameter("starttime"));
String sql="";
ResultSet check=null;if(request.getParameter("tvalue")!=null)
{
if(request.getParameter("tvalue").equals("x"))//插入记录
{ if(sno!=null)
{ if(!sno.equals(""))
{ //查询数据库中是否已经存在该学号的记录信息
String str="select * from Students where Sno='"+sno+"'";
check=sdb.executeQuery(str); if(check.next())
{ insert="yicunzai"; }
else
{ //数据库中还没有该学号的记录,可以插入
sql="insert into Students(Sno,Sname,DeptNo,StartDate,CreditHours) values('"+sno+"','"+sname+"','"+dept+"','"+starttime+"',0)";
insert=String.valueOf(sdb.executeUpdate(sql));
} }
else
{
insert="youkongzhi";
}
}
response.sendRedirect("student.jsp?xvalue="+insert);
}
else
{ if(request.getParameter("tvalue").equals("y"))//删除记录
{
String cbox=request.getParameter("cbox");
if(cbox!=null)//复选框选中了
{
String va[]=request.getParameterValues("cbox"); int len=java.lang.reflect.Array.getLength(va);
if(len>=1)
{
String sql2=""; for(int i=0;i<len;i++)
{//先删除成绩表中的相应记录
sql2="delete from Reports where Sno='"+va[i]+"'";
int bupdate2=sdb.executeUpdate(sql2);
sql="delete from Students where Sno='"+va[i]+"'";
int bupdate=sdb.executeUpdate(sql);
}
}
}
response.sendRedirect("student.jsp");
}
}//response.setHeader("Refresh","0.0001");}
else
{response.sendRedirect("student.jsp");
}%></body>当我输入可以插入数据库的记录信息时,正常的情况是记录成功插入数据库,并且insert=String.valueOf(sdb.executeUpdate(sql));奇怪的是,有时候我输入的记录信息是可以插入数据库的,原来的数据库中并不存在该记录,但是程序在执行时有时后却会执行if(check.next())里的代码,使insert=“已存在”;同时与这个if相对应的else里的代码也会执行,将记录成功插入数据库。好像是先执行else里的代码再执行if里的代码的,因为最后重定向回student.jsp时传递过去的insert的值是“yicunzai”
<jsp:useBean id="sdb" class="jbean.Sdb1" scope="request"/>
<jsp:setProperty name="sdb" property="*"/>
<body><%
String insert="true";
String sno=sdb.toChinese(request.getParameter("sno"));
String sname=sdb.toChinese(request.getParameter("sname"));
String dept=sdb.toChinese(request.getParameter("dept"));
String starttime=sdb.toChinese(request.getParameter("starttime"));
String sql="";
ResultSet check=null;if(request.getParameter("tvalue")!=null)
{
if(request.getParameter("tvalue").equals("x"))//插入记录
{ if(sno!=null)
{ if(!sno.equals(""))
{ //查询数据库中是否已经存在该学号的记录信息
String str="select * from Students where Sno='"+sno+"'";
check=sdb.executeQuery(str); if(check.next())
{ insert="yicunzai"; }
else
{ //数据库中还没有该学号的记录,可以插入
sql="insert into Students(Sno,Sname,DeptNo,StartDate,CreditHours) values('"+sno+"','"+sname+"','"+dept+"','"+starttime+"',0)";
insert=String.valueOf(sdb.executeUpdate(sql));
} }
else
{
insert="youkongzhi";
}
}
response.sendRedirect("student.jsp?xvalue="+insert);
}
else
{ if(request.getParameter("tvalue").equals("y"))//删除记录
{
String cbox=request.getParameter("cbox");
if(cbox!=null)//复选框选中了
{
String va[]=request.getParameterValues("cbox"); int len=java.lang.reflect.Array.getLength(va);
if(len>=1)
{
String sql2=""; for(int i=0;i<len;i++)
{//先删除成绩表中的相应记录
sql2="delete from Reports where Sno='"+va[i]+"'";
int bupdate2=sdb.executeUpdate(sql2);
sql="delete from Students where Sno='"+va[i]+"'";
int bupdate=sdb.executeUpdate(sql);
}
}
}
response.sendRedirect("student.jsp");
}
}//response.setHeader("Refresh","0.0001");}
else
{response.sendRedirect("student.jsp");
}%></body>当我输入可以插入数据库的记录信息时,正常的情况是记录成功插入数据库,并且insert=String.valueOf(sdb.executeUpdate(sql));奇怪的是,有时候我输入的记录信息是可以插入数据库的,原来的数据库中并不存在该记录,但是程序在执行时有时后却会执行if(check.next())里的代码,使insert=“已存在”;同时与这个if相对应的else里的代码也会执行,将记录成功插入数据库。好像是先执行else里的代码再执行if里的代码的,因为最后重定向回student.jsp时传递过去的insert的值是“yicunzai”
解决方案 »
- ssh中级联的表中记录怎么也删除不了
- java.lang.IllegalStateException: Cannot forward after response has been committed
- 求一个简单的网站统计系统代码
- 如何将一个List对象从servlet中转发到JSP中并将list中的对象取出?
- response.sendRedirect(...)
- 50 分 问javascript 不会的东西
- AJAX中事件处理出现的问题
- 救急!各位大侠,jsp中包含的类的放置问题
- 用jsp怎样把从数据库来 的数据用饼图,曲线图,立方图表现出来。
- 请教各位高手,为什么我的这段jsp程序,不执行check()函数?!急!
- eclipse3.2怎么断点调试jsp
- 问一个路径问题
---------------------------------------------------------
重定向到一个新的页面,也许你查找问题的时候能清晰一些
晕ing...
<jsp:useBean id="sdb" class="jbean.Sdb1" scope="request"/>
<jsp:setProperty name="sdb" property="*"/>
<body><%
String insert="true";
String sno=sdb.toChinese(request.getParameter("sno"));
String sname=sdb.toChinese(request.getParameter("sname"));
String dept=sdb.toChinese(request.getParameter("dept"));
String starttime=sdb.toChinese(request.getParameter("starttime"));
String sql="";
ResultSet check=null;if(request.getParameter("tvalue")!=null)
{
if(request.getParameter("tvalue").equals("x"))//插入记录
{
if(sno!=null)
{
if(!sno.equals(""))
{
//查询数据库中是否已经存在该学号的记录信息
String str="select * from Students where Sno='"+sno+"'";
check=sdb.executeQuery(str); if(check.next())
{
insert="yicunzai";
}
else
{
//数据库中还没有该学号的记录,可以插入
sql="insert into Students(Sno,Sname,DeptNo,StartDate,CreditHours) values('"+sno+"','"+sname+"','"+dept+"','"+starttime+"',0)";
insert=String.valueOf(sdb.executeUpdate(sql));
} }
else
{
insert="youkongzhi";
}
}
response.sendRedirect("student.jsp?xvalue="+insert);
}
else
{
//删除记录
if(request.getParameter("tvalue").equals("y"))
{
String cbox=request.getParameter("cbox"); //复选框选中了
if(cbox!=null)
{
String va[]=request.getParameterValues("cbox"); int len=java.lang.reflect.Array.getLength(va);
if(len>=1)
{
String sql2=""; for(int i=0;i<len;i++)
{
//先删除成绩表中的相应记录
sql2="delete from Reports where Sno='"+va[i]+"'";
int bupdate2=sdb.executeUpdate(sql2);
sql="delete from Students where Sno='"+va[i]+"'";
int bupdate=sdb.executeUpdate(sql);
}
}
}
response.sendRedirect("student.jsp");
}
} //response.setHeader("Refresh","0.0001");
}
else
{
response.sendRedirect("student.jsp");
}%>
早就流行用label了.
在加上借的几本书都是这么写的,也没有很多时间学,你说我怎么知道现在流行怎么写啊,
求你们就别再说这个了,
帮忙解决下我的问题吧