Drop Down

Saturday, September 21, 2019

Spring_MVC_1.1_Login (Using annotations)

-------LoginController

package com.amit.controllers;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class LoginController implements Controller
{
@Override
public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse res) throws Exception
{
String uname = req.getParameter("uname");
String upwd = req. getParameter("upwd");
ModelAndView mav = null;
if(uname.equals("amit") && upwd.equals("amit"))
{
mav = new ModelAndView("success");
}else {
mav = new ModelAndView("failure");
}


return mav;
}

}
==================================================================
---- LoginPageController


package com.amit.controllers;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class LoginPageController implements Controller
{

@Override
public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse res) throws Exception
{

return new ModelAndView("loginForm");
}

}


=====================================================================
-----ds-servlet.xml


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">
<bean name="/loginPage" class="com.amit.controllers.LoginPageController"/>
<bean name="/login"  class="com.amit.controllers.LoginController"/>
<bean name = "handlerMapping" class = "org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
    <bean name = "viewResolver" class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/"/>
     <property name="suffix" value = ".jsp"/>
        </bean>
</beans>        

===================================================================
------failure.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h2>Amit Software Solutions</h2>
<h3>User Login Page</h3>
<br><br>
<h1>Login Failure</h1>
</body>
</html>


=====================================================================
-------loginform.jsp


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<center>
<h2>Amit Software Solutions</h2>
<h3>User Login Page</h3>
<form method="post" action="login">
<table>
<tr>
<td>User Name</td>
<td><input type="text" name ="uname"/></td>
</tr>
<tr>
<td>User Password</td>
<td><input type="password" name ="upwd"/></td>
</tr>
<tr>
<td><input type="submit" value="Login"/></td>
</tr>
</table>

</form>
</center>
</body>
</html>

========================================================================

---------success.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h2>Amit Software Solutions</h2>
<h3>User Login Page</h3>
<br><br>
<h1>Login Success</h1>
</body>
</html>

========================================================================
-------- web.xml



<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>mvc1.3_Login_xml</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
<servlet-name>ds</servlet-name> 
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ds</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping> 
  
</web-app>



=======================================================================
-------index.jsp



<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<jsp:forward page="loginPage"/>
</body>
</html>

========================================================================




Spring_MVC_1.0 (Login using xml)

----LoginController

package com.amit.controllers;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class LoginController implements Controller
{
@Override
public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse res) throws Exception
{
String uname = req.getParameter("uname");
String upwd = req. getParameter("upwd");
ModelAndView mav = null;
if(uname.equals("amit") && upwd.equals("amit"))
{
mav = new ModelAndView("success");
}else {
mav = new ModelAndView("failure");
}


return mav;
}

}

=====================================================================
-----LoginPageController

package com.amit.controllers;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class LoginPageController implements Controller 
{

@Override
public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse res) throws Exception 
{
return new ModelAndView("loginForm");
}

}

======================================================================
-----ds-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">
<bean name="/loginPage" class="com.amit.controllers.LoginPageController"/>
<bean name="/login"  class="com.amit.controllers.LoginController"/>
<bean name = "handlerMapping" class = "org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
    <bean name = "viewResolver" class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/"/>
     <property name="suffix" value = ".jsp"/>
        </bean>
</beans>        

=======================================================================
-----web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>mvc1.3_Login_xml</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
<servlet-name>ds</servlet-name> 
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ds</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping> 
  
</web-app>

=======================================================================
--- index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<jsp:forward page="loginPage"/>
</body>
</html>
======================================================================
--failure.jsp


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h2>Amit Software Solutions</h2>
<h3>User Login Page</h3>
<br><br>
<h1>Login Failure</h1>
</body>
</html>
=======================================================================
---loginform.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<center>
<h2>Amit Software Solutions</h2>
<h3>User Login Page</h3>
<form method="post" action="login">
<table>
<tr>
<td>User Name</td>
<td><input type="text" name ="uname"/></td>
</tr>
<tr>
<td>User Password</td>
<td><input type="password" name ="upwd"/></td>
</tr>
<tr>
<td><input type="submit" value="Login"/></td>
</tr>
</table>

</form>
</center>
</body>
</html>
======================================================================
-----success.jsp


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h2>Amit Software Solutions</h2>
<h3>User Login Page</h3>
<br><br>
<h1>Login Success</h1>
</body>
</html>
=======================================================================

Spring_App_20_Data_Validation

package com.amit.beans;

public class User
{
private String uname;
private String updw;
private String user;
private String umobile;
private String uemail;

public String getUname()
{
return uname;
}
public void setUname(String uname)
{
this.uname = uname;
}
public String getUpdw()
{
return updw;
}
public void setUpdw(String updw)
{
this.updw = updw;
}
public String getUser()
{
return user;
}
public void setUser(String user)
{
this.user = user;
}
public String getUmobile()
{
return umobile;
}
public void setUmobile(String umobile)
{
this.umobile = umobile;
}
public String getUemail()
{
return uemail;
}
public void setUemail(String uemail)
{
this.uemail = uemail;
}

public void getUserDetails()
{
System.out.println("--------------USer Details------------");
System.out.println("User Name: "+uname);
System.out.println("User password: "+updw);
System.out.println("User UserName: "+user);
System.out.println("User Mobile: "+umobile);
System.out.println("User Email: "+uemail);

}

}

======================================================================
package com.amit.test;

import java.util.HashMap;
import java.util.List;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.validation.MapBindingResult;
import org.springframework.validation.ObjectError;

import com.amit.beans.User;
import com.amit.validators.UserValidator;

