JavaScript中如何调用Java方法
导读
在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(); //更新总数 }
评论(0)