The login in a struts page needs a proper interceptor to handle all possible cases of login... Have tried to make one that works :)
package com.interceptor;
import java.util.List;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang.xwork.StringUtils;
import org.apache.struts2.StrutsStatics;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import com.user.User_Info;
public class LoginInterceptor extends AbstractInterceptor implements StrutsStatics
{
private static final long serialVersionUID = 1L;
HttpSession session;
HttpServletRequest request;
HttpServletResponse response;
String t;
@Override
public String intercept(ActionInvocation actin) throws Exception
{
//System.out.println("call interceptor");
ActionContext ctx=actin.getInvocationContext();
request=(HttpServletRequest)ctx.get(HTTP_REQUEST) ;
response=(HttpServletResponse) ctx.get(HTTP_RESPONSE);
session = request.getSession (true);
Object user = session.getAttribute ("user");
if (user == null)
{
//System.out.println("inside near user=null");
String trylog = request.getParameter("user");
if (! StringUtils.isBlank (trylog) )
{
//System.out.println("try");
String usern=request.getParameter("user").toString();
String pass=request.getParameter("pass").toString();
SessionFactory sf=new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
Session ses= sf.openSession();
//System.out.println("enter id");
User_Info u=new User_Info();
try
{
List l = ses.createQuery("select password from com.user.User_Info e where e.user_id="+"'"+usern+"'").list();
for(Object o:l)
{
t=(String) o;
}
}
catch (HibernateException e)
{
e.printStackTrace();
}
if(pass.equals(t.toString()))
{
//System.out.println("ho gaya");
session.setAttribute("user", usern);
//request.setAttribute("page", "dummy.jsp");//Following line of code is for a concern of a project for using a master page to include other pages by calling the page required to be included from session
return "success";
}
/*else
{
System.out.println("cookie");
Cookie c[]=request.getCookies();
if(c==null)
{
int counter = 1;
Cookie cnt = new Cookie("count",new Integer(counter).toString());
cnt.setMaxAge(65000);
System.out.println(cnt);
response.addCookie(cnt);
}
else
{
for(int i=0;i<c.length;i++)
{
if(c[i].getName().equals("count"))
{
int count = Integer.parseInt(c[i].getValue());
if(count<3)
{
count++;
//System.out.println("now="+count);
c[i].setValue(new Integer(count).toString());
response.addCookie(c[i]);
return "login";
}
else
{
count++;
c[i].setValue(new Integer(count).toString());
response.addCookie(c[i]);
return "change";
}
}
}
}
ses.close();
System.out.println(u);
}*/
return "login";
}
else
{
Object action = actin.getAction ();
if (action instanceof com.opensymphony.xwork2.ValidationAware)
{
((com.opensymphony.xwork2.ValidationAware) action).addActionError ("Username / password / code incorrect!");
}
}
return "login";
}
else
{
return actin.invoke();
}
}
}

* In this program we are trying to applying the one-to-many relationship in
* both the ways.
* Concept:
* Trinaers can take multiple technologies
* A technology can be taken by multiple Trainers
*
* Through this application you can check how the logic works for one-to-many
* in both ways but its not suitable for actual implementation because this
* application creats two tables only - TRAINER and TECHNOLOGY.
*
* After running this application you will found that there is problem with
* inserting of new record next time.
* To resolve this problem you can convert this application to many-to-many.
*
*/
package ajo.hib;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;
import org.hibernate.*;
import org.hibernate.cfg.Configuration;
public class DataEntry {
public static void main(String[] args)throws IOException {
int i;
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("2.insert 3.delete 1.update\n Enter your choice: ");
i=Integer.parseInt(br.readLine());
Employee e= new Employee(); e.setEmpId("E102");
EmployeeDAO ed= new EmployeeDAO();
switch(i)
{
case 1:
//for update
ed.update(e);
break;
case 2:
// for insert operation
//Employee e = new Employee();
e.setEmpId("E102");
e.setEmpName("Mahesh");
//EmployeeDAO ed = new EmployeeDAO();
ed.insert(e);
break;
case 3:
//for delete
e.setEmpId("E102");
EmployeeDAO eDAO= new EmployeeDAO();
eDAO.delete(e);
break;
default:
System.out.println("Invalid");
break;
}
}
}
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class EmployeeDAO implements IEmployeeDAO {
public void insert(Employee e)
{
SessionFactory sf=new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
Session ses= sf.openSession();
Transaction tr= ses.beginTransaction();
ses.save(e);
//e.setEmpName("rajeev"); // update statement gets fired for this
tr.commit();
}
public void update(Employee e)
{
SessionFactory sf=new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
Session ses= sf.openSession();
Transaction tr= ses.beginTransaction();
e=(Employee) ses.load("ajo.hib.Employee", e.getEmpId());
e.setEmpName("Ajo");
System.out.println(e);
ses.save(e);
//ses.refresh(e);
tr.commit();
System.out.println(e);
}
public void delete(Employee e)
{
SessionFactory sf=new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
Session ses= sf.openSession();
Transaction tr= ses.beginTransaction();
e=(Employee) ses.load("ajo.hib.Employee", e.getEmpId());
System.out.println(e);
ses.delete(e);
tr.commit();
System.out.println(e);
}
}
public interface IEmployeeDAO {
public void update(Employee e);
public void insert(Employee e);
public void delete(Employee e);
}
public class Employee
{
String empName;
String empId;
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
public String getEmpId() {
return empId;
}
public void setEmpId(String empId) {
this.empId = empId;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return " Employee ID : "+empId + " Name : "+empName;
}
}
<!DOCTYPE hibernate-mapping PUBLIC "-//hibernate/hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="ajo.hib.Employee" table="empl">
<id name="empId" column="EMPLOYEE_ID">
<generator class="assigned"/>
</id>
<property name="empName"/>
</class>
</hibernate-mapping>
<!DOCTYPE hibernate-configuration PUBLIC "-//hibernate/hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">admin1234</property>
<property name="hibernate.connection.pool_size">1</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<mapping resource="employee.hbm.xml"/>
</session-factory>
</hibernate-configuration>