有关打印按钮与日志的操作

来源:互联网 发布:ws2812灯软件 编辑:程序博客网 时间:2024/04/29 05:36

今天发现写的程序中的一个bug

function StartPrint(){

<%

java codes.................

%>

}

这样写是不对滴,即使StartPrint没有被触发,java代码也会被执行。。。也就是说,即使没点按钮,也会插入日志。。。。


解决方法:

开始尝试了自己写个方法,然后在js中调用。。发现传参,连接数据库之类的操作很麻烦 。。

看了一下别的文件,发现一个写好的,可以直接拿过来用的处理页面,哈哈哈哈。。。


function StartPrint(){
try
{
var log_sql = "…………………………";
//ajax异步提交
if (! Ext.fly('frmDummy'))
{    
var frm = document.createElement('form');          
frm.id = 'frmDummy';             
frm.name = id;               
frm.className = 'x-hidden';             
document.body.appendChild(frm);            
}
Ext.Ajax.request({                
url: 'gosql.jsp',                 
method: 'POST',              
form: Ext.fly('frmDummy'),                
callback: function(o, s, r) {   
 //alert(r.responseText);
},                 
params: {mysql:log_sql}         
})
}
catch(err)
{
//alert(err)
}
document.getElementById('BtnPrintOut').style.display='none';
document.getElementById('BtnClearAll').style.display='none';
print();
}

看了一下gosql,它是封装成一个事务了。。。。

<%
request.setCharacterEncoding("utf-8");
ResultSet rs = null;
String sql = ""; 
sql = request.getParameter("mysql");

try
{
//需要级联删除的sql语句,以百分号分隔了,然后分别进行删除
conn.setAutoCommit(false);
String []deleSqlArray = sql.split("%");
for(int i = 0; i < deleSqlArray.length;i++)
{
  System.out.println(deleSqlArray[i]);
  stmt.executeUpdate(deleSqlArray[i]);  
}
conn.commit();
conn.setAutoCommit(true);
out.println("success");
}
catch(Exception err)
{
conn.rollback();
out.println("failure");
}
conn.close();
%>
<%@ include file="closeconnection.jsp"%>


closeconnection.jsp

<%
//关闭连接
try
{
if(conn!=null)
{
if(!conn.isClosed())
{
conn.close();
conn = null;
}
}
}
catch(Exception excp3)
{
System.out.println("Connection Closed Error");
}
%>