JavaScript中如何调用Java方法


Posted in Javascript onSeptember 16, 2020

在JavaScript中想要调用Java的方法,我通过JavaScript访问servlet,再通过servlet调用Java某个类的方法。

HTML代码

<table id="cartTable">
  <thead>
    <tr>
      <th class="product_remove">
        <label>
          <input class="check-all check" type="checkbox"/>  全选
        </label>
        <a class="fl delete" id="deleteAll" href="javascript:;" rel="external nofollow" ><i class="fa fa-trash-o"></i></a>
      </th>
      <th class="product_thumb">图片</th>
      <th class="product_name">名称</th>
      <th class="product-price">价格</th>
       <th class="product_quantity">款式</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td class="product_remove">
        <input class="check-one check" type="checkbox"/>
      </td>
      <td class="product_thumb">
        <a href="ShopShoesDetails.jsp?shoes_id=<%=shoes.getShoes_id() %>" rel="external nofollow" rel="external nofollow" >
          <img src="${pageContext.request.contextPath}/ShopServlet?method=getShopsShoesImage&shoes_id=<%=shoes.getShoes_id() %>" alt="">
        </a>
      </td>
      <td class="product_name">
        <a href="ShopShoesDetails.jsp?shoes_id=<%=shoes.getShoes_id() %>" rel="external nofollow" rel="external nofollow" ><%=shoes.getBrand() %>/<%=shoes.getSeries() %>/<%=shoes.getName() %>
        </a>
      </td>
      <td class="product-price"><%=shoes.getPrice() %></td>
      <td class="product_quantity"><%=shoes.getSex() %>/<%=shoes.getSize() %></td>
    </tr>
  </tbody>
</table>

ShopShoesDao.java

public void deleteFromCart(String shoes_id) {
    System.out.println("ShopShoesDao.deleteFromCart");
    String[] shoes_ids = shoes_id.split(",");
    
    Connection connection = DBUtil.getConnection();
    PreparedStatement preparedStatement = null;
    
    try {
      for (String string : shoes_ids) {
        int id = Integer.parseInt(string);
        String sql = "delete from user_product_cart where shoes_id = ?";
        preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setInt(1, id);
        preparedStatement.executeUpdate();
      }
    } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }finally {
      DBUtil.close(preparedStatement);
      DBUtil.close(connection);
    }
  }

ShopServlet.java

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    System.out.println("service");
    request.setCharacterEncoding("UTF-8");
    String method=request.getParameter("method");
    System.out.println(method);
    if(method.equals("addProduct")) {
      addProduct(request,response);
    }else if(method.equals("getShopsShoesImage")) {
      try {
        getShopsShoesImage(request,response);
      } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }else if(method.equals("addToCart")) {
      try {
        addToCart(request, response);
      } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }else if(method.equals("deleteFromCart")) {
      try {
        deleteFromCart(request, response);
      } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }else if(method.equals("payFromCart")) {
      try {
        payFromCart(request, response);
      } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }
  }
private void deleteFromCart(HttpServletRequest request, HttpServletResponse response) throws IOException, SQLException {
    // TODO Auto-generated method stub
    System.out.println("deleteFromCart");
    request.setCharacterEncoding("UTF-8");
    int user_id= Integer.parseInt(request.getParameter("user_id"));
    System.out.println(user_id);
    String shoes_id = request.getParameter("shoes_id");
    System.out.println(shoes_id);
    ShopShoesDao shopShoesDao = new ShopShoesDao();
    shopShoesDao.deleteFromCart(shoes_id);
    request.getSession().setAttribute("shoes_id", shoes_id);
    response.sendRedirect(request.getContextPath()+"/cart.jsp");
  }

javascrip代码

// 点击全部删除
  deleteAll.onclick = function () {
    if (selectedTotal.innerHTML != 0) {
      var con = confirm('确定删除所选商品吗?'); //弹出确认框
      if (con) {
        var shoes_id = '';
        for (var i = 0; i < tr.length; i++) {
          // 如果被选中,就删除相应的行
          if (tr[i].getElementsByTagName('input')[0].checked) {
            shoes_id = shoes_id + tr[i].cells[0].innerHTML + ',';
            
            //tr[i].parentNode.removeChild(tr[i]); // 删除相应节点
            //i--; //回退下标位置
          }
        }
        alert(shoes_id);
        window.location.href="ShopServlet?method=deleteFromCart&shoes_id=" rel="external nofollow" +shoes_id+"&user_id="+22;
        alert("删除成功!");
      }
    } else {
      alert('请选择商品!');
    }
    getTotal(); //更新总数
  }

