优化后的第一个javaweb项目

目录

bean 

Users 

package com.yhp.bean;
import com.yhp.util.PeopleUtil;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;

//类名=表名,列名=属性名
public class Users implements HttpSessionBindingListener {
    private Integer userid;
    private String username;
    private Integer age;
    private String sex;
    private String password;
    private Integer status;

    public Users() {
    }

    public Users(Integer userid, String username, Integer age, String sex, String password, Integer status) {
        this.userid = userid;
        this.username = username;
        this.age = age;
        this.sex = sex;
        this.password = password;
        this.status = status;
    }

    @Override
    public String toString() {
        return "Users{" +
                "userid=" + userid +
                ", username='" + username + '\'' +
                ", age=" + age +
                ", sex='" + sex + '\'' +
                ", password='" + password + '\'' +
                ", status=" + status +
                '}';
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getUserid() {
        return userid;
    }

    public void setUserid(Integer userid) {
        this.userid = userid;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override//当session和当前类对象绑定时,自动调取(session.setAttribute())
    public void valueBound(HttpSessionBindingEvent httpSessionBindingEvent) {
        System.out.println("当session和当前类对象绑定");
        PeopleUtil.PEOPLE_ON_LINE++;
    }

    @Override//当session和当前类对象解绑时,自动调取(session.setRemoveAttribute()或session.invalide())
    public void valueUnbound(HttpSessionBindingEvent httpSessionBindingEvent) {
        System.out.println("当session和当前类对象解绑");
        PeopleUtil.PEOPLE_ON_LINE--;

    }
}

dao 

UsersDao 

package com.yhp.dao;

import com.yhp.bean.Users;

import java.util.List;

public interface UsersDao {
    //登录方法(根据用户名和密码查询用户信息)
    public Users login(String username,String pass);
    //查询全部
    public List<Users> selectALL(int pageIndex,int size,String uname,String usex);
    //查询总条数
    public int totalCount(String uname,String usex);
    //删除(根据userid)
    public int deleteUser(int userid);
    //假删除(根据userid)
    public int deleteByid(int userid);
    //主键查询
    public Users selectbyid(int userid);
    //更新
    public int UpdateUser(Users users);
    //添加(新增)用户
    public int insert(Users users);
    //用户名已经存在
    public boolean checkuser(String name);
}

UsersDaoImpl 

package com.yhp.dao.impl;

import com.yhp.bean.Users;
import com.yhp.dao.UsersDao;
import com.yhp.util.DBUtilsPlus;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class UsersDaoImpl extends DBUtilsPlus implements UsersDao {

    @Override
    public Users login(String username, String pass) {
        Users u1 = null;
        try {
            String sql = "select * from users where username=? and password=?";
            List params = new ArrayList<>();
            params.add(username);
            params.add(pass);
            resultSet = selectDB(sql, params);
            //将结果集的内容拿到java对象中(当结果集有数据时,就会进入到循环中,每一次循环都会拿到数据库的一行数据)
            while (resultSet.next()) {
                /*int userid = resultSet.getInt("userid");
                String username1 = resultSet.getString("username");
                int age = resultSet.getInt("age");
                String sex = resultSet.getString("sex");
                String password = resultSet.getString("password");*/
                u1=new Users();
                u1.setUserid(resultSet.getInt("userid"));
                u1.setUsername(resultSet.getString("username"));
                u1.setAge(resultSet.getInt("age"));
                u1.setSex(resultSet.getString("sex"));
                u1.setPassword(resultSet.getString("password"));
            }
        }catch (SQLException e){
            e.printStackTrace();
        }finally {
            closeAll();
        }
        return u1;
    }

    @Override
    public List<Users> selectALL(int pageIndex,int size,String uname,String usex) {
        List userList= new ArrayList();
        try {
            //String sql = "select * from users  where status=0  limit ?,?"//假删除时候的sql
            //注意,字符串两边要加空格
            StringBuffer sql = new StringBuffer("select * from users  where status=0 ");
            List params=new ArrayList();
            if (uname!=null&&uname.trim().length()>0){
                sql.append(" and username like ? ");
                params.add("%"+uname+"%");//注意sql语句写的是列名
            }
            if (usex!=null&&!"请选择".equals(usex)){
                sql.append(" and sex=? ");//只要男或女的值才能进来
                params.add(usex);
            }
            sql.append(" limit ?,? ");
            params.add((pageIndex-1)*size);
            params.add(size);

            selectDB(sql.toString(), params);
            while (resultSet.next()) {
                Users u1 = new Users();
                u1.setUserid(resultSet.getInt("userid"));
                u1.setUsername(resultSet.getString("username"));
                u1.setAge(resultSet.getInt("age"));
                u1.setSex(resultSet.getString("sex"));
                u1.setPassword(resultSet.getString("password"));
                userList.add(u1);
            }

        }catch (SQLException e){
            e.printStackTrace();
        }finally {
            closeAll();
        }
        return userList;
    }

    @Override
    public int totalCount(String uname,String usex) {
        int count =0;
        try {
            //String sql="select count(*) from users where status=0";
            StringBuffer sql = new StringBuffer("select count(*) from users where status=0");
            List params=new ArrayList();
            if (uname!=null&&uname.trim().length()>0){
                sql.append(" and username like ? ");
                params.add("%"+uname+"%");//注意sql语句写的是列名
            }
            if (usex!=null&&usex.length()>0&&!"请选择".equals(usex)){
                sql.append(" and sex=? ");//只要男或女的值才能进来
                params.add(usex);
            }
            resultSet=selectDB(sql.toString(),params);
            while (resultSet.next()){
                //方式一:int count =resultSet.getInt("count(*)");
                count = resultSet.getInt(1);//列的位置从1开始
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            closeAll();
        }
        return count;
    }

    @Override
    public int deleteUser(int userid) {
        int i =0;//局部变量,否则返回i会报错
        try {
            String sql = "delete from users where userid=?";
            List params=new ArrayList();
            params.add(userid);
            //i表示受影响的行数
            i = updateDB(sql, params);
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            closeAll();
        }
        return i;
    }

    @Override
    public int deleteByid(int userid) {
        int i =0;//局部变量,否则返回i会报错
        try {
            String sql="update users set status=1 where userid=?";
            List params=new ArrayList();
            params.add(userid);
            //i表示受影响的行数
            i = updateDB(sql, params);
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            closeAll();
        }
        return i;
    }

    @Override
    public Users selectbyid(int userid) {
        Users users=new Users();
        try {
            String sql = "select * from users where userid=?";
            List params=new ArrayList();
            params.add(userid);
            resultSet  = selectDB(sql, params);
            while (resultSet.next()){
                users.setUserid(resultSet.getInt("userid"));
                users.setUsername(resultSet.getString("username"));
                users.setPassword(resultSet.getString("password"));
                users.setSex(resultSet.getString("sex"));
                users.setAge(resultSet.getInt("age"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            closeAll();
        }
        return users;
    }

    @Override
    public int UpdateUser(Users users) {
        int i=0;
        try {
            String sql="update users set username=?,age=?,sex=?,password=? where userid=?";
            List params=new ArrayList();
            params.add(users.getUsername());
            params.add(users.getAge());
            params.add(users.getSex());
            params.add(users.getPassword());
            params.add(users.getUserid());
            i=updateDB(sql,params);
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            closeAll();
        }
        return i;
    }

    @Override
    public int insert(Users users) {
        int i =0;
        try {
            String sql="insert into users(username,age,sex,password,status) values(?,?,?,?,0)";
            List params=new ArrayList();
            params.add(users.getUsername());
            params.add(users.getAge());
            params.add(users.getSex());
            params.add(users.getPassword());
            i=updateDB(sql,params);
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            closeAll();
        }
        return i;
    }

    @Override
    public boolean checkuser(String name) {
        try {
            String sql="select * from users where username=?";
            List params=new ArrayList();
            params.add(name);
            resultSet=selectDB(sql,params);
            if (resultSet.next()){
                return true;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            closeAll();
        }
        return false;
    }
}

UsersService 

package com.yhp.service;

import com.yhp.bean.Users;

import java.util.List;

public interface UsersService {
    //登录方法(根据用户名和密码查询用户信息)
    public Users login(String username, String pass);
    //查询全部(参数:页码值,每页显示条数,模糊查询条件1.模糊查询条件2)
    public List<Users> selectALL(int pageIndex,int size,String uname,String usex);
    //查询总条数
    public int totalCount(String uname,String usex);
    //删除(根据userid)
    public int deleteUser(int userid);
    //假删除(根据userid)
    public int deleteByid(int userid);
    //主键查询
    public Users selectbyid(int userid);
    //更新
    public int UpdateUser(Users users);
    //添加(新增)用户
    public int insert(Users users);
    //用户名已经存在
    public boolean checkuser(String name);
}

UsersServiceImpl

 

ackage com.yhp.service.impl;

import com.yhp.bean.Users;
import com.yhp.dao.UsersDao;
import com.yhp.dao.impl.UsersDaoImpl;
import com.yhp.service.UsersService;

import java.util.List;

public class UsersServiceImpl implements UsersService {
    UsersDao usersDao =new  UsersDaoImpl();
    @Override
    public Users login(String username, String pass) {
        return usersDao.login(username,pass);
    }

    @Override
    public List<Users> selectALL(int pageindex,int size,String uname,String usex) {
        return usersDao.selectALL(pageindex,size,uname,usex);
    }

    @Override
    public int totalCount(String uname,String usex) {
        return usersDao.totalCount(uname,usex);
    }

    @Override
    public int deleteUser(int userid) {
        return usersDao.deleteUser(userid);
    }

    @Override
    public int deleteByid(int userid) {
        return usersDao.deleteByid(userid);
    }

    @Override
    public Users selectbyid(int userid) {
        return usersDao.selectbyid(userid);
    }

    @Override
    public int UpdateUser(Users users) {
        return usersDao.UpdateUser(users);
    }

    @Override
    public int insert(Users users) {
        return usersDao.insert(users);
    }

    @Override
    public boolean checkuser(String name) {
        return usersDao.checkuser(name);
    }
}

Servlet 

UsersServlet 

package com.yhp.web;

import com.yhp.bean.Users;
import com.yhp.service.UsersService;
import com.yhp.service.impl.UsersServiceImpl;
import com.yhp.util.PageUtil;
import com.yhp.util.myPageUtilsPlus;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

//所以操作users表的请求都走这个处理类
@WebServlet(urlPatterns = "/usersServlet")
public class UsersServlet extends HttpServlet {
    //定义处理请求的新增方法
    protected void adduser(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1.接参数
        //req.setCharacterEncoding("utf-8");
        String uname = req.getParameter("uname");
        String usex = req.getParameter("usex");
        String uage = req.getParameter("uage");
        String upass = req.getParameter("upass");
        //2.调逻辑
        UsersService usersService=new UsersServiceImpl();
        Users users = new Users();
        users.setUsername(uname);
        users.setSex(usex);
        users.setAge(Integer.parseInt(uage));
        users.setPassword(upass);
        int i = usersService.insert(users);
        //3.返结果
        resp.setContentType("utf-8");
        resp.setCharacterEncoding("utf-8");
        PrintWriter writer = resp.getWriter();
        if (i>0) {

            writer.println("<script type='text/javascript'>alert('用户添加成功');location.href='/usersServlet?key=selectusers&pageIndex=1'</script>");
        }else {

            writer.println("<script type='text/javascript'>alert('用户添加失败');location.href='/add.jsp'</script>");
        }
    }
    //定义处理请求的假删除方法
    protected void deletebyid(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1.接参数
        String userid = (String) req.getParameter("userid");
        int uid = Integer.parseInt(userid);
        //2.写逻辑
        UsersService usersService=new UsersServiceImpl();
        int i = usersService.deleteByid(uid);
        //3.返结果
        resp.setContentType("utf-8");
        resp.setCharacterEncoding("utf-8");
        PrintWriter writer = resp.getWriter();
        if (i>0){
            //删除成功   注意,不可以用重定向list.jsp
            //deleteservlet->location.href->selectusersservlet->list.jsp
            writer.println("<script type='text/javascript'>alert('用户删除成功');location.href='usersServlet?key=selectusers&pageIndex=1'</script>");
        }else {
            //删除失败
            writer.println("<script type='text/javascript'>alert('用户删除失败');location.href='usersServlet?key=selectusers&pageIndex=1'</script>");
        }
    }
    //定义处理请求的真删除方法
    protected void deleteuser(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1.接参数
        String userid = req.getParameter("userid");
        //2.调逻辑
        UsersService usersService = new UsersServiceImpl();
        int i = usersService.deleteUser(Integer.parseInt(userid));
        //3.返结果
        resp.setContentType("utf-8");
        resp.setCharacterEncoding("utf-8");
        PrintWriter writer = resp.getWriter();
        if (i>0){
            //删除成功   注意,不可以用重定向list.jsp
            //deleteservlet->location.href->selectusersservlet->list.jsp
            writer.println("<script type='text/javascript'>alert('用户删除成功');location.href='/usersServlet?key=selectusers&?pageIndex=1'</script>");
        }else {
            //删除失败
            writer.println("<script type='text/javascript'>alert('用户删除失败');location.href='/usersServlet?key=selectusers&pageIndex=1'</script>");
        }
    }
    //定义处理请求的退出方法
    protected void loginout(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //清除session,跳转页面
        HttpSession session = req.getSession();
        session.invalidate();
        //跳转目标页面
        resp.sendRedirect("index.jsp");
    }
    //定义处理请求的登录方法
    protected void login(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1.接参数
        //req.setCharacterEncoding("utf-8");
        String username = req.getParameter("username");//要和表单的name值相同
        String userpass =req.getParameter("userpass");
        //2.写逻辑(面向接口编程)
        UsersService usersService =new UsersServiceImpl();
        Users u = usersService.login(username, userpass);
        //3.返结果
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter writer = resp.getWriter();
        if (u==null){
            //登录失败(在后端给前端返回一个弹窗-若用js,就不要再用重定向或转发跳页面了否则405错误)
            //location.href是属于重定向跳转页面
            writer.print("<script type='text/javascript'>alert('用户名或密码不正确');location.href='index.jsp'</script>");

        }else {
            //登录成功
            HttpSession session = req.getSession();
            session.setAttribute("u1",u);
            writer.print("<script type='text/javascript'>alert('登录成功');location.href='success.jsp'</script>");
        }
    }
    //定义处理请求的id查询方法
    protected void selectbyid(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1.接参数
        String userid = req.getParameter("userid");
        //2.调方法
        UsersService service =new UsersServiceImpl();
        Users users =service.selectbyid(Integer.parseInt(userid));
        //3.返结果
        req.setAttribute("user",users);
        req.getRequestDispatcher("update.jsp").forward(req,resp);
    }
    //定义处理请求的全查方法
    protected void selectusers(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1.接参数
        //req.setCharacterEncoding("utf-8");
        String pageIndex = req.getParameter("pageIndex");
        //如果没有接收到pageindex,默认查询第一页
        int index = pageIndex==null?1:Integer.parseInt(pageIndex);//页码值
        //接收模糊查询条件
        String uname = req.getParameter("uname");
        String usex = req.getParameter("usex");
        //2.写逻辑
        UsersService usersService =new UsersServiceImpl();
        List<Users> users = usersService.selectALL(index, PageUtil.PAGESIZE,uname,usex);
        //每页展示数据时,不够一页,也会独占一页位置
        //10/5=2页,11/5=2...1  /3页。
        //总页数=总条数%每页显示条数>0?总条数/每页显示条数+1:总条数/每页显示条数
        int total = usersService.totalCount(uname,usex);//总条数
        //int totalPages=total%PageUtil.PAGESIZE>0?total/PageUtil.PAGESIZE+1:total/PageUtil.PAGESIZE;//总页数
        //3.返结果(后端给前端传数据,必然涉及存值问题,4个作用域选择request)
        myPageUtilsPlus<Users> usersmyPageUtilsPlus = new myPageUtilsPlus<>();
        usersmyPageUtilsPlus.setPageIndex(index);
        usersmyPageUtilsPlus.setTotalCount(total);
        //usersmyPageUtilsPlus.setTotalPages(totalPages);
        usersmyPageUtilsPlus.setDataList(users);
        //存储分页的条件
        req.setAttribute("pu",usersmyPageUtilsPlus);
        //存储模糊查询条件
        req.setAttribute("username",uname);
        req.setAttribute("usersex",usex);
        req.getRequestDispatcher("/list.jsp").forward(req,resp);
    }
    //定义处理请求的更新方法
    protected void updateuser(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1.接参数+处理post请求的乱码
        //req.setCharacterEncoding("utf-8");
        String uid = req.getParameter("uid");
        String uname = req.getParameter("uname");
        String usex = req.getParameter("usex");
        String uage = req.getParameter("uage");
        String upass = req.getParameter("upass");
        //2.写逻辑
        UsersService usersService=new UsersServiceImpl();
        Users users = new Users();
        users.setUserid(Integer.parseInt(uid));
        users.setUsername(uname);
        users.setSex(usex);
        users.setAge(Integer.parseInt(uage));
        users.setPassword(upass);
        int i = usersService.UpdateUser(users);
        //3.返结果
        resp.setContentType("utf-8");
        resp.setCharacterEncoding("utf-8");
        PrintWriter writer = resp.getWriter();
        if (i>0) {
            //更新成功 回到展示用户列表的页面(不能直接跳回到list.jsp,而是需要重新发送新的请求,间接走到list.jsp)
            writer.println("<script type='text/javascript'>alert('用户更新成功');location.href='/usersServlet?key=selectusers&pageIndex=1'</script>");
        }else {
            //更新失败 回到更新页面update.jsp(不能直接跳回到update.jsp,而是需要重新发送新的请求,间接走到update.jsp)
            writer.println("<script type='text/javascript'>alert('用户更新失败');location.href='/usersServlet?key=selectbyid&userid="+uid+"'</script>");
        }
    }
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        String key =req.getParameter("key");
        switch(key){
            case "adduser":
                //执行新增方法
                adduser(req,resp);
                break;
            case "deletebyid":
                //执行假删除方法
                deletebyid(req,resp);
                break;
            case "deleteuser":
                //执行真删除方法
                deleteuser(req,resp);
                break;
            case "loginout":
                //执行退出方法
                loginout(req,resp);
                break;
            case "login":
                //执行登录方法
                login(req,resp);
                break;
            case "selectbyid":
                //执行id查询方法
                selectbyid(req,resp);
                break;
            case "selectusers":
                //执行全查方法
                System.out.println("执行全查的方法--servlet");
                selectusers(req,resp);
                break;
            case "updateuser":
                //执行更新方法
                updateuser(req,resp);
                break;
        }
    }
}

ChekUserNameServlet 

package com.yhp.web;

import com.yhp.service.UsersService;
import com.yhp.service.impl.UsersServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet(urlPatterns = "/chekuname")
public class ChekUserNameServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1.接参数
        String uname = req.getParameter("uname");
        //判断该名字是否存在
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter writer = resp.getWriter();
        //验证用户名是否存在的方法
        UsersService usersService=new UsersServiceImpl();
        boolean checkuser = usersService.checkuser(uname);
        if (checkuser){
            //用户名已经存在
            //在使用ajax时不需要考虑调页面,默认调回ajax发送的页面
            writer.print("用户名已存在");

        }else {
            //用户名可用
            writer.print("用户名可用");

        }
    }
}

Filter 

 MyFilter01

package com.yhp.filter;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;

public class MyFilter01 implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("filter--1初始化方法");
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("filter--1执行的方法--开始");
        //设置编码类型
        HttpServletRequest request=(HttpServletRequest)servletRequest;
        request.setCharacterEncoding("utf-8");
        //调取下一个filter或者servlet
        filterChain.doFilter(servletRequest, servletResponse);
        System.out.println("filter--1执行的方法--结束");
    }

    @Override
    public void destroy() {
        System.out.println("filter--1销毁的方法");
    }
}

MyFilter02 

 

package com.yhp.filter;

import com.yhp.bean.Users;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class MyFilter02 implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("filter--2初始化方法");
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("filter--2执行的方法--开始");
        //验证用户是否登录
        //防止用户在未登录的情况下访问限定页面
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;
        String uri = request.getRequestURI();//请求地址
        System.out.println("uri=" + uri);

        //活的session中的用户信息
        Users users = (Users) request.getSession().getAttribute("u1");
        if (users == null) {
            //未登录,提示用户登录
            //对一些资源放行
            String key = request.getParameter("key");
            if("index.jsp".endsWith(uri)||"login".equals(key)||"/favicin.ico".endsWith(uri)){
                filterChain.doFilter(servletRequest, servletResponse);
            } else {
                //response.sendRedirect("index.jsp");死循环,重定向会修改页面地址
                request.getRequestDispatcher("index.jsp").forward(request, response);
            }

         }else {
                    filterChain.doFilter(servletRequest, servletResponse);//调取下一个filter或目标servlet
                }
               System.out.println("filter--2执行的方法--结束");
    }

