目录
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}">
性别:<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>
</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>