以上就是JavaScript中如何调用Java方法的详细内容,更多关于js中调用Java方法的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
得到文本框选中的文字,动态插入文字的js代码
Mar 07 Javascript
jQuery+css+html实现页面遮罩弹出框
Mar 21 Javascript
js数组的基本操作(很全自己整理的)
Oct 16 Javascript
javascript实现类似于新浪微博搜索框弹出效果的方法
Jul 27 Javascript
Bootstrap每天必学之js插件
Nov 30 Javascript
全面解析Bootstrap中transition、affix的使用方法
May 30 Javascript
Bootstrap Table服务器分页与在线编辑应用总结
Aug 08 Javascript
轻松实现js弹框显示选项
Sep 13 Javascript
vue.js获取数据库数据实例代码
May 26 Javascript
分享19个JavaScript 有用的简写写法
Jul 07 Javascript
Web开发使用Angular实现用户密码强度判别的方法
Sep 27 Javascript
webpack打包并将文件加载到指定的位置方法
Feb 22 Javascript
Vue封装全局过滤器Filters的步骤
Sep 16 #Javascript
Vue父子组件传值的一些坑
Sep 16 #Javascript
vue-cli3项目打包后自动化部署到服务器的方法
Sep 16 #Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
Sep 16 #Javascript
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
Sep 16 #Javascript
vue中选中多个选项并且改变选中的样式的实例代码
Sep 16 #Javascript
vue实现div可拖动位置也可改变盒子大小的原理
Sep 16 #Javascript
You might like
PHP关联链接常用代码
2012/11/05 PHP
PHP从数组中删除元素的四种方法实例
2017/05/12 PHP
thinkPHP中U方法加密传递参数功能示例
2018/05/29 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
2020/12/01 PHP
JavaScript 动态将数字金额转化为中文大写金额
2009/05/14 Javascript
Mootools 1.2教程 排序类和方法简介
2009/09/15 Javascript
基于jQuery试卷自动排版系统
2010/07/18 Javascript
javascript 闭包
2011/09/15 Javascript
javascript 实现简单的table排序及table操作练习
2012/12/28 Javascript
js中的setInterval和setTimeout使用实例
2014/05/09 Javascript
Js可拖拽放大的层拖动特效实现方法
2015/02/25 Javascript
bootstrap laydate日期组件使用详解
2017/01/04 Javascript
Angular4开发解决跨域问题详解
2017/08/28 Javascript
JS中原始值和引用值的储存方式示例详解
2018/03/23 Javascript
详解ES6 Symbol 的用途
2018/10/14 Javascript
koa-router路由参数和前端路由的结合详解
2019/05/19 Javascript
Nautil 中使用双向数据绑定的实现
2019/10/02 Javascript
15分钟学会vue项目改造成SSR(小白教程)
2019/12/17 Javascript
JS实现按比例缩小图片宽高
2020/08/24 Javascript
OpenLayers3实现图层控件功能
2020/09/25 Javascript
[01:05:40]VG vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python中的多重装饰器
2015/04/11 Python
pycharm打开命令行或Terminal的方法
2019/01/16 Python
详解Python self 参数
2019/08/30 Python
Python数据可视化:饼状图的实例讲解
2019/12/07 Python
tensorflow如何继续训练之前保存的模型实例
2020/01/21 Python
Django认证系统user对象实现过程解析
2020/03/02 Python
Python使用扩展库pywin32实现批量文档打印实例
2020/04/09 Python
python mock测试的示例
2020/10/19 Python
python操作toml文件的示例代码
2020/11/27 Python
前端面试必备之CSS3的新特性
2017/09/05 HTML / CSS
c/c++某大公司的两道笔试题
2014/02/02 面试题
存储过程的优缺点是什么
2015/01/10 面试题
优秀员工演讲稿
2019/06/21 职场文书
暑假开始了,你的暑假学习计划写好了吗?
2019/07/04 职场文书
java.util.NoSuchElementException原因及两种解决方法
2022/06/28 Java/Android