简体   繁体   English

Java 如何在不同的 Class 中使用 object?

[英]Java How to use an object in a different Class?

I have a people class.我有一个人class。 It has people job inside the class.它在 class 中有人员工作。

And I have filter class.我有过滤器 class。 In this class, I create an object.在这个 class 中,我创建了一个 object。 People people = new People();

And set their job, people.setjob="doctor";并设置他们的工作, people.setjob="doctor";

Now, how can I use this object in another class?现在,我如何在另一个 class 中使用这个 object? For example, in checkjob class I write people.getJob and nothing happens.例如,在 checkjob class 我写people.getJob并没有任何反应。

I draw my question for you to understand easily.我把我的问题画出来让你很容易理解。在此处输入图像描述

By the way, I'm doing this to get user role.顺便说一句,我这样做是为了获得用户角色。 I minimalized the question.我最小化了这个问题。

Here is the code:这是代码:

Login.Java登录.Java

if(dao.check(uname, pass)) {
        UserAccount user = new UserAccount();
        user.setUsername(uname);
        Filter2 loginbean = new Filter2();

        String userValidate = loginbean.authenticateUser(user);

        if(userValidate.equals("Admin_Role")) {
        HttpSession session = request.getSession();
        session.setAttribute("username", uname);
        user.setRole("Admin");
        response.sendRedirect("welcome.jsp");
    }
        else if (userValidate.equals("Editor_Role")) {
            HttpSession session = request.getSession();
            session.setAttribute("username", uname);
            user.setRole("Editör");
            response.sendRedirect("gorevler.jsp");
        }

UserAccount.Java UserAccount.Java

public class UserAccount {
private String username;
private String role;
public String getUsername() {
    return username;
}
public void setUsername(String username) {
    this.username = username;
}
public String getRole() {
    return role;
}
public void setRole(String role) {
    this.role = role;
}

Filter2.Java过滤器2.Java

public  String authenticateUser(UserAccount loginBean)
{
    String userName = loginBean.getUsername();

    Connection con = null;
    Statement statement = null;
    ResultSet resultSet = null;

    String userNameDB = "";
    String passwordDB = "";
    String roleDB = "";

    try
    {
        con= (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/covid","root","fbfbfb333*");

        statement = con.createStatement();
        resultSet = statement.executeQuery("select username,role from users");

        while(resultSet.next())
        {
            userNameDB = resultSet.getString("username");

            roleDB = resultSet.getString("role");

            if(userName.equals("emre")  && roleDB.equals("admin")) {
            return "Admin_Role";}
            else if(userName.equals(userNameDB)  && roleDB.equals("editor"))
            return "Editor_Role";
            else if(userName.equals(userNameDB)  && roleDB.equals("user"))
            return "User_Role";
        }
    }

Welcome.Java欢迎光临。Java

    <body>
<jsp:include page="menu.jsp"></jsp:include>  
<%
if(session.getAttribute("username")==null){
    response.sendRedirect("login.jsp");
}
UserAccount user = new UserAccount();
String rol = user.getRole();
pageContext.setAttribute("rol", rol);
%>

WELCOME ${username}
${rol }

You need to reinitialize it in the other class.您需要在其他 class 中重新初始化它。 And give it the same properties.并赋予它相同的属性。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM