栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Servlet实战——利用Session管理员权限验证

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Servlet实战——利用Session管理员权限验证

Session管理员实战权限验证
  • Session管理员实战权限验证
    • 一、创建管理员表
    • 二、 登录页面
    • 三、Dao层
      • Dao层接口
      • Dao层Impl实现类
    • 四、Entity实体类
    • 五、Service业务方法实现类
      • Service接口
      • ServiceImpl实现类
    • 六、Servlet
      • Controller
      • JSP

Session管理员实战权限验证

一、创建管理员表
create table manager(
	username varchar(20) primary key,
	password varchar(20) not null
)charset = utf8;
insert into manager(username,password) values('tom','123');
二、 登录页面



    
    管理员登录


    
用户名:
密码:
三、Dao层 Dao层接口

AdminDao:

package com.hyqwsq.servletSessionProject.Dao;

import com.hyqwsq.servletSessionProject.entity.Admin;

import java.util.List;

public interface AdminDao {
    public List selectAll();
}

ManagerDao:

package com.hyqwsq.servletSessionProject.Dao;

import com.hyqwsq.servletSessionProject.entity.Manager;

public interface ManagerDao {
    // 权限登录验证,返回一个Manager
    public Manager select(String username);
}

Dao层Impl实现类

AdminDaoImpl:

package com.hyqwsq.servletSessionProject.Dao.impl;

import com.hyqwsq.servletSessionProject.Dao.AdminDao;
import com.hyqwsq.servletSessionProject.entity.Admin;
import com.hyqwsq.servletSessionProject.utils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;

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

public class AdminDaoImpl implements AdminDao {
    private QueryRunner queryRunner = new QueryRunner();
    @Override
    public List selectAll() {
        List admins = null;
        try {
            admins = queryRunner.query(
                    DbUtils.getConnection(),
                    "select * from admin",
                    new BeanListHandler(Admin.class)
            );
            return admins;
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }

        return null;
    }
}

ManagerDaoImpl:

package com.hyqwsq.servletSessionProject.Dao.impl;

import com.hyqwsq.servletSessionProject.Dao.ManagerDao;
import com.hyqwsq.servletSessionProject.entity.Manager;
import com.hyqwsq.servletSessionProject.utils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;

import java.sql.SQLException;

public class ManagerDaoImpl implements ManagerDao {
    private QueryRunner queryRunner = new QueryRunner();

    @Override
    public Manager select(String username) {
        try {
            Manager manager = queryRunner.query(
                    DbUtils.getConnection(),
                    "select * from manager where username = ?",
                    new BeanHandler(Manager.class),//封装成实体类对象
                    username);//参数
            return manager;
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }

        return null;
    }
}

四、Entity实体类

Admin:

package com.hyqwsq.servletSessionProject.entity;

public class Admin {
    private String username;
    private String password;
    private String phone;
    private String address;

    public Admin(String username, String password, String phone, String address) {
        this.username = username;
        this.password = password;
        this.phone = phone;
        this.address = address;
    }

    public Admin() {
    }

    @Override
    public String toString() {
        return "Admin{" +
                "username='" + username + ''' +
                ", password='" + password + ''' +
                ", phone='" + phone + ''' +
                ", address='" + address + ''' +
                '}';
    }

    public String getUsername() {
        return username;
    }

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

    public String getPassword() {
        return password;
    }

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

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

Manager:

package com.hyqwsq.servletSessionProject.entity;

public class Manager {
    private String username;
    private String password;

    public Manager() {
    }

    @Override
    public String toString() {
        return "manager{" +
                "username='" + username + ''' +
                ", password='" + password + ''' +
                '}';
    }

    public Manager(String username, String password) {
        this.username = username;
        this.password = password;
    }

    public String getUsername() {
        return username;
    }

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

    public String getPassword() {
        return password;
    }

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

五、Service业务方法实现类 Service接口

AdminService:

package com.hyqwsq.servletSessionProject.service;

import com.hyqwsq.servletSessionProject.entity.Admin;

import java.util.List;

public interface AdminService {
    public List showAllAdmin();
}

ManagerService:

package com.hyqwsq.servletSessionProject.service;

import com.hyqwsq.servletSessionProject.entity.Manager;

public interface ManagerService {
    public Manager login(String username, String password);
}

ServiceImpl实现类

AdminServiceImpl:

package com.hyqwsq.servletSessionProject.service.impl;

import com.hyqwsq.servletSessionProject.Dao.AdminDao;
import com.hyqwsq.servletSessionProject.Dao.impl.AdminDaoImpl;
import com.hyqwsq.servletSessionProject.entity.Admin;
import com.hyqwsq.servletSessionProject.service.AdminService;
import com.hyqwsq.servletSessionProject.utils.DbUtils;

import java.util.List;

public class AdminServiceImpl implements AdminService {
    private AdminDao adminDao = new AdminDaoImpl();

