海阔天空

当前时间为:
欢迎大家来到海阔天空https://www.9713job.com,广告合作以及淘宝商家推广请微信联系15357240395

舒大少个人日记:实现静态登陆以及动态登录含验证码和过滤脏词和权限管理

未分类
2020-05-26 17:03:00
1822677238@qq.com

手机扫码查看

舒大少个人日记:实现静态登陆以及动态登录含验证码和过滤脏词和权限管理

登录失败页面、欢迎页、管理员页面、查询页面、文本框页面请自行编写
静态登陆含验证码
login.html

<form action="/day14/login" method="post">
    用户名:<input type="text" name="username"><br>
    密码:<input type="password" name="password"><br>
    验证码<input type="text" name="vc"><img src="/day14/vcode" alt=""><br>
    <input type="submit" value="登录">
</form>

codeServlet
@WebServlet(name = “codeServlet”,value = “/vcode”)

ValidateCode code=new ValidateCode(220,50,4,0);
String code1 = code.getCode();
HttpSession session = request.getSession();
session.setAttribute("code",code);
code.write(response.getOutputStream());

loginServlet
@WebServlet(name = “loginServlet”,value = “/login”)
request.setCharacterEncoding(“UTF-8”);
response.setContentType(“text/html;charset=utf-8”);
HttpSession session = request.getSession();
String username = request.getParameter(“username”);
String password = request.getParameter(“password”);
String vc = request.getParameter(“vc”);
ValidateCode code = (ValidateCode) session.getAttribute(“code”);
String code1 = code.getCode();
if (username == null || username.trim().length() == 0) {
response.getWriter().println(“用户名不能为空”);
return;
}
if (password == null || password.trim().length() == 0) {
response.getWriter().println(“密码不能为空”);
return;
}
if (vc == null || vc.trim().length() == 0) {
response.getWriter().println(“验证码不能为空”);
return;
}
if(“admin”.equals(username)&&”admin888″.equals(password)&&code1.equalsIgnoreCase(vc)){
session.setAttribute(“username”,username);
Cookie cookie=new Cookie(“userinfo”,username+”#”+password);
cookie.setPath(“/”);
cookie.setMaxAge(60*60*24*7);
response.addCookie(cookie);
response.sendRedirect(“/day14/welcome.html”);
}else{
response.sendRedirect(“/day14/bad.html”);
}
===============================
动态登录以及权限管理
需要写util工具类、entity实体类、DAO、Service以及实现类

DAO实现类

public class UserDaoImpl implements UserDao {
    private QueryRunner queryRunner=new QueryRunner(DruidUtils.getDataSource());
    @Override
    public User checkUser(User user) {
        try {
            return queryRunner.query("select*from users where username=? and password=?",
                    new BeanHandler<User>(User.class),user.getUsername(),user.getPassword());
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
}

 

loginFilter2
@WebFilter(filterName = "loginFilter2",value = "/login.html")
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) 
throws ServletException, IOException {
    HttpServletRequest request=(HttpServletRequest)req;
    HttpServletResponse response=(HttpServletResponse)resp;
    HttpSession session = request.getSession();
    User user = (User) session.getAttribute("user");
    if (user != null) {
        response.sendRedirect("/day14/welcome.html");
    }else{
        Cookie[] cookies = request.getCookies();
        if (cookies != null) {
            for (Cookie cookie : cookies) {
                String name = cookie.getName();
                if(name.equals("userinfo")){
                    String value = cookie.getValue();
                    String[] split = value.split("#");
                    UserService userService=new UserServicesImpl();
                    User user1 = userService.checkUser(split[0], split[1]);
                    if (user1 != null) {
                        if (user1.getAccess() == 1) {
                            response.sendRedirect("/day14/admin.html");
                        }else{
                            response.sendRedirect("/day14/getall.html");
                        }
                    }else{
                        response.sendRedirect("/day14/bad.html");
                    }
                }
            }
        }
    }
    chain.doFilter(req, resp);
}

loginServlet2
@WebServlet(name = "loginServlet2",value = "/login2")
protected void doGet(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    response.setContentType("text/html;charset=utf8");
    HttpSession session = request.getSession();
    String username = request.getParameter("username");
    String password = request.getParameter("password");
    String vc = request.getParameter("vc");
    ValidateCode code = (ValidateCode) session.getAttribute("code");
    if (username == null || username.trim().length() == 0) {
        response.getWriter().println("用户名不能为空");
        return;
    }
    if (password == null || password.trim().length() == 0) {
        response.getWriter().println("密码不能为空");
        return;
    }
    if (vc == null || vc.trim().length() == 0) {
        response.getWriter().println("验证码不能为空");
        return;
    }
    UserService userService=new UserServicesImpl();
    User user = userService.checkUser(username, password);
    if (user != null) {
        session.setAttribute("user",user);
        Cookie cookie=new Cookie("userinfo",username+"#"+password);
        cookie.setPath("/");
        cookie.setMaxAge(60*60*24*7);
        response.addCookie(cookie);
        if (user.getAccess() == 1) {
            response.sendRedirect("/day14/admin.html");
        }else{
            response.sendRedirect("/day14/getall.html");
        }
    }else{
        response.sendRedirect("/day14/bad.html");
    }
}
=================================
过滤脏词

index.html
<form action="/day14/filters" method="post">
    用户名:<input type="text" name="username"><br>
    昵称:<input type="text" name="niname"><br>
    爱称:<input type="text" name="lovename"><br>
    <input type="submit" value="提交">
</form>

fServlet
@WebServlet(name = "fServlet",value = "/filters")

protected void doGet(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    response.setContentType("text/html;charset=utf8");
    String username = request.getParameter("username");
    String niname = request.getParameter("niname");
    String lovename = request.getParameter("lovename");
    System.out.println("提交的数据为");
    System.out.println(username+"\n"+niname+"\n"+lovename);
}

fFilter
@WebFilter(filterName = "fFilter",value = "/filters")
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) 
throws ServletException, IOException {
    HttpServletRequest request=(HttpServletRequest)req;
    chain.doFilter(new Drtity(request), resp);
}
static class Drtity extends HttpServletRequestWrapper {
    List<String> list=new ArrayList<String>();
    public Drtity(ServletRequest request) {
        super((HttpServletRequest) request);
        list.add("王八蛋");
        list.add("admin");
        list.add("sb");
    }
    @Override
    public String getParameter(String name) {
        String value = super.getParameter(name);
        for (String s : list) {
            if(value.equals(s)){
                value="***";
            }
        }
        return value;
    }
}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注