zoukankan      html  css  js  c++  java
  • jsp 条件查询、列表分页

    条件查询

    dao

        //根据搜索条件筛选数据
        public List<User> GetUserBySearch(String userName, String sex) throws SQLException {
            String sql = "select * from User where 1=1 ";
            List<String> params = new ArrayList<String>();
            if (userName != null && userName != "") {
                sql += " and UserName like ?";
                params.add("%"+userName+"%");
            }
            if (sex != null && sex != "") {
                sql += " and sex = ?";
                params.add(sex);
            }
            QueryRunner qr = new QueryRunner(DBUtil.GetDataSource());
            List<User> users = qr.query(sql, new BeanListHandler<User>(User.class), params.toArray());
            return users;
        }

    service

       public List<User> GetUserBySearch(String userName,String sex) throws SQLException {
            UserDao dao = new UserDao();
            return dao.GetUserBySearch(userName,sex);
        }

    userList servlet

        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
            String userName = request.getParameter("userName");
            String sex = request.getParameter("sex");
    
            UserService service = new UserService();
            List<User> userList = null;
            try {
                //userList = service.GetAllService();
                userList = service.GetUserBySearch(userName,sex);
            } catch (SQLException e) {
                e.printStackTrace();
            }
    
            request.setAttribute("userName",userName);
            request.setAttribute("sex",sex);
    
            request.setAttribute("userList", userList);
            request.getRequestDispatcher("userList.jsp").forward(request,response);
        }

    userList.jsp

    <%@ page import="com.david.domain.User" %>
    <%@ page import="java.util.List" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>用户列表</title>
    </head>
    <body>
    <div>
        按用户名称搜索:<input id="txtUserName" value="${userName}"> &nbsp;
        按用户性别查找:<select id="selSex">
        <option value="">全部</option>
        <option value="男"></option>
        <option value="女"></option>
    </select> &nbsp;
    <button type="button" onclick="search()">搜索</button>
    </div>
    <script>
        //设置默认值
        window.onload = function (){
            for(var i = 0;i<document.getElementById("selSex").options.length;i++){
                var option = document.getElementById("selSex").options[i];
                if(option.value == "${sex}"){
                    option.selected = true;
                }
            }
        }
    
        function search(){
            var userName = document.getElementById("txtUserName").value;
            var sex = "";
            for(var i = 0;i<document.getElementById("selSex").options.length;i++){
                if(document.getElementById("selSex").options[i].selected){
                    sex = document.getElementById("selSex").options[i].value;
                }
            }
            location.href='userList?userName='+userName+"&sex="+sex;
        }
    </script>
    <table>
        <tr>
            <th>用户ID</th>
            <th>用户名</th>
            <th>用户密码</th>
            <th>用户年龄</th>
            <th>用户性别</th>
            <th>操作</th>
        </tr>
        <%
            if (request.getAttribute("userList") != null) {
        %>
        <%for (User u : (List<User>) request.getAttribute("userList")) {%>
        <tr>
            <td><%=u.getUserId()%>
            </td>
            <td><%=u.getUserName()%>
            </td>
            <td><%=u.getPassWord()%>
            </td>
            <td><%=u.getAge()%>
            </td>
            <td><%=u.getSex()%>
            </td>
            <td>
                <a href="GetUserById?userId=<%=u.getUserId()%>">修改</a>
                <a href="DeleteUser?userId=<%=u.getUserId()%>">删除</a>
            </td>
        </tr>
        <%}%>
        <%}%>
    </table>
    <a href="AddUser.jsp">添加用户</a>
    </body>
    </html>

    列表分页

    在domain中创建pageBean实体

    package com.david.domain;
    
    import java.util.List;
    
    public class PageBean<T> {
        //当前页
        private int curPage;
        //当前显示条数
        private int pageSize;
        //总页数
        private int totalPage;
        //总条数
        private int totalCount;
        //展示的数据
        private List<T> Data;
    
        public int getCurPage() {
            return curPage;
        }
    
        public int getPageSize() {
            return pageSize;
        }
    
        public int getTotalPage() {
            return totalPage;
        }
    
        public int getTotalCount() {
            return totalCount;
        }
    
        public List<T> getData() {
            return Data;
        }
    
        public void setCurPage(int curPage) {
            this.curPage = curPage;
        }
    
        public void setPageSize(int pageSize) {
            this.pageSize = pageSize;
        }
    
        public void setTotalPage(int totalPage) {
            this.totalPage = totalPage;
        }
    
        public void setTotalCount(int totalCount) {
            this.totalCount = totalCount;
        }
    
        public void setData(List<T> data) {
            Data = data;
        }
    
    }

    在dao中 创建分页方法

    //获取总条数
        public int GetUserCount(String userName, String sex) throws SQLException {
            String sql = "select count(*) from User where 1=1 ";
            List<String> params = new ArrayList<String>();
            if (userName != null && userName != "") {
                sql += " and UserName like ?";
                params.add("%" + userName + "%");
            }
            if (sex != null && sex != "") {
                sql += " and sex = ?";
                params.add(sex);
            }
            QueryRunner qr = new QueryRunner(DBUtil.GetDataSource());
            long count = (long)qr.query(sql,new ScalarHandler(),params.toArray());
            return (int)count;
        }
    
        public List<User> GetUserListForPageBean(String userName, String sex, int page, int pageSize) throws SQLException {
            String sql = "select * from User where 1=1 ";
            List<Object> params = new ArrayList<Object>();
            if (userName != null && userName != "") {
                sql += " and UserName like ?";
                params.add("%" + userName + "%");
            }
            if (sex != null && sex != "") {
                sql += " and sex = ?";
                params.add(sex);
            }
            sql += " limit ?,?";
            page = (page - 1) * pageSize;
            params.add(page);
            params.add(pageSize);
    
            QueryRunner qr = new QueryRunner(DBUtil.GetDataSource());
            List<User> users = qr.query(sql, new BeanListHandler<User>(User.class), params.toArray());
            return users;
        }

    service

    public PageBean<User> GetUserListForPageBean(String userName, String sex, int page, int pageSize) throws SQLException {
            UserDao dao = new UserDao();
            PageBean pageBean = new PageBean();
            pageBean.setCurPage(page);
            pageBean.setPageSize(pageSize);
            int totalCount = dao.GetUserCount(userName, sex);
            pageBean.setTotalCount(totalCount);
            int totalPage = (int) Math.ceil(1.0 * totalCount / pageSize);
            pageBean.setTotalPage(totalPage);
            List<User> data = dao.GetUserListForPageBean(userName,sex,page,pageSize);
            pageBean.setData(data);
            return pageBean;
        }

    UserListForPage servlet

        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
            String userName = request.getParameter("userName");
            String sex = request.getParameter("sex");
            String page = request.getParameter("page");
    
            int curPage = 1;
            if(page != null && page != ""){
                curPage = Integer.parseInt(page);
            }
            int pageSize = 5;
    
            UserService service = new UserService();
            PageBean<User> pageBean = null;
            try {
                pageBean = service.GetUserListForPageBean(userName,sex,curPage,pageSize);
            } catch (SQLException e) {
                e.printStackTrace();
            }
    
            request.setAttribute("userName",userName);
            request.setAttribute("sex",sex);
    
            request.setAttribute("pageBean", pageBean);
            request.getRequestDispatcher("userListForPage.jsp").forward(request,response);
        }

    web.xml

        <servlet>
            <servlet-name>UserListForPage</servlet-name>
            <servlet-class>com.david.web.UserListForPage</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>UserListForPage</servlet-name>
            <url-pattern>/userListForPage</url-pattern>
        </servlet-mapping>

    userListForPage.jsp

    <%@ page import="com.david.domain.User" %>
    <%@ page import="java.util.List" %>
    <%@ page import="com.david.domain.PageBean" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>用户列表</title>
    </head>
    <body>
    <div>
        按用户名称搜索:<input id="txtUserName" value="${userName}"> &nbsp;
        按用户性别查找:<select id="selSex">
        <option value="">全部</option>
        <option value="男"></option>
        <option value="女"></option>
    </select> &nbsp;
        <button type="button" onclick="search()">搜索</button>
        <a href="AddUser.jsp">添加用户</a>
    </div>
    <script>
        //设置默认值
        window.onload = function (){
            for(var i = 0;i<document.getElementById("selSex").options.length;i++){
                var option = document.getElementById("selSex").options[i];
                if(option.value == "${sex}"){
                    option.selected = true;
                }
            }
        }
    
        function search(){
            var userName = document.getElementById("txtUserName").value;
            var sex = "";
            for(var i = 0;i<document.getElementById("selSex").options.length;i++){
                if(document.getElementById("selSex").options[i].selected){
                    sex = document.getElementById("selSex").options[i].value;
                }
            }
            location.href='userList?userName='+userName+"&sex="+sex;
        }
    </script>
    <table>
        <tr>
            <th>用户ID</th>
            <th>用户名</th>
            <th>用户密码</th>
            <th>用户年龄</th>
            <th>用户性别</th>
            <th>操作</th>
        </tr>
        <%
            PageBean pageBean = (PageBean)request.getAttribute("pageBean");
            if (pageBean != null && pageBean.getData() != null) {
        %>
        <%for (User u : (List<User>)pageBean.getData()) {%>
        <tr>
            <td><%=u.getUserId()%>
            </td>
            <td><%=u.getUserName()%>
            </td>
            <td><%=u.getPassWord()%>
            </td>
            <td><%=u.getAge()%>
            </td>
            <td><%=u.getSex()%>
            </td>
            <td>
                <a href="GetUserById?userId=<%=u.getUserId()%>">修改</a>
                <a href="DeleteUser?userId=<%=u.getUserId()%>">删除</a>
            </td>
        </tr>
        <%}%>
        <%}%>
    </table>
    <div class="page">
        <%if(pageBean.getCurPage() != 1){%>
        <a href="?page=1">首页</a>
        <a href="?page=<%=pageBean.getCurPage()-1%>">上一页</a>
        <%}%>
    
        <%for(int i = 1;i<=pageBean.getTotalPage();i++){
            %>
        <%if(pageBean.getCurPage() == i){%>
        <a href="?page=<%=i%>" class="currentPage"><%=i%></a>
        <%}else{%>
        <a href="?page=<%=i%>"><%=i%></a>
        <%}%>
        <%}%>
        <%if(pageBean.getCurPage() != pageBean.getTotalPage()){%>
        <a href="?page=<%=pageBean.getCurPage()+1%>">下一页</a>
        <a href="?page=<%=pageBean.getTotalPage()%>">尾页</a>
        <%}%><%=pageBean.getTotalCount()%>条数据,<%=pageBean.getTotalPage()%>页。
    </div>
    <style>
        .page a{
            font-size:12px;
            text-decoration: none;
            color:#ccc;
        }
        .page .currentPage{
            color:#000;
            font-size:20px;
        }
    </style>
    </body>
    </html>
  • 相关阅读:
    分布式缓存系统 Memcached 状态机之SET、GET命令
    分布式缓存系统 Memcached 状态机之网络数据读取与解析
    分布式缓存系统 Memcached 状态机之socket连接与派发
    分布式缓存系统 Memcached 主线程之main函数
    分布式缓存系统 Memcached 半同步/半异步模式
    分布式缓存系统 Memcached slab和item的主要操作
    分布式缓存系统 Memcached 内存管理机制
    分布式缓存系统 Memcached 工作线程初始化
    分布式缓存系统 Memcached 哈希表操作
    分布式缓存系统 Memcached 数据存储slab与hashtable
  • 原文地址:https://www.cnblogs.com/baidawei/p/9025431.html
Copyright © 2011-2022 走看看