【Java】IDEA开发Web项目-简单登录校验


🎈前言🎈

✨欢迎点赞👍收藏🌟留言、评论、私信必回哦✨
✨文章中涉及到的代码均已上传至GitHub

一、创建实体类(User)

案例代码如下
User.java

/**
 * 使用当前类实例表示一个注册用户
 */
//Serializable签名接口序列化
public class User implements Serializable {
    private String username;
    private String password;
    private String nickname;
    private int age;

    public User(){}

    public User(String username, String password, String nickname, int age) {
        this.username = username;
        this.password = password;
        this.nickname = nickname;
        this.age = age;
    }

    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 getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public int getAge() {
        return age;
    }

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

    @Override
    public String toString() {
        return "User{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", nickname='" + nickname + '\'' +
                ", age=" + age +
                '}';
    }
}

二、创建控制类(UserController)

案例代码如下
UserController.java

@Controller
public class UserController {


    @RequestMapping(value = "/logUser", method = RequestMethod.GET)
    public void check(HttpServletRequest request, HttpServletResponse response) throws IOException, ClassNotFoundException {
        String username = request.getParameter("username");//获取前台传入的数据(username)    根据标签name获取
        String password = request.getParameter("pwd");//获取前台传入的数据(password)         根据标签name获取
        if (username.length()<=0) {
            //用户名为空
            System.out.println("username is null!!");
        } else {
            File dir = new File("./users");

            FileFilter filter = new FileFilter() {
                @Override
                public boolean accept(File file) {
                    String name = file.getName();
                    return name.contains(username + ".obj");
                }
            };
            File[] lists = dir.listFiles(filter);
            //将过滤出符合条件的用户名存入数组
//            for (File list : lists) {
//                System.out.println(list);
//            }
            //根据数组长度是否大于0判断用户是否存在       这里面数组长度只存在两种可能0或1
            if (lists.length > 0) {
                //将obj对象反序列化存入user中
                FileInputStream fis = new FileInputStream(lists[0]);
                ObjectInputStream ois = new ObjectInputStream(fis);
                User user = (User) ois.readObject();
                ois.close();
                System.out.println(user);
                if (user.getPassword().equals(password)) {
//                    response.setStatus(200);
//                    System.out.println(response.getStatus());
                    response.sendRedirect("/reg_success.html");     //重定向到登录成功页面
                } else {
                    //密码错误
                    System.out.println("Password error!");
                }
            } else {
                //用户不存在
                System.out.println("User not exist!");

            }

        }
    }

}


三、程序运行效果

运行效果

四、难点

  1. 前台数据处理
request.getParameter //获取HTML标签name属性的值
  1. form表单提交方式需要和后台响应方式相同
@RequestMapping(value = "/logUser", method = RequestMethod.GET)
  1. 用户输入是否合法
    本文使用.obj实例化对象代替数据库,第一步应先进行判空操作
if (username.length()<=0

在判空后进行用户名校验以及密码校验并利用重定向跳转到登录成功页面

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我喜欢安静

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值