Java 嗯?就像facebook一样,不需要再次登录?或者还有另一个最好的选择?在我看来,这是最简单的方法。但你们也可以考虑写一个自己的PhaseListenerI我有一个新问题,当关闭浏览器并再次打开它时,我得到的登录页面不受欢迎 @ManagedBean @S

Java 嗯?就像facebook一样,不需要再次登录?或者还有另一个最好的选择?在我看来,这是最简单的方法。但你们也可以考虑写一个自己的PhaseListenerI我有一个新问题,当关闭浏览器并再次打开它时,我得到的登录页面不受欢迎 @ManagedBean @S,java,html,jsf,jsf-2,Java,Html,Jsf,Jsf 2,嗯?就像facebook一样,不需要再次登录?或者还有另一个最好的选择?在我看来,这是最简单的方法。但你们也可以考虑写一个自己的PhaseListenerI我有一个新问题,当关闭浏览器并再次打开它时,我得到的登录页面不受欢迎 @ManagedBean @SessionScoped public class LoginBean implements Serializable { private static final long serialVersionUID = 77658768117407


嗯?就像facebook一样,不需要再次登录?或者还有另一个最好的选择?在我看来,这是最简单的方法。但你们也可以考虑写一个自己的PhaseListenerI我有一个新问题,当关闭浏览器并再次打开它时,我得到的登录页面不受欢迎
@ManagedBean
@SessionScoped
public class LoginBean implements Serializable {

private static final long serialVersionUID = 7765876811740798583L;

private String username;
private String password;
private boolean loggedIn;
String remember1 = "hi";

@ManagedProperty(value = "#{navigationBean}")
private NavigationBean navigationBean;

/**
 * Login operation.
 * 
 * @return
 */

public LoginBean() {
    checkCookie();
}

@PostConstruct
public String init() {
    if (loggedIn == true) {

        return navigationBean.redirectToWelcome();
    } else {

        return navigationBean.redirectToWelcome();
    }
}

public String doLogin() {
    try {
        Dbconnection NewConnect = new Dbconnection();
        Connection con = NewConnect.MakeConnect();
        Statement stmt = con.createStatement();
        ResultSet rs = stmt
                .executeQuery("select school_username , school_pass from schools where school_username ='"
                        + username
                        + "'"
                        + "and school_pass = '"
                        + password
                        + "'");

        while (rs.next()) {

            String dbUsername = rs.getString(1);
            String dbPassword = rs.getString(2);
            if (dbUsername.equals(username) && dbPassword.equals(password)) {

                loggedIn = true;
                // Save the userid and password in a cookie
                Cookie btuser = new Cookie("btuser", username);
                Cookie btpasswd = new Cookie("btpasswd", password);
                if (loggedIn == false) {
                    remember1 = "false";
                } else {
                    remember1 = "true";
                }
                Cookie btremember = new Cookie("btremember", remember1);
                btuser.setMaxAge(3600);
                btpasswd.setMaxAge(3600);
                FacesContext facesContext = FacesContext
                        .getCurrentInstance();
                ((HttpServletResponse) facesContext.getExternalContext()
                        .getResponse()).addCookie(btuser);
                ((HttpServletResponse) facesContext.getExternalContext()
                        .getResponse()).addCookie(btpasswd);
                ((HttpServletResponse) facesContext.getExternalContext()
                        .getResponse()).addCookie(btremember);

                return navigationBean.redirectToWelcome();
            }
        }
        rs.close();
        stmt.close();
        con.close();

    } catch (Exception ex) {

    }

    // Set login ERROR
    FacesMessage msg = new FacesMessage("خطأ!",
            "اسم المستخدم او كلمة المرور خاطئة");
    msg.setSeverity(FacesMessage.SEVERITY_ERROR);
    FacesContext.getCurrentInstance().addMessage(null, msg);

    // To to login page
    return navigationBean.toLogin();

}

public void checkCookie() {
    FacesContext facesContext = FacesContext.getCurrentInstance();
    String cookieName = null;
    Cookie cookie[] = ((HttpServletRequest) facesContext
            .getExternalContext().getRequest()).getCookies();
    if (cookie != null && cookie.length > 0) {
        for (int i = 0; i < cookie.length; i++) {
            cookieName = cookie[i].getName();
            if (cookieName.equals("btuser")) {
                username = cookie[i].getValue();
            } else if (cookieName.equals("btpasswd")) {
                password = cookie[i].getValue();
            } else if (cookieName.equals("btremember")) {
                remember1 = cookie[i].getValue();
                if (remember1.equals("false")) {
                    loggedIn = false;
                } else if (remember1.equals("true")) {
                    loggedIn = true;
                }
            }
        }
    } else
        System.out.println("Cannot find any cookie");
}

public String doLogout() {
    // Set the paremeter indicating that user is logged in to false
    loggedIn = false;

    // Set logout message
    FacesMessage msg = new FacesMessage("Logout succesxs!", "INFO MSG");
    msg.setSeverity(FacesMessage.SEVERITY_INFO);
    FacesContext.getCurrentInstance().addMessage(null, msg);

    return navigationBean.redirectToLogin();
}

// ------------------------------
// Getters & Setters

public String getUsername() {
    if (loggedIn == false) {
        username = "";
        return username;
    } else {
        return username;
    }
}

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

public String getPassword() {
    if (loggedIn == false) {
        password = "";
        return password;
    } else {
        return password;
    }
}

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

public boolean getLoggedIn() {
    return loggedIn;
}

public void setLoggedIn(boolean loggedIn) {
    this.loggedIn = loggedIn;
}

public void setNavigationBean(NavigationBean navigationBean) {
    this.navigationBean = navigationBean;
}
 <center>
    <h:form id="loginForm" onsubmit="return initialize();" style="margin: 0 auto" >

        <p:growl id="msg" showDetail="true" life="5000" />
        <p:panel header="تسجيل الدخول" style="width: 450px; text-align: center;" >

            <h:panelGrid id="loginPanel" columns="2">

                <h:outputText value="أسم المستخدم" />

                <p:inputText id="username" value="#{loginBean.username}" ></p:inputText>
  <f:metadata>
<f:event type="preRenderView" listener="#{loginBean.init}"/>
                <p:message for="username" ></p:message>

                <h:outputText value="كلمة المرور" />

                <p:password id="password" value="#{loginBean.password}"  feedback="false"></p:password>
                <p:spacer>

                </p:spacer>

                <p:message for="password"></p:message>

                <p:spacer></p:spacer>

                <p:commandButton action="#{loginBean.doLogin}" onclick="initialize" value="دخول" update="loginForm" ajax="true"></p:commandButton>

            </h:panelGrid>

        </p:panel>

    </h:form>

    <p:ajaxStatus style="width:64px;height:64px;position:fixed;right:5px;bottom:5px">  
<f:facet name="start">  
    <p:graphicImage value="/css/loading.gif" />  
</f:facet> 


<f:facet name="complete">  
    <h:outputText value="" />  
</f:facet>  
    <br />
    <br />
    <br />
<f:event type="preRenderView" listener="#{loginBean.alreadyLoggedIn}"/>
public void alreadyLoggedIn() throws IOException {
  if (loggedIn) {
    ExternalContext externalContext =
        FacesContext.getCurrentInstance().getExternalContext();
    externalContext.redirect(externalContext.getRequestContextPath()
        + "/welcome.xhtml");
  }
}