Login page using Struts 2, hibernate, mysql, java

Tabel: login
   columns { loginid  INT  primarykey AUTO INCREMENT,user_id varchar,password carchar }
Table: registration
   columns {idreg INT primarykey AUTO INCREMENT,name varchar,loginid INT reference login table loginid,phone varchar,email varchar}

HibernateUtil.java

package myartgallery;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
@SuppressWarnings("deprecation")
public class HibernateUtil {
    private static final SessionFactory sessionFactory = buildSessionFactory();
    private static SessionFactory buildSessionFactory() {
        try {
            // Create the SessionFactory from hibernate.cfg.xml
            return new AnnotationConfiguration().configure()
                    .buildSessionFactory();
        } catch (Throwable ex) {
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }
    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}

---------------------------------------------------------------------------------------------------

Login.java

package myartgallery;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;

import javax.persistence.Table;
import javax.persistence.Id;

@SuppressWarnings("serial")
@Entity
@Table(name = "login")
public class Login implements Serializable {

@Id
@GeneratedValue
@Column(name="loginid")
private long loginid;
@Column(name = "user_id")
private String user_id;
@Column(name = "password")
private String password;


/**
* @return the loginid
*/
public long getLoginid() {
return loginid;
}

/**
* @param loginid the loginid to set
*/
public void setLoginid(long loginid) {
this.loginid = loginid;
}

public String getUser_id() {
return user_id;
}

public void setUser_id(String user_id) {
this.user_id = user_id;
}

public String getPassword() {
return password;
}

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

}

----------------------------------------------------------------------------------------------------------

LoginAction.java

package myartgallery;

import java.util.List;

import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class LoginAction extends ActionSupport {

private List<Login> loginList;
private String sid;
private String spwd;
public List<Login> getLoginList() {
return loginList;
}

public void setLoginList(List<Login> loginList) {
this.loginList = loginList;
}

public String getSid() {
return sid;
}

public void setSid(String sid) {
this.sid = sid;
}

public String getSpwd() {
return spwd;
}

public void setSpwd(String spwd) {
this.spwd = spwd;
}

public String execute() {

return SUCCESS;
}

public String login() {
LoginManager loginManager = new LoginManager();

try {

loginList = loginManager.list(sid, spwd);

System.out.println("execute called");
System.out.println(loginList);

for (Login login : loginList) {
if((login.getPassword()).equals(spwd) && (login.getUser_id().equals(sid)));
return  "success";
}

} catch (Exception e) {
System.out.println(e.getMessage());
return "error";
}
return "error";
}

}

---------------------------------------------------------------------------------------------------------

LoginManager.java

package myartgallery;


import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
public class LoginManager extends HibernateUtil{
 @SuppressWarnings("unchecked")
 public List<Login> list(String sid,String spwd) {
      
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
      
  List<Login> contacts  = null;
    try {
         String hql = "FROM Login R WHERE R.user_id = :sid AND R.password = :spwd";
         Query query = session.createQuery(hql);
         query.setParameter("sid",sid);
         query.setParameter("spwd",spwd);
         contacts = query.list();
         
     /*contacts = (List<Emp>)session.createQuery("from Emp e where e.id=:searchid").setParameter("searchid",searchid).list();*/ 


         session.getTransaction().commit();
         
          return contacts;
         }
    catch (HibernateException e) {
            e.printStackTrace();
            session.getTransaction().rollback();
         }
    session.getTransaction().commit();
    return contacts;
      
    }

}

-----------------------------------------------------------------------------------------------------

Registration.java

package myartgallery;

import java.io.Serializable;


import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Id;
@SuppressWarnings("serial")
@Entity
@Table(name="Registration")
public class Registration implements Serializable{
  @Id
@GeneratedValue
@Column(name="idreg")
private long idreg;
 @Column(name="name") 
private String name;
@Column(name="phone")
private String phone;
@Column(name="email")
private String email;
@OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name="loginid")
private Login login;

public long getIdreg() {
return idreg;
}
public void setIdreg(long idreg) {
this.idreg = idreg;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public Login getLogin() {
return login;
}

public void setLogin(Login login) {
this.login = login;
}

public Registration(){}
public Registration(String name, String password, String email,String phone, Login login)
{
this.name=name;
this.email=email;
this.phone=phone;
this.login=login;
}
 
 

}


-----------------------------------------------------------------------------------------------------------

RegistrationAction.java

package myartgallery;

import com.opensymphony.xwork2.ActionSupport;

public class RegistrationAction extends ActionSupport {

