详解Java快速上手用户后台管理系统

网友投稿 296 2022-09-03


详解Java快速上手用户后台管理系统

目录主要功能登录功能管理员列表用户列表订单管理

主要功能

管理员登录功能、管理员列表操作、用户列表操作、订单管理

登录功能

设计思路:前端页面获取输入的数据,然后发送Ajax请求,在servlet中获取数据并调用service层中的方法进行处理,service层中调用dao层的实现方法,最终servlet返回一个结果集,判断登录是否成功。

login.html主要功能代码:

servlet中功能代码:

//登录

public void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//获取用户名和密码

String username = request.getParameter("username");

String password = request.getParameter("password");

//封装管理员对象

Administrator admin = new Administrator();

admin.setAname(username);

admin.setPassword(password);

//创建结果对象

ResultInfo resultInfo = new ResultInfo();

//调用service查询

Administrator administrator = service.login(admin);

if (administrator == null) {

resultInfo.setFlag(false);

resultInfo.setErrorMsg("用户名或密码错误!");

}

if (administrator != null && !administrator.getStatus().equals("Y")) {

resultInfo.setFlag(false);

resultInfo.setErrorMsg("该账户未激活!");

}

if (administrator != null && administrator.getStatus().equals("Y")) {

resultInfo.setFlag(true);

//设置session

request.getSession().setAttribute("username", administrator.getAname());

}

//调用父类中定义的方法,转json数据后回传

writeValue(resultInfo, response);

}

service层中代码实现:

@Override

public Administrator login(Administrator administrator) {

return dao.login(administrator);

}

dao层中代码实现:

@Override

public Administrator login(Administrator administrator) {

Administrator admin = null;

try {

String sql = "SELECT * FROM administrator WHERE aname = ? AND PASSWORD = ?";

admin = template.queryForObject(sql, new BeanPropertyRowMapper<>(Administrator.class), administrator.getAname(), administrator.getPassword());

} catch (Exception e) {

}

return admin;

}

实现效果:

管理员列表

设计思路:数据操作与登录功能大同小异,实现了管理员的增删改查,在此重点介绍分页、模糊查询。

admin_list.html主要功能代码:

servlet中功能代码:

//分页、模糊查询

public void pageQuery(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//接收参数

String currentPageStr = request.getParameter("currentPage");

//接收admin_name管理员名称

String admin_name = request.getParameter("admin_name");

//判断admin_name是否为null

if (admin_name != null && !"null".equals(admin_name) http://&& admin_name.length() > 0) {

admin_name = new String(admin_name.getBytes("iso-8859-1"), "utf-8");

} else {

admin_name = "";

}

int currentPage = 0; //当前页码,不传递参数,默认为1

if (currentPageStr != null && currentPageStr.length() > 0) {

currentPage = Integer.parseInt(currentPageStr);

} else {

currentPage = 1;

}

//每页显示条数,默认为5

int pageSize = 5;

//调用service查询PageBean对象

PageBean pb = service.pageQuery(currentPage, pageSize, admin_name);

//将pageBean对象序列化为json,返回

writeValue(pb, response);

}

service层中代码实现:

@Override

public PageBean pageQuery(int currentPage, int pageSize, String admin_name) {

//封装PageBean

PageBean pb = new PageBean<>();

//设置当前页码

pb.setCurrentPage(currentPage);

//设置每页显示条数

pb.setPageSize(pageSize);

//设置总记录数

int totalCount = dao.findTotalCount(admin_name);

pb.setTotalCount(totalCount);

//设置当前页显示的数据集合

int start = (currentPage - 1) * pageSize; //开始的记录数

List list = dao.findByPage(sbiAEqIXiJZtart, pageSize, admin_name);

pb.setList(list);

//设置总页数 = 总记录数/每页显示条数

int totalPage = totalCount % pageSize == 0 ? totalCount / pageSize : (totalCount / pageSize) + 1;

pb.setTotalPage(totalPage);

return pb;

}

dao层中代码实现:

@Override

public int findTotalCount(String admin_name) {

//定义sql模板

String sql = "SELECT COUNT(*) FROM administrator WHERE 1=1 ";

StringBuilder sb = new StringBuilder(sql);

//条件

List params = new ArrayList<>();

if (admin_name != null && admin_name.length() > 0) {

sb.append(" and aname like ? ");

params.add("%" + admin_name + "%");

}

sql = sb.toString();

return template.queryForObject(sql, Integer.class, params.toArray());

}

@Override

public List findByPage(int start, int pageSize, String admin_name) {

String sql = "SELECT * FROM administrator WHERE 1=1 ";

StringBuilder sb = new StringBuilder(sql);

//条件

List params = new ArrayList<>();

//判断参数是否有值

if (admin_name != null && admin_name.length() > 0) {

sb.append(" and aname like ? ");

params.add("%" + admin_name + "%");

}

//分页条件

sb.append(" limit ?,? ");

params.add(start);

params.add(pageSize);

//转字符串

sql = sb.toString();

return template.query(sql, new BeanPropertyRowMapper<>(Administrator.class), params.toArray());

}

实现效果:

用户列表

设计思路:与管理员列表设计思路基本类似。

实现效果:

订单管理

设计思路:与管理员列表设计思路基本类似。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【通信】基于matlab的OFDM-MIMO通信建模与仿真(MIMO-OFDM无线通信技术及其Matlab仿真)
下一篇:# yyds干货盘点 # 网易云音乐热门作品名字和链接抓取(bs4篇)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~