Friday, 29 April 2011

Struts Class 7

Application 2:


<!--Login.jsp-->



<%@taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<html>
<body>
<html:form action="login.stech">
UserName:<html:text property="uname"/><br/>
PassWord:<html:password property="pass"/><br/>
<html:submit value="login"/>
</html:form>
</body>
</html>




^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^




<!--web.xml-->



<web-app>
<servlet>
<servlet-name>st2</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>st2</servlet-name>
<url-pattern>*.stech</url-pattern>
</servlet-mapping>
</web-app>


^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^




//LoginActionForm.java


package com.cg.struts.form;
import org.apache.struts.action.*;
public class LoginActionForm extends ActionForm
{
public void setUname(String uname){this.uname=uname;}
public String getUname(){return this.uname;}
public void setPass(String pass){this.pass=pass;}
public String getPass(){return this.pass;}
String uname,pass;
};

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



//Loginvo
package com.cg.struts.vo;
public class Loginvo
{
public void setUname(String uname){this.uname=uname;}
public String getUname(){return this.uname;}
public void setPass(String pass){this.pass=pass;}
public String getPass(){return this.pass;}
String uname,pass;


};
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~





//Integration Tier
//DBConstants.java


package com.cg.struts.dao;
public class DBConstants
{
public static final int Db_Type=DaoFactory.Oracle;
//similarly for other db's;


}




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



//DaoFactory.java


package com.cg.struts.dao;
public abstract class DaoFactory
{
public abstract LoginDaoInterface getLoginDao();
public static final int Oracle=1;
//similarly public static final int Sybase=2;
//public static final int MySql=3;
public static DaoFactory getDaoFactory(int whichDb)
{
switch(whichDb)
{
case Oracle: return new OracleDaoFactory();
//similarly for sybase and mysql
default: return null;
}
}
};


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~







//OracleDaoFactory.java


package com.cg.struts.dao;
import java.sql.*;
public class OracleDaoFactory extends DaoFactory
{
public static final String driver="oracle.jdbc.driver.OracleDriver";
public static final String url="jdbc:oracle:thin:@localhost:1521:XE";
public static Connection createConnection()
{
Connection con=null;
try{
Class.forName(driver);
con=DriverManager.getConnection(url,"system","tiger");
}catch(Exception e){e.printStackTrace();}
return con;
}
public LoginDaoInterface getLoginDao()
{
return new LoginDaoImpl();
}
};



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~




//LoginDaoInterface.java


package com.cg.struts.dao;
import com.cg.struts.vo.Loginvo;
public interface LoginDaoInterface
{
boolean validateUser(Loginvo vo);
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



//LoginDaoImpl.java


package com.cg.struts.dao;
import java.sql.*;
import com.cg.struts.vo.Loginvo;
public class LoginDaoImpl implements LoginDaoInterface
{
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
public boolean validateUser(Loginvo vo)
{
String query="select * from check_db where uname=? and pass=?";
boolean status=false;
try{
con=OracleDaoFactory.createConnection();
ps=con.prepareStatement(query);
ps.setString(1,vo.getUname());
ps.setString(2,vo.getPass());
rs=ps.executeQuery();
while(rs.next())
{
status=true;
}
}catch(Exception e){}
return status;
}
};




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//Loginbo.java





//Business Object
package com.cg.struts.bo;
import com.cg.struts.vo.*;
import com.cg.struts.dao.*;
public class Loginbo
{
public static boolean validateUser(Loginvo vo)
{
//get the DaoFactory
DaoFactory oracleFactory=DaoFactory.getDaoFactory(DBConstants.Db_Type);
LoginDaoInterface dao=oracleFactory.getLoginDao();
return dao.validateUser(vo);
}
};




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



//LoginAction.java


package com.cg.struts.action;
import org.apache.struts.action.*;
import javax.servlet.http.*;
import com.cg.struts.vo.*;
import com.cg.struts.bo.*;
import com.cg.struts.form.*;
public class LoginAction extends Action
{
public ActionForward execute(ActionMapping am,ActionForm af,HttpServletRequest req,HttpServletResponse res)throws Exception
{
//instantiate vo
Loginvo vo=new Loginvo();
//instantiate ActionForward
ActionForward forward=new ActionForward();
LoginActionForm lf=(LoginActionForm)af;
vo.setUname(lf.getUname());
vo.setPass(lf.getPass());
boolean status=Loginbo.validateUser(vo);
String forwardString="success";
if(!status)
{
forwardString="fail";
}
forward=am.findForward(forwardString);
return (forward);
}
};


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<!--struts-config.xml-->

<struts-config>
<form-beans>
<form-bean name="mybean" type="com.cg.struts.form.LoginActionForm"/>
</form-beans>
<action-mappings>
<action type="com.cg.struts.action.LoginAction" path="/login" name="mybean">
<forward name="success" path="/welcome.jsp"/>
<forward name="fail" path="/Login.jsp"/>
</action>
</action-mappings>
</struts-config>




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~








Directory Structure for above application is 




create table and insert values into database using following commands.




sql> Create table check_db (uname varchar2(20), pass varchar2(20));


sql> insert into check_db values('user1','pass1');
sql> commit;




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~





No comments:

Post a Comment