Struts Login Example
Struts 1.3 Java Eclipse MySql Apache Tomcat
Project Screenshot:
Project Explorer:
Source code:
struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<!-- Form Beans -->
<form-beans>
<form-bean name="loginForm" type="com.loginexample.forms.LoginForm"/>
</form-beans>
<!-- Action Mappings -->
<action-mappings>
<action name="loginForm" path="/Login" type="com.loginexample.actions.LoginAction" scope="request" input="/Login.jsp">
<forward name="failure" path="/Failure.jsp" redirect="true"/>
<forward name="success" path="/Success.jsp" redirect="true"/>
</action>
</action-mappings>
<!-- Message Source -->
<message-resources parameter="com.loginexample.resources.Application"/>
</struts-config>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>StrutsLoginFormExample</display-name>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>
/WEB-INF/struts-config.xml
</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
Login.jsp<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@taglib prefix="html" uri="http://struts.apache.org/tags-html"%>
<%@taglib prefix="logic" uri="http://struts.apache.org/tags-logic"%>
<%@taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title><bean:message key="loginform.label.title"/></title>
</head>
<body>
<center>
<h1><bean:message key="loginform.label.title"/></h1>
<html:form action="/Login" focus="username">
<table>
<tr><td>
<bean:message key="loginform.label.usernane"/>
</td>
<td>
<html:text property="username"/>
</td>
<td>
<logic:messagesPresent property="username">
<html:messages id="error" property="username">
<font color="red"><bean:write name="error"/></font>
</html:messages>
</logic:messagesPresent>
</td></tr>
<tr><td>
<bean:message key="loginform.label.password"/>
</td>
<td>
<html:password property="paswd"/>
</td>
<td>
<logic:messagesPresent property="paswd">
<html:messages id="error" property="paswd">
<font color="red"><bean:write name="error"/></font>
</html:messages>
</logic:messagesPresent>
</td></tr>
<tr><td></td>
<td align="left">
<html:submit value="Login"/>
<html:reset value="Cancel"/>
</td>
<td>
</td></tr>
</table>
</html:form>
</center>
</body>
</html>
Success.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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login Successful</title>
</head>
<body>
<h1>Login Successful</h1>
</body>
</html>
Failure.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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login Failure</title>
</head>
<body>
<h1 style="color: red;">Login Failure</h1>
</body>
</html>
LoginForm.java
package com.loginexample.forms;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
public class LoginForm extends ActionForm {
/**
* nn
*/
private static final long serialVersionUID = 1L;
private String username = null;
private String paswd = null;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getpaswd() {
return paswd;
}
public void setpaswd(String paswd) {
this.paswd = paswd;
}
@Override
public void reset(ActionMapping mapping, HttpServletRequest request) {
this.paswd = null;
}
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
if(username==null || username.length()==0 || username.trim().equals(""))
{
ActionMessage message = new ActionMessage("loginform.username.empty");
errors.add("username", message);
}
else if(!username.matches("^[a-zA-Z0-9 ]+$"))
{
errors.add("username", new ActionMessage("loginform.username.alphabets"));
}
else if(username.length()<3)
{
errors.add("username", new ActionMessage("loginform.username.length"));
}
if(paswd==null||paswd.length()==0||paswd.trim().equals(""))
{
errors.add("paswd", new ActionMessage("loginform.paswd"));
}
return errors;
}
}
LoginAction,java
package com.loginexample.actions;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.loginexample.forms.LoginForm;
import com.loginexample.services.LoginService;
public class LoginAction extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
LoginForm loginForm = (LoginForm)form;
LoginService loginService= new LoginService();
try
{
loginService.checkLogin(loginForm);
return mapping.findForward("success");
}
catch (Exception e)
{
return mapping.findForward("failure");
}
}
}
LoginService.java
package com.loginexample.services;
import java.sql.SQLException;
import com.loginexample.dao.impl.LoginDaoImplementation;
import com.loginexample.exceptions.InvalidUserException;
import com.loginexample.forms.LoginForm;
public class LoginService {
public boolean checkLogin(LoginForm loginForm) throws SQLException, InvalidUserException
{
LoginDaoImplementation loginDao= new LoginDaoImplementation();
if(!loginDao.checkLogin(loginForm))
throw new InvalidUserException("Incorrect Username/Password.");
else
return true;
}
}
LoginDao.java
package com.loginexample.dao;
import java.sql.SQLException;
import com.loginexample.forms.LoginForm;
public interface LoginDao
{
public boolean checkLogin(LoginForm loginForm) throws SQLException;
}
LoginDaoImplementation.java
package com.loginexample.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.loginexample.dao.LoginDao;
import com.loginexample.forms.LoginForm;
import com.loginexample.utilities.DBUtilities;
public class LoginDaoImplementation implements LoginDao
{
public boolean checkLogin(LoginForm loginForm) throws SQLException
{
Connection con=null;
boolean access=false;
try
{
con=DBUtilities.getConnection();
String query= "select * from login where username=? and password=?";
PreparedStatement stmt= con.prepareStatement(query);
stmt.setString(1, loginForm.getUsername());
stmt.setString(2, loginForm.getpaswd());
ResultSet rs= stmt.executeQuery();
if(rs.next())
{
access=true;
}
}
finally
{
DBUtilities.closeConnection(con);
}
return access;
}
}
DBUtilities.java
package com.loginexample.utilities;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class DBUtilities {
public static Connection getConnection()
{
Connection con = null;
try
{
Class.forName("com.mysql.jdbc.Driver");
con =DriverManager.getConnection("jdbc:mysql://localhost:3306/nn","root","");
}
catch (ClassNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return con;
}
public static void closeConnection(Connection con){
if(con!=null){
try{
con.close();
}catch(SQLException e){}
}
}
public static void closePreparedStatement(PreparedStatement ps){
if(ps!=null){
try{
ps.close();
}catch(SQLException e){}
}
}
}
InvalidUserException.java
package com.loginexample.exceptions;
public class InvalidUserException extends Exception
{
/**
*
*/
private static final long serialVersionUID = 1L;
public InvalidUserException(String arg0)
{
super(arg0);
}
}
Application.properties
loginform.label.title=Login Form loginform.label.usernane=Username : loginform.label.password=Password : loginform.username.empty=Please enter username loginform.username.alphabets=Please enter alphabets only loginform.username.length=Please enter username of length of at least 3 characters loginform.paswd=Please enter password
Download: StrutsLoginFormExample





