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