7.面我们讲最后一个操作 修改的操作
在讲修改之前 我们先讲一个知识点
表单调用的通常是doPost方法 超链接通常调用的是doGet方法
操作如何在同一个方法 (doGet中) 进行区分 type



OrderDao orderDao=new OrderDao();String type=req.getParameter("type");if(type.equals("del")){//删除String id=req.getParameter("id"); //获取页面传递过来的id 1 2 3 4if(id!=null) //判断id是否有值 如果有就删除{int uid=Integer.parseInt(id);orderDao.deleteOrder(uid);}//删除完了再查看//2 调用Dao返回一个集合 存到一个公共对象里面ArrayList<OrderInfo> orders=orderDao.findOrders();req.setAttribute("list",orders); //把查询结果存入req 中 req在order_list.jsp中能够被访问req.getRequestDispatcher("order/order_list.jsp").forward(req,resp); //显示页面}//查看if(type.equals("sel")){ArrayList<OrderInfo> orders=orderDao.findOrders();req.setAttribute("list",orders); //把查询结果存入req 中 req在order_list.jsp中能够被访问req.getRequestDispatcher("order/order_list.jsp").forward(req,resp); //显示页面}
点击重新部署

修改操作比较简单 分为以下两步





把order_add.jsp中的form复制到modify修改页面
<form name="frm" action="/jtxy_web_war_exploded/OrderInfoServlet" method="post"><table style="width:480px; "><tr><th>新增订单</th></tr><tr><td>发送地</td><td style="text-align:left; "><!--name指的是文本名称 可以随便起 这里与数据库一致--><input name="send_address" type="text" size="12"></td></tr><tr><td>收件地</td><td style="text-align:left; "><select id="s1" name="pre"><option>省份</option></select><select id="s2" name="city"><option>地级市</option></select><select id="s3" name="region"><option>市、县级市、县</option></select></td></tr><tr><td>车辆状态</td><td style="text-align:left; "><input name="veh_state" type="text"></td></tr><tr><td>所属配送点</td><td style="text-align:left; "><select name="dep"><option value="0">财务部</option><option value="1">人事部</option><option value="2">后勤部</option><option value="3">业务部</option></select></td></tr><tr><td> </td><td><input type="submit" name="button1" value="提交"><input type="reset" name="button2" value="重置"></td></tr></table></form>


在order_modify.jsp中输入以下java代码

将所需信息添加上value值 如发送地 收件地 车辆状态等等


在OrderDao中添加一句话

点击重新部署 查看订单 点击修改 可以看到已经有相应的操作响应


那么 点击修改以后如何完成修改的操作呢
首先 在order_add.jsp中传递一个隐藏的值

然后 先在order_modify.jsp中输入以下java代码

在order_modify.jsp中也传递两个隐藏的值

在OrederInfoServlet.java程序的doGet方法中输入以下代码
OrderDao orderDao=new OrderDao();String type=req.getParameter("type");if(type.equals("del")){//删除String id=req.getParameter("id"); //获取页面传递过来的id 1 2 3 4if(id!=null) //判断id是否有值 如果有就删除{int uid=Integer.parseInt(id);orderDao.deleteOrder(uid);}//删除完了再查看//2 调用Dao返回一个集合 存到一个公共对象里面ArrayList<OrderInfo> orders=orderDao.findOrders();req.setAttribute("list",orders); //把查询结果存入req 中 req在order_list.jsp中能够被访问req.getRequestDispatcher("order/order_list.jsp").forward(req,resp); //显示页面}//查看if(type.equals("sel")){ArrayList<OrderInfo> orders=orderDao.findOrders();req.setAttribute("list",orders); //把查询结果存入req 中 req在order_list.jsp中能够被访问req.getRequestDispatcher("order/order_list.jsp").forward(req,resp); //显示页面}//修改if(type.equals("one")){String id=req.getParameter("id");int oid=Integer.parseInt(id);OrderInfo order = orderDao.findOrderById(oid);req.setAttribute("order",order);req.getRequestDispatcher("order/order_modify.jsp").forward(req,resp);// 显示list页面}

在OrederInfoServlet.java程序的doPost方法中输入以下代码
req.setCharacterEncoding("UTF-8"); //处理乱码String type=req.getParameter("type");if(type.equals("add")){String send_address=req.getParameter("send_address");String pre=req.getParameter("pre");String city=req.getParameter("city");String region=req.getParameter("region");String veh_state=req.getParameter("veh_state");String trans_point=req.getParameter("trans_point");OrderInfo orderInfo=new OrderInfo();orderInfo.setAcc_address(pre+city+region);orderInfo.setSend_address(send_address);orderInfo.setVeh_state(Integer.parseInt(veh_state));//Integer.parseInt() 将字符串转换成整数orderInfo.setTrans_point(trans_point);OrderDao orderDao=new OrderDao();orderDao.addOrder(orderInfo);System.out.println("========");//显示order文件夹下的order_add.jsp页面req.getRequestDispatcher("order/order_add.jsp").forward(req,resp);}if(type.equals("modify")){String id=req.getParameter("id");String send_address=req.getParameter("send_address");String pre=req.getParameter("pre");String city=req.getParameter("city");String region=req.getParameter("region");String veh_state=req.getParameter("veh_state");String trans_point=req.getParameter("trans_point");OrderInfo orderInfo=new OrderInfo();orderInfo.setAcc_address(pre+city+region);orderInfo.setSend_address(send_address);orderInfo.setVeh_state(Integer.parseInt(veh_state));//Integer.parseInt() 将字符串转换成整数orderInfo.setTrans_point(trans_point);orderInfo.setOrid(Integer.parseInt(id));OrderDao orderDao=new OrderDao();orderDao.updateOrder(orderInfo);System.out.println("========");//显示order文件夹下的order_add.jsp页面ArrayList<OrderInfo> orders=orderDao.findOrders();req.setAttribute("list",orders); //把查询结果存入req 中 req在order_list.jsp中能够被访问req.getRequestDispatcher("order/order_list.jsp").forward(req,resp); //显示页面}}

点击重新部署 打开..::翔速物流::..网页 点击查看订单 修改

这里我们将山东省潍坊市修改为山东济南 看一下效果如何

点击提交 修改成功

同理 我们也可以做一下对User的网页修改
首先 在同一个方法 (doGet中)把对网页的不同的操作进行一下区分 添加
?type语句 先在list_nav.jsp中的查看用户中添加一个区分

然后在user_list.jsp中添加区分 由于前面已经有?号 这里我们用&号

然后 我们在UserInfoServlet中的doGet方法中输入修改操作的代码
UserDao userDao=new UserDao();String type=req.getParameter("type");if(type.equals("del")){String id=req.getParameter("id"); //获取页面传递过来的id 1 2 3 4if(id!=null) //判断id是否有值 如果有就删除{int uid=Integer.parseInt(id);userDao.deleteUser(uid);}ArrayList<UserInfo> users=userDao.findUsers();req.setAttribute("list",users);req.getRequestDispatcher("user/user_list.jsp").forward(req,resp);}if(type.equals("sel")){ArrayList<UserInfo> users=userDao.findUsers();req.setAttribute("list",users);req.getRequestDispatcher("user/user_list.jsp").forward(req,resp);}//修改if(type.equals("one")){String id=req.getParameter("id");int oid=Integer.parseInt(id);UserInfo user=userDao.findUserById(oid);req.setAttribute("user",user);req.getRequestDispatcher("user/user_modify.jsp").forward(req,resp);//显示list页面}
把user_add.jsp中的form复制到modify修改页面


然后在user_modify.jsp中输入以下代码
<%UserInfo userInfo=(UserInfo)request.getAttribute("user");%>

在相应的数据后面添加value的值

然后 我们去UserDao中的findUserById添加以下一行代码

此时 点击一下重新部署 我们将鼠标放到修改那里 就可以看到相应的代码出现了

下面 我们继续完成修改操作 我们添加一下隐藏
首先 在order_add.jsp中传递一个隐藏的值

然后 先在order_modify.jsp中输入以下java代码 添加隐藏

最后 我们在OrederInfoServlet.java程序的doPost方法中输入以下代码
req.setCharacterEncoding("UTF-8");String type=req.getParameter("type");if(type.equals("add")){String user_name=req.getParameter("user_name");String user_pwd=req.getParameter("user_pwd");String user_rep=req.getParameter("user_rep");String user_role=req.getParameter("user_role");String user_address=req.getParameter("user_address");String user_tell=req.getParameter("user_tell");UserInfo userInfo=new UserInfo();userInfo.setUser_name(user_name);userInfo.setUser_pwd(user_pwd);userInfo.setUser_pwd(user_rep);userInfo.setUser_role(user_role);userInfo.setUser_address(user_address);userInfo.setUser_tell(user_tell);UserDao userDao=new UserDao();userDao.addUser(userInfo);System.out.println("========");req.getRequestDispatcher("user/user_add.jsp").forward(req,resp);}if(type.equals("modify")){String id=req.getParameter("id");String user_name=req.getParameter("user_name");String user_pwd=req.getParameter("user_pwd");String user_rep=req.getParameter("user_rep");String user_role=req.getParameter("user_role");String user_address=req.getParameter("user_address");String user_tell=req.getParameter("user_tell");UserInfo userInfo=new UserInfo();userInfo.setUser_name(user_name);userInfo.setUser_pwd(user_pwd);userInfo.setUser_pwd(user_rep);userInfo.setUser_role(user_role);userInfo.setUser_address(user_address);userInfo.setUser_tell(user_tell);userInfo.setUser_id(Integer.parseInt(id));UserDao userDao=new UserDao();userDao.updateUser(userInfo);System.out.println("========");ArrayList<UserInfo> users=userDao.findUsers();req.setAttribute("list",users);req.getRequestDispatcher("user/user_list.jsp").forward(req,resp);}}

点击重新部署

我们试一下将济南市 修改为济南市1

点击修改 修改成功

只会幻想而不行动的人 永远也体会不到收获果实时的喜悦