        @Override
        public void destroy () {
            System.out.println("filter--2销毁的方法");
        }
    }

xml配置文件 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <filter>
        <filter-name>f1</filter-name>
        <filter-class>
            com.yhp.filter.MyFilter01
        </filter-class>
    </filter>
    <filter-mapping>
        <filter-name>f1</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <filter>
        <filter-name>f2</filter-name>
        <filter-class>
            com.yhp.filter.MyFilter02
        </filter-class>
    </filter>
    <filter-mapping>
        <filter-name>f2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <listener>
        <listener-class>com.yhp.bean.Users</listener-class>
    </listener>
</web-app>

web前端代码部分 

 index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
     <h1>登录</h1>
     <form action="/usersServlet?key=login" method="post">
         用户名<input type="text" name="username"><br>
         密码<input type="password" name="userpass">
       <input type="submit" value="登录入口">
     </form>
  </body>
</html>

success.jsp 

<%@ page import="com.yhp.bean.Users" %>
<%@ page import="com.yhp.util.PeopleUtil" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
     <h1>登录成功,欢迎您:${sessionScope.u1.username},当前在线人数:<%=PeopleUtil.PEOPLE_ON_LINE%>
       <a href="/usersServlet?key=loginout">退出</a>
   </h1>
<%--第一个参数用?拼接后面用&--%>
<input type="button" value="查询用户列表" onclick="javascript:location.href='/usersServlet?key=selectusers&pageIndex=1'">
</body>
</html>

 list.jsp

