欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js腳本中執(zhí)行java后臺(tái)代碼方法解析

 更新時(shí)間:2019年10月11日 10:15:20   作者:德邦總管  
這篇文章主要介紹了js腳本中執(zhí)行java后臺(tái)代碼方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

使用場(chǎng)景:關(guān)閉頁面彈窗時(shí)執(zhí)行sql語句。

其實(shí)js里執(zhí)行sql語句有多種方式。

方式一:直接在js代碼里調(diào)用sql語句,原則上不能使用,因?yàn)檫@將sql直接暴露在客戶端,安全性極差。

方式二:在js里運(yùn)用ajax技術(shù),調(diào)用后臺(tái)方法執(zhí)行sql語句。

方式三:運(yùn)用dwr框架,其實(shí)是對(duì)ajax技術(shù)進(jìn)行了封裝。

一、首先編寫一個(gè)dwr.xml文件

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr//dwr20.dtd">
<dwr>
  <allow>
    <!-- 對(duì)呼叫類型的操作 -->
    <create javascript="CallTypeOpDwr" creator="new">
      <param name="class"
        value="cn.etcom.jfgl.tel.fee.callType.CallTypeOpDwr" />
      <include method="addCallType" />
      <include method="modifyCallType" />
      <include method="deleteCallType" />
      <include method="updateSp" />
    </create>

  </allow>
  <!-- 用戶信息管理操作中用到的map配置 -->
  <signatures>
    <![CDATA[ 
      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<String,String>); 
      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<String,String>); 
      ]]>
  </signatures>
</dwr>

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

<!-- DWR相關(guān)配置 -->
  <servlet>
    <servlet-name>dwr-invoker</servlet-name>
    <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
    <init-param>
      <param-name>debug</param-name>
      <param-value>false</param-value>
    </init-param>
    <init-param>
      <param-name>
        allowGetForSafariButMakeForgeryEasier
      </param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>  
      <param-name>crossDomainSessionSecurity</param-name>  
      <param-value>false</param-value>  
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
  </servlet-mapping>

三、寫一個(gè)普通的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 方法,執(zhí)行存儲(chǔ)過程。
   * 
   */
  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("關(guān)閉彈窗執(zhí)行存儲(chǔ)過程 >> "+sql);
    } catch (SQLException e) {
      e.printStackTrace();
    }finally {
      DBUtil.close(null, psmt, conn);
    }
    return null;
  }
}

四、寫一個(gè)JSP頁面,主要導(dǎo)入engine.js和相應(yīng)的java類映射的js文件,然后編寫js即可調(diào)用

//以下為jsp的引入js文件部分
<script type="text/javascript">
  //設(shè)置根路徑,放在 tab.js 前
  var glbRootPath = "<%=basePath%>";
</script>
<script src="<%=basePath%>js/lhgdialog/lhgcore.min.js" type="text/javascript"></script>
<script src="<%=basePath%>js/lhgdialog/lhgdialog.js" type="text/javascript"></script>

五、js文件里調(diào)用后臺(tái)代碼

var basePath = "";
  if(typeof(glbRootPath) != "undefined"){ 
    basePath = glbRootPath;
    document.write("<script type='text/javascript' src='"+basePath+"\/dwr\/engine.js'><\/script><script type='text/javascript' src='"+basePath+"\/dwr\/interface\/CallTypeOpDwr.js'><\/script>");
  }
/*
中間省略若干代碼
*/
.
.
.
if(typeof(glbRootPath) != "undefined"&&$(this).parent().children().eq(0).text()=="呼叫類型設(shè)置"){
        console.log("進(jìn)來了");
        DWREngine.setAsync(false);
        CallTypeOpDwr.updateSp();
      }

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • js+html5 canvas實(shí)現(xiàn)ps鋼筆摳圖

    js+html5 canvas實(shí)現(xiàn)ps鋼筆摳圖

    這篇文章主要介紹了js+html5 canvas實(shí)現(xiàn)ps鋼筆摳圖,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Bootstrap 過渡效果Transition 模態(tài)框(Modal)

    Bootstrap 過渡效果Transition 模態(tài)框(Modal)

    這篇文章主要介紹了Bootstrap 過渡效果Transition 模態(tài)框(Modal),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-03-03
  • 微信小程序?qū)崿F(xiàn)人臉檢測(cè)功能

    微信小程序?qū)崿F(xiàn)人臉檢測(cè)功能

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)人臉檢測(cè)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • js中比較兩個(gè)對(duì)象是否相同的方法示例

    js中比較兩個(gè)對(duì)象是否相同的方法示例

    這篇文章主要介紹了js中比較兩個(gè)對(duì)象是否相同的方法,結(jié)合實(shí)例形式詳細(xì)分析了js對(duì)象遍歷、判斷等相關(guān)操作技巧,需要的朋友可以參考下
    2019-09-09
  • JavaScript中的return語句簡(jiǎn)單介紹

    JavaScript中的return語句簡(jiǎn)單介紹

    return語句在js中起到舉足輕重的作用,該關(guān)鍵字不僅具有返回函數(shù)值得功能,還具有一些特殊的用法,有個(gè)清晰的把握是非常有必要的,下面通過本篇文章給大家簡(jiǎn)單介紹下return語句的作用
    2015-12-12
  • javascript異步編程

    javascript異步編程

    如果編程加入了時(shí)間的概念就一切變得非常復(fù)雜。通常我們的程序是飛快地解析執(zhí)行,一毫秒緊接著一毫秒,從上至下地執(zhí)行,這稱之為同步。但如果我們想讓后臺(tái)的程序不等前面的程序執(zhí)行,就執(zhí)行呢,于是就有了異步的概念。
    2010-06-06
  • echarts柱狀圖的點(diǎn)擊事件代碼示例

    echarts柱狀圖的點(diǎn)擊事件代碼示例

    這篇文章主要給大家介紹了關(guān)于echarts柱狀圖點(diǎn)擊事件的相關(guān)資料,在實(shí)際的項(xiàng)目開發(fā)中我們通常會(huì)用到Echarts來對(duì)數(shù)據(jù)進(jìn)行展示,有時(shí)候需要用到Echarts的點(diǎn)擊事件,增加系統(tǒng)的交互,需要的朋友可以參考下
    2023-09-09
  • div層的移動(dòng)及性能優(yōu)化

    div層的移動(dòng)及性能優(yōu)化

    層的移動(dòng)本來很簡(jiǎn)單,用jquery插件或者自己寫一個(gè)也不難,但是最近一個(gè)ipad項(xiàng)目里,發(fā)現(xiàn)用手移動(dòng)div會(huì)感覺很卡,體驗(yàn)很差(可能是ipad的配置根不上pc)。
    2010-11-11
  • 地址欄上的一段語句,改變頁面的風(fēng)格。(教程)

    地址欄上的一段語句,改變頁面的風(fēng)格。(教程)

    地址欄中的js改變頁面的風(fēng)格代碼
    2008-04-04
  • JavaScript AOP編程實(shí)例

    JavaScript AOP編程實(shí)例

    這篇文章主要介紹了JavaScript AOP編程,實(shí)例分析了javascript實(shí)現(xiàn)AOP編程的基本技巧,需要的朋友可以參考下
    2015-06-06

最新評(píng)論