js调用java后台_js脚本中执行java后台代码方法解析

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

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

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

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

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

一、首先编写一个dwr.xml文件

value="cn.etcom.jfgl.tel.fee.callType.CallTypeOpDwr" />

import java.util.List;

import cn.etcom.jfgl.customer.tel.userInfo.UserInfoManageOpDwr;

UserInfoManageOpDwr.addUsersInfo(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);

UserInfoManageOpDwr.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);

]]>

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

dwr-invoker

uk.ltd.getahead.dwr.DWRServlet

debug

false

allowGetForSafariButMakeForgeryEasier

true

crossDomainSessionSecurity

false

1

dwr-invoker

/dwr/*

三、写一个普通的JAVA类

package cn.etcom.jfgl.tel.fee.callType;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.json.JSONException;

import org.json.JSONObject;

import cn.etcom.common.utility.DBUtil;

import cn.etcom.common.utility.RsHandler;

import cn.etcom.common.utility.SqlActuator;

import cn.etcom.common.utility.StringUtil;

/*******************************************************************************

*

* @author 刘彦宁 2011-08-12

*

*/

// 处理呼叫类型的dwr

public class CallTypeOpDwr {

/***************************************************************************

* DWR 方法,执行存储过程。

*

*/

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文件部分

//设置根路径,放在 tab.js 前

var glbRootPath = "";

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

var basePath = "";

if(typeof(glbRootPath) != "undefined"){

basePath = glbRootPath;

document.write("

}

/*

中间省略若干代码

*/

.

.

.

if(typeof(glbRootPath) != "undefined"&&$(this).parent().children().eq(0).text()=="呼叫类型设置"){

console.log("进来了");

DWREngine.setAsync(false);

CallTypeOpDwr.updateSp();

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值