js脚本中执行java后台代码办法解析

家电修理 2023-07-16 19:17www.caominkang.com电器维修

使用场景关闭页面弹窗时执行sql语句。

其实js里执行sql语句有多种方式。

方式一直接在js代码里调用sql语句,原则上不能使用,因为这将sql直接暴露在客户端,安全性极差。

方式二在js里运用ajax技术,调用后台方法执行sql语句。

方式三运用dr框架,其实是对ajax技术进行了封装。

一、编写一个dr.xml文件




  
 
 
   
   
   
   
   
 

  
  
  
 ); 
   UserInfoManageOpDr.addUserInfo(String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,String,Map); 
   ]]>
  

二、在eb.xml文件里配置servlet


  
 dr-invoker
 uk.ltd.getahead.dr.DWRServlet
 
   debug
   false
 
 
   
 alloGetForSafariButMakeFeryEasier
   
   true
 
   
   crossDomainSessionSecurity  
   false  
 
 1
  
  
 dr-invoker
 /dr
// 处理呼叫类型的dr
public class CallTypeOpDr {
  
  
  public String updateSp() {
 String sql = "exec Pub_Sp_UpdateFieldMemo ?";
 Connection conn = DBUtil.getConnection();
 PreparedStatement psmt = null;
 try {
   psmt = conn.prepareStatement(sql);
   psmt.setString(1, "CALL");
   boolean a = psmt.execute();
   DBUtil.close(null, psmt, conn);
   conn = DBUtil.getConnection();
   psmt = conn.prepareStatement(sql);
   psmt.setString(1, "USER");
   boolean b = psmt.execute();
   System.out.println(a);
   System.out.println(b);
   System.out.println("关闭弹窗执行存储过程 >> "+sql);
 } catch (SQLException e) {
   e.printStackTrace();
 }finally {
   DBUtil.close(null, psmt, conn);
 }
 return null;
  }
}

四、写一个JSP页面,主要导入engine.js和相应的java类映射的js文件,然后编写js即可调用

//以下为jsp的引入js文件部分


五、js文件里调用后台代码

var basePath = "";
  if(typeof(glbRootPath) != "undefined"){ 
 basePath = glbRootPath;
 document.rite("");
  }

.
.
.
if(typeof(glbRootPath) != "undefined"&&$(this).parent().children().eq(0).text()=="呼叫类型设置"){
 console.log("进来了");
 DWREngine.setAsync(false);
 CallTypeOpDr.updateSp();
   }

Copyright © 2016-2025 www.caominkang.com 曹敏电脑维修网 版权所有 Power by