<%@ page import="com.yhp.bean.Users" %>
<%@ page import="java.util.List" %>
<%@ page import="com.yhp.util.myPageUtilsPlus" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--<%--%>
<%--    Users u1=(Users) session.getAttribute("u1");--%>
<%--%>--%>
<%--<h1>列表页面,欢迎您:<%=u1==null?"":u1.getUsername()%></h1>--%>
        <h1>列表页面,欢迎您:${sessionScope.u1.username}
            <a href="/usersServlet?key=loginout">退出</a></h1>
    <%
//      //得到模糊查条件  key=username,usersex
        //分页数据: key=pu
    %>
    <div>
        <input type="button" value="新增" onclick="javascript:location.href='add.jsp'">
    </div>
    <div>
        <form action="/usersServlet?key=selectusers" method="post">
            姓名:<input type="text" name="uname" value="${username}">&nbsp;&nbsp;
            性别:<select name="usex">
                      <option value="请选择" ${usersex=="请选择"?"selected":""}>请选择</option>
                      <option value="男"${usersex=="男"?"selected":""}>男</option>
                      <option value="女"${usersex=="女"?"selected":""}>女</option>
                </select>
            <input type="submit" value="查询">
        </form>
    </div>
    <table border="1" cellspacing="0" width="500">
        <tr>
            <td>用户编号</td>
            <td>用户姓名</td>
            <td>用户性别</td>
            <td>用户年龄</td>
            <td>用户密码</td>
            <td>操作</td>
        </tr>
            <c:forEach items="${pu.dataList}"  var="u">
            <tr>
                <td>${u.userid}</td>
                <td>${u.username}</td>
                <td>${u.sex}</td>
                <td>${u.age}</td>
                <td>${u.password}</td>
                <td> <a href="/usersServlet?key=deleteuser&userid=${u.userid}">删除</a>
                    <a href="/usersServlet?key=deletebyid&userid=${u.userid}">假删除</a>
                    <a href="/usersServlet?key=selectbyid&userid=${u.userid}">修改</a> </td>
            </tr>
            </c:forEach>
        <tr>
            <td colspan="6">
                <a href="/usersServlet?key=selectusers&pageindex=1&uname=${username}&usex=${usersex}">首页</a>
                <a href="/usersServlet?key=selectusers&pageIndex=${pu.pageIndex-1<=1?1:pu.pageIndex-1}&uname=${username}&usex=${usersex}">上一页</a>
                <c:forEach begin="1" end="${pu.totalPages}" var="i">
                   <a href="/usersServlet?key=selectusers&pageIndex=${i}&uname=${username}&usex=${usersex}">${i}</a>&nbsp;&nbsp;
                </c:forEach>
                <a href="/usersServlet?key=selectusers&pageIndex=${pu.pageIndex+1>=pu.totalPages?pu.totalPages:pu.pageIndex+1}&uname=${username}&usex=${usersex}">下一页</a>
                <a href="/usersServlet?key=selectusers&pageIndex=${pu.totalPages}&uname=${username}&usex=${usersex}">尾页</a><br>
                当前页:${pu.pageIndex},
                总页数:${pu.totalPages},
                总条数:${pu.totalCount}>
            </td>
        </tr>
    </table>
