如何在javaSerlvt里面把jsp文件里面需要的值传输到java文件

**

先把需要的mysql表达出来得到所有的角色

先在java里面得到所有的角色

public class ShowAllRole extends HttpServlet{	
	private RoleDao roleDao=new Roleimpl();
    @Override
     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }
protected void doPost(HttpServletRequest req,HttpServletResponse resp)throws 
ServletException,IOException{
	//获取数据库中的数据(所有角色)
	 List<Roleinfo> roles = roleDao.findAllRole();
	 //  将rolelist保存到request作用域
     req.setAttribute("roleList", roles);
	 // 响应用户的请求,要从当前的serlvet中挑战到showRole.jsp页面
     req.getRequestDispatcher("showall.jsp").forward(req, resp);
}

再进入到jsp页面来得到值

<body>
<div class="container">
    <div class="row">
        <div class="col-md-6 col-md-offset-3">
            <table class="table table-bordered table-hover">
                <tr>
                    <td colspan="5">
                        <button class="btn btn-primary" id="btn_saveStudent">添加</button>
                        <button class="btn btn-primary" id="btn_deleteStudent">删除</button>
                    </td>
                </tr>
                <tr>
                    <th width="30px">
                        <input type="checkbox"/>
                    </th>
                    <th>编号</th>
                    <th>角色名称</th>
                    <th>操作</th>
                </tr>
                <%
                    // 获取Request作用域中的数据 衔接上一层的值然后遍历循环
                    Object role = request.getAttribute("roleList");
                    if (role == null) {
                %>
                <tr>
                    <td colspan="4">
                        没有数据。。。
                    </td>
                </tr>
                //记得把tr td包住这样就会进去java代码里面的for循环就会一个一个生成
                <%
                } else {
                //把得到的object的值转化为list集合然后遍历出来
                    List<Roleinfo> roleList = (List<Roleinfo>) role;
                    for (Roleinfo roleinfo : roleList) {
                %>
                <tr>
                    <th width="30px">
                    //这里是关键把需要的值变成value值到时候可以直接得到
                        <input type="checkbox" value="<%=roleinfo.getRoleId() %>" class="stuClass"/>
                        //这是另外一个方法跟着关系不大
                        <input hidden type="text" name="id" value="<%=roleinfo.getRoleId() %>">

                    </th>
                    <td>
                        <%=roleinfo.getRoleId() %>
                    </td>
                    <td>
                        <%=roleinfo.getRoleName() %>
                    </td>
                    <td>
                        <%-- 在修改数据时,需要向进入servlet中查询当前这条数据的信息,并将数据发送到修改的页面,在修改的页面显示出来 --%>
                        <a class="btn btn-primary" href="forreigst?id=<%=roleinfo.getRoleId() %>">修改</a>
                        <a class="btn btn-primary" name="delete" href="del?id=<%=roleinfo.getRoleId() %>">删除</a>
                        <%
                            Object message = request.getAttribute("message");
                            out.print(message==null?"":message);
                        %>
                    </td>
                </tr>
                <%
                        }
                    }
                %>
            </table>
        </div>
    </div>
</div>
</body>

现在就是要在jquery里面得到该值然后传输出去

 $(function () {
            $("#btn_deleteStudent").click(function () {

                var dd=$("[type=checkbox]:checked");
                var values="";
                dd.each(function () { 
                //function括号里面第一个属性是index下标,第二个属性是value
                    var value =this.value
                    values+=value+",";  //变成字符串
                })
                // console.log(values); 测试有没有得到values
                location.href="delall?all="+values; 
                //进入超链接把字符串传输到该java文件里面去,
                //然后java文件得到字符串就截取字符串来得到数组然后遍历循环
            })

得到字符串遍历循环 ,java文件

 		req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        //取得该字符串
        String a=req.getParameter("all");
        //判断条件
        if (a!=""){
        //截取字符串得到数组遍历循环单个删除调用JDBC方法
            String[] split = a.split(",");
            for (String aa:split){
                Integer id = Integer.valueOf(aa);
                roleDao.delAll(id);
            }
            req.getRequestDispatcher("main.jsp").forward(req, resp);
        }else{
            req.getRequestDispatcher("showall.jsp").forward(req, resp);
        }

还有另一种方法可以得到该值 jsp代码

           <input type="checkbox" name="delete" value="<%=roleinfo.getRoleId() %>" class="stuClass"/>
           //在刚刚下面去新增一个值隐藏到时候点击事件触发就得到下面的对象的属性到时候取出来
           //<input hidden type="text" name="id" value="<%=roleinfo.getRoleId() %>">
           //不需要隐藏这个多余了
           //因为提交表单之后就会默认在网址上传输复选框确定的值
          //记住加上value值就是id值然后记得添加name和type不然type默认是sumit
           <button class="btn btn-primary" type="button" id="btn_deleteStudent">删除</button>   		

在这里插入图片描述

jquery代码

// $(".stuClass").click(function () {
  //  $(this).next().attr("checked",true);
// });//得到下一行
//得到隐藏的然后value这样做多余
 $(function () {
            $("#btn_deleteStudent").click(function () {
            	 $("#tj").submit();
             })
           })
//           这样就得到了value值然后再去javaSelvet里面去得到name为delete的值

javaServlet代码

@WebServlet("/Ssdel")
public class SsDel extends HttpServlet {
    private RoleDao roleDao = new Roleimpl(); 
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        //得到所有的数
        String[] a=req.getParameterValues("delete"); 
        //得到值,值为数组如果没有就会是null因为不是创建数组而是得到空那就是null创建数组
        //就用length判断是否为空
        if (a!=null){
            for (String b:a){
                Integer id = Integer.valueOf(b);
                roleDao.delAll(id);
            }
            req.getRequestDispatcher("main.jsp").forward(req, resp);
        }else {
            req.getRequestDispatcher("showall.jsp").forward(req,resp );
        }
    }
}
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页

打赏作者

reviveMe

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值