概述
使用场景:关闭页面弹窗时执行sql语句。
其实js里执行sql语句有多种方式。
方式一:直接在js代码里调用sql语句,原则上不能使用,因为这将sql直接暴露在客户端,安全性极差。
方式二:在js里运用ajax技术,调用后台方法执行sql语句。
方式三:运用dwr框架,其实是对ajax技术进行了封装。
一、首先编写一个dwr.xml文件
1 <?xml version="1.0" encoding="utf-8"?>
2
3
4
5
6
7
8 value="cn.etcom.jfgl.tel.fee.callType.CallTypeOpDwr" />
9
10
11
12
13
14
15
16
17
18 );22 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);23 ]]>
24
25
二、在web.xml文件里配置servlet
1
2
3 dwr-invoker
4 uk.ltd.getahead.dwr.DWRServlet
5
6 debug
7 false
8
9
10
11 allowGetForSafariButMakeForgeryEasier12
13 true
14
15
16 crossDomainSessionSecurity
17 false
18
19 1
20
21
22 dwr-invoker
23 /dwr/*24
三、写一个普通的JAVA类
1 packagecn.etcom.jfgl.tel.fee.callType;2
3 importjava.sql.Connection;4 importjava.sql.PreparedStatement;5 importjava.sql.ResultSet;6 importjava.sql.SQLException;7 importjava.util.ArrayList;8 importjava.util.List;9
10 importjavax.servlet.http.HttpServletRequest;11
12 importorg.json.JSONException;13 importorg.json.JSONObject;14
15 importcn.etcom.common.utility.DBUtil;16 importcn.etcom.common.utility.RsHandler;17 importcn.etcom.common.utility.SqlActuator;18 importcn.etcom.common.utility.StringUtil;19
20 /*******************************************************************************21 *22 *@author刘彦宁 2011-08-1223 *24 */
25 //处理呼叫类型的dwr
26 public classCallTypeOpDwr {27
28 /***************************************************************************29 * DWR 方法,执行存储过程。30 *31 */
32 publicString updateSp() {33 String sql = "exec Pub_Sp_UpdateFieldMemo ?";34 Connection conn =DBUtil.getConnection();35 PreparedStatement psmt = null;36 try{37 psmt =conn.prepareStatement(sql);38 psmt.setString(1, "CALL");39 boolean a =psmt.execute();40 DBUtil.close(null, psmt, conn);41 conn =DBUtil.getConnection();42 psmt =conn.prepareStatement(sql);43 psmt.setString(1, "USER");44 boolean b =psmt.execute();45 System.out.println(a);46 System.out.println(b);47 System.out.println("关闭弹窗执行存储过程 >> "+sql);48 } catch(SQLException e) {49 e.printStackTrace();50 }finally{51 DBUtil.close(null, psmt, conn);52 }53 return null;54 }55 }
四、写一个JSP页面,主要导入engine.js和相应的java类映射的js文件,然后编写js即可调用。
1 //以下为jsp的引入js文件部分
2
3 //设置根路径,放在 tab.js 前
4 var glbRootPath = "";5
6
7
五、js文件里调用后台代码
1 var basePath = "";2 if(typeof(glbRootPath) != "undefined"){3 basePath =glbRootPath;4 document.write("
7 中间省略若干代码8 */
9 .10 .11 .12 if(typeof(glbRootPath) != "undefined"&&$(this).parent().children().eq(0).text()=="呼叫类型设置"){13 console.log("进来了");14 DWREngine.setAsync(false);15 CallTypeOpDwr.updateSp();16 }
最后
以上就是雪白芹菜为你收集整理的js调用java后台_js脚本中执行java后台代码的全部内容,希望文章能够帮你解决js调用java后台_js脚本中执行java后台代码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复