 /**
  *
  */
 private static final long serialVersionUID = -4968983731735129524L;
 /**
  *
  */

 private RegManager regManager;
 private Registration reg;
 private Login log;
public Login getLog() {
return log;
}
public void setLog(Login log) {
this.log = log;
}
public RegManager getRegManager() {
return regManager;
}
public void setRegManager(RegManager regManager) {
this.regManager = regManager;
}
public Registration getReg() {
return reg;
}
public void setReg(Registration reg) {
this.reg = reg;
}
public RegistrationAction()
{
 regManager = new RegManager();
}
 public String execute() {

  try {
   System.out.println(getReg());
  
   regManager.updateReg(getReg());
   System.out.println("SUCCESS");
  } catch (Exception e) {
   System.out.println("Exception occured. "+e.getMessage());
   e.printStackTrace();
  }

  return SUCCESS;
 }
}

-----------------------------------------------------------------------------------------------------------------

RegManager.java

package myartgallery;


import org.hibernate.Session;

public class RegManager extends HibernateUtil {

 public Registration updateReg(Registration reg) {

  Session session = HibernateUtil.getSessionFactory().getCurrentSession();
  session.beginTransaction();

  session.save(reg);
  session.getTransaction().commit();
  return reg;

 }

}

----------------------------------------------------------------------------------------------------------------------

welcome.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Registration</title>

</head>
<body>
<h2>Registration</h2>
<s:form action="form1" method="post">
<s:textfield name="reg.name" label="User Name"></s:textfield>
<s:textfield name="reg.login.user_id" label="user id"></s:textfield>
<s:textfield name="reg.login.password" label="Password"></s:textfield>
<s:textfield name="reg.phone" label="Phone"></s:textfield>
<s:textfield name="reg.email" label="Email"></s:textfield>
<s:submit value="Register" align="center" />
</s:form>



</body>
</html> 

------------------------------------------------------------------------------------------------------------------------
LoginPage.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>HIBERNATE example</title>

</head>
<body>
<s:form action="form2" method="post">
<s:textfield name="sid" label="User Name"></s:textfield>
<s:textfield name="spwd" label="Password"></s:textfield>
 <s:submit value="login" align="center" />
 </s:form>
</body>

</html>

------------------------------------------------------------------------------------------------------------------

hibernate.cfg.xml

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="connection.driver_class">
            com.mysql.jdbc.Driver
        </property>
        <property name="connection.url">
            jdbc:mysql://localhost:3306/myartgallery
        </property>
        <property name="connection.username">root</property>
        <property name="connection.password">root</property>
        <property name="connection.pool_size">10</property>
        <property name="dialect">
            org.hibernate.dialect.MySQLDialect
        </property>
        <property name="current_session_context_class">thread</property>
        <property name="cache.provider_class">
            org.hibernate.cache.NoCacheProvider
        </property>
        <property name="show_sql">true</property>
        <property name="hbm2ddl.auto">update</property>

        <mapping class="myartgallery.Registration" />
        <mapping class="myartgallery.Login" />
    </session-factory>
</hibernate-configuration>

--------------------------------------------------------------------------------------------------------------

struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
   
    <package name="myartgallery" extends="struts-default" >
         <action name="form1"
            class="myartgallery.RegistrationAction" method="execute">
            <result name="success">first.jsp</result>
          </action>
       
       <action name="form2"
            class="myartgallery.LoginAction" method="login">
            <result name="success">success.jsp</result>
       </action>
    </package>
</struts>
-----------------------------------------------------------------------------------------------------------------


No comments:

Post a Comment