public class Test {

public static void main(String[] args) 
{
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
User user = (User) context.getBean("userbean");
user.getUserDetails();
 
UserValidator userValidator = (UserValidator) context.getBean("userValidatorBean");
HashMap<String,String> map = new HashMap<String,String>();
MapBindingResult results = new MapBindingResult(map,"com.amit.beans.User");
userValidator.validate(user, results);
List<ObjectError> list = results.getAllErrors();
for(ObjectError err : list)
{
System.out.println(err.getDefaultMessage());
}

}

=====================================================================

package com.amit.validators;

import java.io.IOException;
import java.util.Properties;

import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;

import com.amit.beans.User;

public class UserValidator implements Validator 
{
private Resource resource;  // to make available property file resorce here
public Resource getResource() {
return resource;
}

public void setResource(Resource resource) {
this.resource = resource;
}
@Override
public boolean supports(Class type) 
{
return User.class.equals(type);
}

@Override
public void validate(Object obj, Errors error) 
{
User user = (User)obj;
try 
{
Properties p = (Properties) PropertiesLoaderUtils.loadProperties(resource);
if(user.getUname() == null || user.getUname().equals(""))
{
  error.rejectValue("uname", "error.uname.required" , p.getProperty("error.uname.required"));
}
catch (IOException e) 
{
e.printStackTrace();
}

}

}

======================================================================
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">
        
        <bean id= "userbean"  class = "com.amit.beans.User">
        <property name = "uname" value = ""></property>
        <property name = "updw" value = "pass@123"></property>
        <property name = "user" value = "manjhi"></property>
        <property name = "umobile" value = "8744973456"></property>
        <property name = "uemail" value = "amit@gmail.com"></property>
        </bean>
        
        <bean id="userValidatorBean" class = "com.amit.validators.UserValidator">
        <property name="resource" value="Messages.properties"></property>
        </bean>
        
</beans>        
================================Messages.properties========================

error.uname.required = UserName is Required

Spring_App_19_BankApp_AutoDiscovery_Service_2

package com.amit.Dao;

public interface AccountDao
{
public String create(String accNo, String accName, String accType, int balance);
public String search(String accNo);
public String update(String accNo, String accName, String accType, int balance);
public String delete(String accNo);

}

=====================================================================
package com.amit.Dao;

import java.sql.Connection;
import java.sql.PreparedStatement;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import oracle.jdbc.pool.OracleDataSource;

@Repository("dao")    //-->to making it autodiscover     //you can also use @component("dao") 
public class AccountDaoImpl implements AccountDao 
{
@Autowired   //-------> this will inject datasource object into AccountDao (setter/getters not required)
private OracleDataSource datasource;
String status = "";
@Override
public String create(String accNo, String accName, String accType, int balance) 
{
  try 
  {
  Connection con = datasource.getConnection();
  PreparedStatement pst = con.prepareStatement("insert into account values (?,?,?,?)");
 
  pst.setString(1, accNo);
  pst.setString(2, accName);
  pst.setString(3, accType);
  pst.setInt(4, balance);
  pst.executeUpdate();
  status= "success";
  }
  catch(Exception e)
  {
  status = "failure";
  e.printStackTrace();
  }
return status;
}

@Override
public String search(String accNo) {
return null;
}

@Override
public String update(String accNo, String accName, String accType, int balance) {
return null;
}

@Override
public String delete(String accNo) {
return null;
}
public void showDetails()
{
}

}

==================================================================
package com.amit.service;

public interface AccountService 
{
public String createAccount(String accNo, String accName, String accType, int balance);
public String searchAccount(String accNo);
public String updateAccount(String accNo, String accName, String accType, int balance);
public String deleteAccount(String accNo);
}

==================================================================
package com.amit.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.amit.Dao.AccountDao;
@Service("accService")
public class AccountServiceImpl implements AccountService 
{
@Autowired(required=true)
    private AccountDao dao;
@Override
public String createAccount(String accNo, String accName, String accType, int balance) 
{
return dao.create(accNo, accName, accType, balance);
}

@Override
public String searchAccount(String accNo) 
{


return null;
}

@Override
public String updateAccount(String accNo, String accName, String accType, int balance) 
{


return null;
}

@Override
public String deleteAccount(String accNo) 
{


return null;
}

}
====================================================================
package com.amit.Test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.amit.Dao.AccountDaoImpl;
import com.amit.service.AccountService;

public class Test 
{

public static void main(String[] args) 
{
ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml");
AccountService accserv = (AccountService)context.getBean("accService");
String status = accserv.createAccount("abc123", "Amit", "Saving", 20000);
if(status.equalsIgnoreCase("success"))
{
System.out.println("Account created successfully");
}
else 
{
System.out.println("Oops! something went wrong");
}
 
}

}

=======================================================================
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">

<context:component-scan base-package="com.amit.service"/>
    <context:component-scan base-package="com.amit.Dao"/> <!-- Aee, IOC go to this package and scan it for (component,repository,service,controller) & no need to check for bean config-->
    
    <bean id="datasource" class="oracle.jdbc.pool.OracleDataSource">  <!--Driver class Name is not required as it will take automatically -->
    <property name="URL" value = "jdbc:oracle:thin:@localhost:1521:orcl"></property>
    <property name="user" value = "scott"></property>
    <property name="Password" value = "tiger"></property>
    </bean>
    
    <!-- <bean id="dao" class ="com.amit.Dao.AccountDaoImpl"> </bean>  -->
    <!-- Not required when we are using Auto-Discovery/streotype ..As ID (dao) is mentioned in AccontDAOImpl @Repository("dao") -->
</beans>

Java 8 Notes Pics