Web - 根据条件查询用户信息(筛选)并展示.

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_42986107/article/details/83118184

准备工作就不在介绍了, 可以参考查询所有用户信息的案例:
https://blog.csdn.net/qq_42986107/article/details/83117451
在这里插入图片描述

Servlet -> Condifition.java

@WebServlet("/selectBycondition")
public class ConditionServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html; charset=utf-8");
        // 获取传递过来的参数(查询条件)
        String sex = request.getParameter("sex");
        String address = request.getParameter("address");

        // 创建UserService对象 , 并调用其方法.1
        UserService us = new UserService();
        List<User> user = us.selectByCondition(sex,address);

        // 将信息设置到域中
        request.setAttribute("user",user);
        // 将选择的条件也设置到域中 , 方便回显.
        request.setAttribute("sex",sex);
        request.setAttribute("address",address);
        // 请求转发到list页面 ,进行展示.
        request.getRequestDispatcher(request.getContextPath()+"/list.jsp").forward(request,response);
    }
}

Service层 -> UserService.java

public class UserService {
    // 调用UserDao对象中的方法 ,
    UserDao ud = new UserDao();
    
    // 根据条件查询数据.
    public List<User> selectByCondition(String sex, String address) {
        return ud.selectByCondition(sex,address);
    }
}

Dao层 -> UserDao.java

public class UserDao { 
    // 根据条件 , 查询数据.
    public List<User> selectByCondition(String sex, String address) {
        // 创建QueryRunner对象.
        QueryRunner qr = new QueryRunner(DataSourceUtil.getDataSource());
        // 创建sql语句.
        String sql = "select * from user where 1=1 ";

        // 创建一个集合 , 对两个条件进行判断 , 否和就添加进去.
        List list = new ArrayList();
        // 如果查询条件不为空 , 就添加查询条件.
        if (sex!=null&&sex.trim().length()>0){
            sql+=" and sex=? ";
            list.add(sex);
        }

        if(address!=null&&address.trim().length()>0){
            sql+=" and address=? ";
            list.add(address);
        }
        // 执行sql
        try {
            return qr.query(sql,new BeanListHandler<>(User.class),list.toArray());
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
}

展示页面 -> list.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<!-- 网页使用的语言 -->
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>用户信息管理系统</title>

    <!-- 1. 导入CSS的全局样式 -->
    <link href="resource/css/bootstrap.min.css" rel="stylesheet">
    <!-- 2. jQuery导入,建议使用1.9以上的版本 -->
    <script src="resource/js/jquery-2.1.0.min.js"></script>
    <!-- 3. 导入bootstrap的js文件 -->
    <script src="resource/js/bootstrap.min.js"></script>
    <style type="text/css">
        td, th {
            text-align: center;
        }
    </style>
</head>
<body>
<div class="container">
    <h3 style="text-align: center">用户信息列表</h3>
    <table border="1" class="table table-bordered table-hover">
        <tr>
           <td colspan="8">
               <%-- action默认不写就是本地址 --%>
               <form action="">
                   性别:
                   <select name="sex">
                       <option value="">---请选择---</option>
                       <%-- 进行信息回显.--%>
                       <c:if test="${empty sex}">
                           <option value="男">男</option>
                           <option value="女">女</option>
                       </c:if>
                       <%-- 如果选中男,就回显男 --%>
                       <c:if test="${sex=='男'}">
                           <option value="男" selected>男</option>
                           <option value="女">女</option>
                       </c:if>

                       <c:if test="${sex=='女'}">
                           <option value="男">男</option>
                           <option value="女" selected>女</option>
                       </c:if>
                   </select>
                   籍贯:<input type="text" name="address" placeholder="城市名称..." value="${address}" >
                   <input type="submit" value="查询用户">
               </form>
           </td>
        </tr>
        <tr class="success">
            <th>编号</th>
            <th>姓名</th>
            <th>性别</th>
            <th>年龄</th>
            <th>籍贯</th>
            <th>QQ</th>
            <th>邮箱</th>
            <th>操作</th>
        </tr>

        <c:forEach items="${user}" var="user">
            <tr>
                <td>${user.id}</td>
                <td>${user.name}</td>
                <td>${user.sex}</td>
                <td>${user.age}</td>
                <td>${user.address}</td>
                <td>${user.qq}</td>
                <td>${user.email}</td>
                <td>
                    <a class="btn btn-default btn-sm" href="update.jsp">修改</a>&nbsp;
                    <a class="btn btn-default btn-sm" href="javascript:;" onclick="userDel(${user.id})">删除</a>
                </td>
            </tr>
        </c:forEach>

        <tr>
            <td colspan="8" align="center"><a class="btn btn-primary" href="add.jsp">添加联系人</a></td>
        </tr>
    </table>
</div>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/qq_42986107/article/details/83118184
今日推荐