try{
rs=condata.executeQuery(sql);
if(rs.next()){
%>
<script language="javascript">
alert("此企业信息已经发布!!");
history.back();
</script>
<%
}
else{
wsql="insert into tb_Enterprise(EnterPriseSort,enterPriseName,Operation,WorkArea,Address,Phone,LinkMan,HandSet,Fax,Email,Http,Intro,IssueDate,UserName) values('"+style+"','"+ename+"','"+
operation+"','"+area+"','"+address+"','"+phone+"','"+linkman+"','"+
hand+"','"+fax+"','"+email+"','"+web+"','"+intr+"','"+showdate+"','"+username+"')";
boolean dd=condata.executeInsert(wsql);
if(dd){
%>
<script language="javascript">
alert("企业信息发布成功!!");
</script>
<%
response.sendRedirect("/logistics/Enterprise/enterprise.jsp");
}
}
rs.close();
}我如果输入相同的企业信息,他会提示我,此企业信息已经发布,但是我如果输入新的信息,并且dd为真,也能跳转到enterprise.jsp,但不提示“企业信息发布成功”不知道为什么啊
boolean bPublicSuccess = false;
try{
rs=condata.executeQuery(sql);
if(rs.next()){
bAlreadyPublished = true;
}
else{
wsql="insert into tb_Enterprise(EnterPriseSort,enterPriseName,Operation,WorkArea,Address,Phone,LinkMan,HandSet,Fax,Email,Http,Intro,IssueDate,UserName) values('"+style+"','"+ename+"','"+
operation+"','"+area+"','"+address+"','"+phone+"','"+linkman+"','"+
hand+"','"+fax+"','"+email+"','"+web+"','"+intr+"','"+showdate+"','"+username+"')";
bPublicSuccess = condata.executeInsert(wsql);
}
rs.close();
}catch(....)%><%if(bAlreadyPublished){%>
<script language="javascript">
alert("此企业信息已经发布!!");
history.back();
</script>
<%}else if(bPublicSuccess)%>
<script language="javascript">
alert("企业信息发布成功!!");
self.location="/logistics/Enterprise/enterprise.jsp";
</script>
<%}else{%>
//发布失败
<%}%>
if(dd){
%>
<script language="javascript">
alert("企业信息发布成功!!");
</script>
<%
response.sendRedirect("/logistics/Enterprise/enterprise.jsp"); //如果成功直接跳转了,前面的Jscript不会执行的
}你这样写法非常混乱,javascript是页面输出到客户端之后才执行的,jsp是在后台的,redirect之后这个js所在页面已经不会输出到客户端了!
sendRedirect(...)覆盖了前面响应输出流,因此前端只会显示重定向后的页面内容,而见不到原始页面的内容
try{
rs=condata.executeQuery(sql);
if(rs.next()){
bAlreadyPublished = true;
}
else{
wsql="insert into tb_Enterprise(EnterPriseSort,enterPriseName,Operation,WorkArea,Address,Phone,LinkMan,HandSet,Fax,Email,Http,Intro,IssueDate,UserName) values('"+style+"','"+ename+"','"+
operation+"','"+area+"','"+address+"','"+phone+"','"+linkman+"','"+
hand+"','"+fax+"','"+email+"','"+web+"','"+intr+"','"+showdate+"','"+username+"')";
bPublicSuccess = condata.executeInsert(wsql);
}
rs.close();
}
catch(Exception e){
rs.close();
e.printStackTrace();
}
%><%if(bAlreadyPublished){%>
<script language="javascript">
alert("此企业信息已经发布!!");
history.back();
</script>我这个还有点问题,当我发布相同信息室,提示此企业信息已发布,但是数据库访问的连接没有关闭,这是为什么啊,是history.back()的原因么
你的mySql语句有问题,insert into 表 values……
你确定你的dd是true。你alert一下。
如果真能是像你说的是true是一定会进去的
<%@ page import="java.sql.*"%>
<jsp:useBean id="condata" scope="page" class="wuliu.conndata"/>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">我jsp上都是这样了,还要怎么弄呢,现在只是数据库查询回来的信息是乱码,
jsp的处理与js无关从你的<%%>代码未见到关闭连接的语句,只有rs.close()history.go(-1)不可能先于你的jsp数据库操作代码执行的 前者是jsp全部处理完毕发到客户端才可能执行
if(dd){
%>
<script language="javascript">
alert("企业信息发布成功!!");
</script>
<%
response.sendRedirect("/logistics/Enterprise/enterprise.jsp");
}
修改成如下:
if(dd){
out.print("alert('企业信息发布成功!!');location.href='/logistics/Enterprise/enterprise.jsp'");
}
你再试试……