    @Override
    public List showAllAdmin() {
        List admins = null;
        try {
            DbUtils.begin();
            admins =adminDao.selectAll();
            DbUtils.commit();
        } catch (Exception e) {
            DbUtils.rollback();
            e.printStackTrace();
        }
        return admins;
    }
}

ManagerServiceImpl:

package com.hyqwsq.servletSessionProject.service.impl;

import com.hyqwsq.servletSessionProject.Dao.ManagerDao;
import com.hyqwsq.servletSessionProject.Dao.impl.ManagerDaoImpl;
import com.hyqwsq.servletSessionProject.entity.Manager;
import com.hyqwsq.servletSessionProject.service.ManagerService;
import com.hyqwsq.servletSessionProject.utils.DbUtils;

public class ManagerServiceImpl implements ManagerService {
    private ManagerDao managerDao = new ManagerDaoImpl();
    @Override
    public Manager login(String username, String password) {
        Manager manager = new Manager();
        try {
            manager = null;
            DbUtils.begin();
            Manager temp = managerDao.select(username);
            if(temp != null){
                if(temp.getPassword().equals(password)){
                    manager = temp;
                }
            }
            DbUtils.commit();
        } catch (Exception e) {
            DbUtils.rollback();
            e.printStackTrace();
        }
        return manager;
    }
}

六、Servlet Controller

LoginMgrController:

package com.hyqwsq.servletSessionProject.servlet.controller;

import com.hyqwsq.servletSessionProject.entity.Manager;
import com.hyqwsq.servletSessionProject.service.ManagerService;
import com.hyqwsq.servletSessionProject.service.impl.ManagerServiceImpl;

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;


@WebServlet("/loginMgr")
public class LoginMgrController extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 1. 处理乱码
        req.setCharacterEncoding("UTF-8");
        resp.setContentType("text/html;charset=utf-8");
        // 2. 收参
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        // 3. 调用业务逻辑方法
        ManagerService managerService = new ManagerServiceImpl();
        Manager mgr = managerService.login(username,password);
        // 4. 处理结果,流程跳转
        if(mgr!=null){
            //登录成功
            //将管理员信息存储在Session里
            HttpSession session = req.getSession();
            session.setAttribute("mgr",mgr);
            session.setMaxInactiveInterval(60*60);
            //跳转 目标,方式
            resp.sendRedirect("/Servlet_code_demo1_war_exploded/showallcontroller");
        }else{
            // mgr = null,表示登录失败,跳转会登录界面
            resp.sendRedirect("/Servlet_code_demo1_war_exploded/loginMgr.html");
        }
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }
}

ShowAllAdminController:

package com.hyqwsq.servletSessionProject.servlet.controller;

import com.hyqwsq.servletSessionProject.entity.Admin;
import com.hyqwsq.servletSessionProject.entity.Manager;
import com.hyqwsq.servletSessionProject.service.AdminService;
import com.hyqwsq.servletSessionProject.service.impl.AdminServiceImpl;

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.util.List;

@WebServlet("/showallcontroller")
public class ShowAllAdminController extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        HttpSession session = req.getSession();
        Manager manager = (Manager) session.getAttribute("mgr");
        if(manager!=null){
            AdminService adminService = new AdminServiceImpl();

            List adminList = adminService.showAllAdmin();

            req.setAttribute("admins",adminList);

            req.getRequestDispatcher("/showalljsp").forward(req,resp);
        }else{
            resp.sendRedirect("/Servlet_code_demo1_war_exploded/loginMgr.html");
        }

    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }
}

JSP

ShowAllAdminJSP:

package com.hyqwsq.servletSessionProject.servlet.jsp;

import com.hyqwsq.servletSessionProject.entity.Admin;

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;
import java.util.List;

@WebServlet("/showalljsp")
public class ShowAllAdminJSP extends HttpServlet {
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");
        resp.setContentType("text/html;charset=utf-8");

        List adminList = (List)req.getAttribute("admins");

        // 2.通过流打印结果显示
        PrintWriter printWriter = resp.getWriter();
        if(adminList != null){
            printWriter.println("");
            printWriter.println(    "");
            printWriter.println(        "");
            printWriter.println(        "显示所有");
            printWriter.println(    "");

            printWriter.println(    "");
            printWriter.println(        "");
            printWriter.println(            "");
            printWriter.println(                "");
            printWriter.println(                "");
            printWriter.println(                "");
            printWriter.println(                "");
            printWriter.println(            "");

            for(Admin admin : adminList){
                printWriter.println(            "");
                printWriter.println(                "");
                printWriter.println(                "");
                printWriter.println(                "");
                printWriter.println(                "");
                printWriter.println(            "");

            }
            printWriter.println(        "
usernamepasswordphoneaddress
"+admin.getUsername()+""+admin.getPassword()+""+admin.getPhone()+""+admin.getAddress()+"
"); printWriter.println( ""); printWriter.println(""); }else{ printWriter.println(""); printWriter.println( ""); printWriter.println( ""); printWriter.println( "显示所有"); printWriter.println( ""); printWriter.println( ""); printWriter.println( "当前没有数据"); printWriter.println( ""); printWriter.println(""); } } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/694396.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号