1、在index.html添加超链接,添加新库存add.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="style/index.css"> <script src="script/axios.min.js"></script> <script src="script/index.js"></script> <script src="script/common.js"></script> </head> <body> <div id="div0"> <div id="div_title"> <p>欢迎使用水果库存系统</p> <div style="float: right;border: 0px solid red;margin-right:8%;margin-bottom: 4px"> <a href="add.html" style="text-decoration: none">添加新库存</a> </div> </div> <div id="div_fruit_table"> <table id="fruit_tbl"> <tr> <th class="w25">名称</th> <th class="w25">单价</th> <th class="w25">库存</th> <th>操作</th> </tr> <!-- <tr> <td><a href='edit.html?fid=1'>苹果</a></td> <td>5</td> <td>100</td> <td><img class="delImg" src="imgs/del.png" onclick='delFruit(1)'/></td> </tr> --> </table> </div> </div> </body> </html>2、编写add.html添加点击事件负责提交onclick
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="style/index.css"> <script src="script/axios.min.js"></script> <script src="script/add.js"></script> <script src="script/common.js"></script> </head> <body> <div id="div0"> <div id="div_title"> <p>添加水果库存信息</p> </div> <div id="div_fruit_table"> <table id="fruit_tbl"> <tr> <th class="w25">名称:</th> <td><input type="text" id="fname" onkeyup="checkFname(this.value)"/><span id="fnameSpan"> </span></td> </tr> <tr> <th class="w25">单价:</th> <td><input type="text" name="price" id="price"/> </td> </tr> <tr> <th class="w25">库存:</th> <td><input type="text" name="fcount" id="fcount"/> </td> </tr> <tr> <th class="w25">备注:</th> <td><input type="text" name="remark" id="remark"/> </td> </tr> <tr> <th colspan="2"> <input type="button" value="添加" onclick="add()"/> <input type="button" value="取消"/> </th> </tr> </table> </div> </div> </body> </html>3、编写add.js
3.1、common.js
function $(key){ if(key){ if(key.startsWith("#")){ key = key.substring(1) return document.getElementById(key) }else{ let nodeList = document.getElementsByName(key) return Array.from(nodeList) } } }function add(){ let fname = $("#fname").value let price = $("#price").value let fcount = $("#fcount").value let remark = $("#remark").value //let fruit = {"fname":fname,"price":price,"fcount":fcount,"remark":remark} let fruit = {} fruit.fname=fname fruit.price = price fruit.fcount=fcount fruit.remark=remark axios({ method:'post', url:'add', data:fruit }).then(response=>{ if(response.data.flag){ window.location.href='index.html' } }) } /* function checkFname(fname){ axios({ method:'get', url:"getFname", params:{ fname:fname } }).then(response=>{ let fnameSpan= $("#fnameSpan"); if(response.data.flag){ fnameSpan.innerText = '名称可添加' fnameSpan.style.color='green' }else{ fnameSpan.innerText = '名称已存在' fnameSpan.style.color='red' } }) }*/4、编写Controller层AddServlet
package com.csdn.fruit.servlet; import com.csdn.fruit.dao.FruitDao; import com.csdn.fruit.dao.impl.FruitDaoImpl; import com.csdn.fruit.dto.Result; import com.csdn.fruit.pojo.Fruit; import com.csdn.fruit.util.RequestUtil; import com.csdn.fruit.util.ResponseUtil; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/add") public class AddServlet extends HttpServlet { private FruitDao fruitDao = new FruitDaoImpl(); @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { Fruit fruit = (Fruit) RequestUtil.readObject(req, Fruit.class); fruitDao.addFruit(fruit); ResponseUtil.print(resp, Result.OK()); } }




