</body>
</html>

 update.jsp

<%@ page import="com.yhp.bean.Users"%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--<%--%>
<%--   Users user= (Users) request.getAttribute("user");--%>
<%--%>--%>
<h1>update.jsp登录成功,欢迎您:${sessionScope.u1.username}
    <a href="/usersServlet?key=loginout">退出</a></h1>
   <form action="/usersServlet?key=updateuser" method="post">
      userid:<input type="text" name="uid" readonly value="${user.userid}"><br>
      username:<input type="text" name="uname" value="${user.username}"><br>
      sex:<input type="radio" name="usex" value="男" ${"男"==user.sex?"checked":""}>男
       <input type="radio" name="usex" value="女" ${"女"==user.sex?"checked":""}>女<br>
      age:<input type="text" name="uage" value="${user.age}"><br>
      password:<input type="text" name="upass" value="${user.password}"><br>
       <input type="submit" value="提交按钮">
   </form>
</body>
</html>

add.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title></title>
    <script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
    <script type="text/javascript">
        $(function () {
            $("#username").blur(function(){//当用户名失去焦点时
                //1.获取用户输入的信息
                var sname = $(this).val();
                //2.将这个value值发送给服务器,去做验证
                $.ajax({
                    url:"/chekuname",//请求地址
                    type:"post",//请求方式
                    data:"uname="+sname,//传输的数据
                    dataType:"text",//返回的格式
                    //returndata是自定义参数变量,用来接收返回的结果
                    success:function (returndata) {//执行成功后的回调函数
                        $("#rs").html(returndata)
                    }
                });
            });
        })
    </script>
    <style type="text/css">
        span{color: #ff0000
        }
    </style>
</head>
<body>
    <h1>add.jsp登录成功,欢迎您:${sessionScope.u1.username}
        <a href="/usersServlet?key=loginout">退出</a>></h1>
     <form action="/usersServlet?key=adduser" method="post">
         username:<input type="text" id="username" name="uname"><span id="rs"></span><br>
         sex:<input type="radio" name="usex" value="男">男
         <input type="radio" name="usex" value="女">女<br>
         age:<input type="text" name="uage"><br>
         password:<input type="text" name="upass"><br>
         <input type="submit" value="保存">
     </form>
</body>
</html>

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值