Sunday, August 16, 2015

ONE POJO MULTIPLE TABLES

package com.slokam.hibernate.practice;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.SecondaryTable;
import javax.persistence.SecondaryTables;
import javax.persistence.Table;

@Entity
@Table(name="bank")
@SecondaryTables({@SecondaryTable(name="bankDetails"),@SecondaryTable(name="address")})
//@SecondaryTable(name="bankDetails")
public class BankPojo {
   
   
    private Integer id;
    private String bankName;
    private String branch;
   
    private Integer phoneNo;
    private String mailId;
    private String website;
   
    private String street;
    private String city;
    private String country;
   
   
    @Column(table="address")
    public String getStreet() {
        return street;
    }
    public void setStreet(String street) {
        this.street = street;
    }
   
    @Column(table="address")
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }
   
    @Column(table="address")
    public String getCountry() {
        return country;
    }
    public void setCountry(String country) {
        this.country = country;
    }
    @Id
    @GeneratedValue
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getBankName() {
        return bankName;
    }
    public void setBankName(String bankName) {
        this.bankName = bankName;
    }
    public String getBranch() {
        return branch;
    }
    public void setBranch(String branch) {
        this.branch = branch;
    }
   
    @Column(name="phoneNo",table="bankDetails")
    public Integer getPhoneNo() {
        return phoneNo;
    }
    public void setPhoneNo(Integer phoneNo) {
        this.phoneNo = phoneNo;
    }
   
    @Column(name="mailId",table="bankDetails")
    public String getMailId() {
        return mailId;
    }
    public void setMailId(String mailId) {
        this.mailId = mailId;
    }
   
    @Column(name="website",table="bankDetails")
    public String getWebsite() {
        return website;
    }
    public void setWebsite(String website) {
        this.website = website;
    }
   
   

}
TEST:
package com.slokam.hibernate.practice;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;
import org.hibernate.tool.hbm2ddl.SchemaExport;

public class Test {

   
    public static void main(String[] args) {
        Configuration configuration = new AnnotationConfiguration().configure();
        //new SchemaExport(configuration).create(true, true);
        SessionFactory sessionFactory = configuration.buildSessionFactory();
         Session session = sessionFactory.openSession();
         session.beginTransaction();
       
         BankPojo bankPojo = new BankPojo();
         //bankPojo.setId(1);
         bankPojo.setBankName("HDFC");
         bankPojo.setBranch("kphb");
       
         bankPojo.setMailId("hdfcbank@com");
         bankPojo.setPhoneNo(555555);
         bankPojo.setWebsite("hdfcbank.com");
       
         bankPojo.setStreet("kphb");
         bankPojo.setCountry("India");
         bankPojo.setCity("Hyderabad");
       
         session.save(bankPojo);
         session.beginTransaction().commit();
         session.close();
       
    }

}
HB.CFG.XML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "something" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name = "connection.driverclass">com.mysql.jdbc.Driver</property>
        <property name = "connection.url">jdbc:mysql://localhost:3306/test</property>
        <property name = "connection.username">root</property>
        <property name = "connection.password">RROT</property>
        <property name = "dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name= "show_sql">true</property>
        <property name="hbm2ddl.auto">update</property>
        <mapping class="com.slokam.hibernate.practice.BankPojo"/>
       
    </session-factory>
</hibernate-configuration>

MULTIPLE FILE DOWNLAOD

package com.slokam.spring.practice;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.OutputStream;

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

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class FilesDownload {
   
    @RequestMapping("forward")
    public ModelAndView forward(){
        File file = new File("E:\\download");
        String[] list = file.list();
        for(String s:list){
            System.out.println(s);
        }
        ModelAndView mav = new ModelAndView("filesdownload","fileList", list);
        return mav;
    }
   
    @RequestMapping("downloads")
    public void download(String fileName,HttpServletRequest request, HttpServletResponse response){
        String fileLocation = "E:\\download\\";
        FileInputStream fis = null;
        OutputStream oos = null;
       
        ServletContext context = request.getServletContext();
        String mimeType = context.getMimeType(fileLocation+fileName);
       
        response.setContentType(mimeType);
        response.setHeader("Content-Disposition", "attachment; filename="+fileName);
        try {
            fis = new FileInputStream(fileLocation+fileName);
            oos = response.getOutputStream();
            int readData = fis.read();
            while(readData!=-1){
                oos.write(readData);
                readData = fis.read();
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
JSP
FILE DOWNLOAD.JSP
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<!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>Insert title here</title>
</head>
<body>
    Click on the link to download the file <br>
    <ol>
    <c:forEach var="obj" items="${fileList}">
        <li><a href="downloads.form?fileName=${obj}">${obj}</a></li>
    </c:forEach>
    </ol>
</body>
</html>
SPRING SERVLET:
<?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"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
                        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
    ">
    <context:component-scan base-package="com.slokam.spring"/>
    <mvc:annotation-driven/>
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="WEB-INF/jsp/"/>
        <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://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_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>MultipleFilesDownload</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>*.form</url-pattern>
  </servlet-mapping>
</web-app>
INDEX.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>Insert title here</title>
</head>
<body>
    <jsp:forward page="forward.form"></jsp:forward>
</body>
</html>

MAIL PROGRAM OTP EXAMPLE



import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class OTPMail {

    public static void main(String ar[]){

        final String userName = "madhu.jse";
        final String password = "madhavi@1";

        Properties props = new Properties();
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.host",
                "smtp.gmail.com");
        props.put("mail.smtp.port", "587");
        props.put("mail.smtp.ssl.trust", "smtp.gmail.com");
        Session session = Session.getDefaultInstance(props, new Authenticator() {

            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(userName, password);
            }

        });
        Message message = new MimeMessage(session);
        try {
            message.setFrom(new InternetAddress("madhu.jse@gmail.com"));
            message.addRecipient(Message.RecipientType.TO, new InternetAddress("madhavigurram.java@gmail.com"));
            message.setSubject("OTP");
            message.setText("Hi this is from Madhu");
            Transport.send(message);
            System.out.println("Message send successfully");
        } catch (AddressException e) {
            e.printStackTrace();
        } catch (MessagingException e) {
            e.printStackTrace();
        }
       
    }

}

I18 EXAMPLE

package com.slokam.i18n.practice;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class I18NController {
   
    @RequestMapping("forward")
    public String forward(){
        return "home";
    }
}
SPRING FR_PROPORTIES:
form.label.name=nom
form.label.phone=Pas De Téléphone
form.label.passport=Numéro De Passeport
form.label.course=Nom du cours

SPRING TE_PROPORTIES:
form.label.name=\u0C2A\u0C47\u0C30\u0C41
form.label.phone=\u0C2B\u0C4B\u0C28\u0C4D \u0C38\u0C02\u0C16\u0C4D\u0C2F
form.label.passport=\u0C2A\u0C3E\u0C38\u0C4D\u0C2A\u0C4B\u0C30\u0C4D\u0C1F\u0C4D \u0C38\u0C02\u0C16\u0C4D\u0C2F
form.label.course=\u0C15\u0C4B\u0C30\u0C4D\u0C38\u0C41 \u0C2A\u0C47\u0C30\u0C41

SPRING PROPORTIES
form.label.name=Name
form.label.phone=Phone No
form.label.passport=Passport No
form.label.course=Course Name

WEBINF:
JSP:
HOME.JSP
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<!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>Insert title here</title>
</head>
<body>
    <a href="?lang=en">English</a>|<a href="?lang=fr">French</a>|<a href="?lang=te">Telugu</a>
    <form>
        <spring:message code="form.label.name"/><input type="text" name="name"/><br>
        <spring:message code="form.label.phone"/><input type="text" name="phone"/><br>
        <spring:message code="form.label.passport"/><input type="text" name="passport"/><br>
        <spring:message code="form.label.course"/><input type="text" name="course"/><br>
        <input type="submit" name="name"/><br>
    </form>
   
    <%-- <form>
        <input type="text" name="name"/><br>
        <input type="text" name="phone"/><br>
        <input type="text" name="passport"/><br>
        <input type="text" name="course"/><br>
        <input type="submit" name="name"/><br>
    </form> --%>
</body>
</html>

SPRING SERVLET EXAMPLE:
<?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"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
                        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
    ">
    <context:component-scan base-package="com.slokam.i18n"></context:component-scan>
    <mvc:annotation-driven/>
    <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basenames" value="classpath:springmvc"/>
    </bean>
   
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
    <mvc:interceptors>
    <bean  class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="lang"/>
    </bean>
    </mvc:interceptors>
    <bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
   
    </bean>
</beans>   
   
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_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>Internationalization</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
      <servlet-name>spring</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <load-on-startup>2</load-on-startup>
  </servlet>
  <servlet-mapping>
      <servlet-name>spring</servlet-name>
      <url-pattern>*.i18n</url-pattern>
  </servlet-mapping>
</web-app>

INDEX.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>Insert title here</title>
</head>
<body>
    <jsp:forward page="forward.i18n"></jsp:forward>
</body>
</html>

HIBERNATE PAGINATION

CONTROLLER:
CONTACT CONTROLLER:
package com.slokam.spring.controller;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.List;

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

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.slokam.spring.pojo.ContactPojo;
import com.slokam.spring.service.ContactService;

@Controller
public class ContactController {
    private static int maxResults = 4;
    @Autowired
    private ContactService contactService;

    public void setContactService(ContactService contactService) {
        this.contactService = contactService;
    }
   
    @RequestMapping("forward")
    public ModelAndView forward(){
       
        ModelAndView mav = new ModelAndView("home", "contact", new ContactPojo());
        return mav;
    }
   
    @RequestMapping("saveContact")
    public ModelAndView saveContact(ContactPojo contactPojo){
       
        contactService.saveContact(contactPojo);
        ModelAndView mav = new ModelAndView("home", "contact", new ContactPojo());
        return mav;
       
    }
   
    /*@RequestMapping("getAllContacts")
    public ModelAndView getAllContacts(HttpServletRequest request) {
        request.getSession().setAttribute("pageNo", 1);
        List<ContactPojo> list =  contactService.getAllContacts();
        List<ContactPojo> subList = list.subList(0, 4);
        request.setAttribute("contactList", subList);
        request.setAttribute("nextPage", true);
        request.setAttribute("previousPage", false);
        ModelAndView mav = new ModelAndView("home", "contact", new ContactPojo());
        return mav;
    }*/
   
    @RequestMapping("getNextContacts")
    public ModelAndView getNextContacts(HttpServletRequest request) {
        int pageNo = (Integer)request.getSession().getAttribute("pageNo");
        List<ContactPojo> list;
        /*list =  contactService.getAllContacts();
        int startPage = 0, endPage = 0;
        if(list!=null&&list.size()>0){
            pageNo++;
            endPage = pageNo*4;
            startPage = endPage-4;
            request.setAttribute("nextPage", true);
            request.setAttribute("previousPage", true);
        if(list.size()<=endPage){
            endPage = list.size();
            request.setAttribute("nextPage", false);
            request.setAttribute("previousPage", true);
        }
        subList = list.subList(startPage, endPage);
        request.setAttribute("contactList", subList);
        request.getSession().setAttribute("pageNo", pageNo);
       
        }
        */
        int totalRecords = (int)request.getSession().getAttribute("totalRecords");
        int i = 0, startPage = 1;
        pageNo++;
        while(i<pageNo){
            startPage = startPage*2;
            i++;
        }
       
        System.out.println("Page No: "+pageNo);
        System.out.println("Start Page:"+startPage);
        list =  contactService.getContacts(startPage,maxResults);
        System.out.println("Size: "+list.size());
        if(totalRecords%maxResults!=0)
            request.setAttribute("nextPage", false);
           
        else
            request.setAttribute("nextPage", true);
       
        request.setAttribute("previousPage", true);
        request.setAttribute("contactList", list);
        request.getSession().setAttribute("pageNo", pageNo);
       
        ModelAndView mav = new ModelAndView("home", "contact", new ContactPojo());
        return mav;
    }
   
    @RequestMapping("getPreviousContacts")
    public ModelAndView getPreviousContacts(HttpServletRequest request) {
        int pageNo = (Integer)request.getSession().getAttribute("pageNo");
        List<ContactPojo> list;
        /*int startPage = 0, endPage = 0;
        if(pageNo==1){
            request.setAttribute("previousPage", false);
        }else{
            list =  contactService.getAllContacts();
            contactService.getContacts(startPage, pageNo);
            if(list!=null&&list.size()>0){
                endPage = pageNo*4-4;
                startPage = endPage-4;
                pageNo--;
                request.setAttribute("previousPage", true);
                request.setAttribute("nextPage", true);
                if(startPage==0){
                request.setAttribute("previousPage", false);   
                request.setAttribute("pageEnd", false);
            }
            subList = list.subList(startPage, endPage);
            request.setAttribute("contactList", subList);
            request.getSession().setAttribute("pageNo", pageNo);
           
            }
        }*/
        int totalRecords = (int)request.getSession().getAttribute("totalRecords");
        if(pageNo==1){
            request.setAttribute("previousPage", false);
        }else{
            //list =  contactService.getContacts(startPage,maxResults);
        }
        int i = 0, startPage = 0;
        pageNo++;
        while(i<pageNo){
            startPage = startPage*2;
            i++;
        }
       
        System.out.println("Page No: "+pageNo);
        System.out.println("Start Page:"+startPage);
       
        ModelAndView mav = new ModelAndView("home", "contact", new ContactPojo());
        return mav;
    }
   
    @RequestMapping("viewContact")
    public ModelAndView viewContact(Integer contactId) {
        ContactPojo pojo = contactService.viewContact(contactId);
        ModelAndView mav = new ModelAndView("home","contact",pojo);
        return mav;
    }
   
    @RequestMapping("updateContact")
    public ModelAndView updateContact(ContactPojo contactPojo) {
        contactService.updateContact(contactPojo);
        ModelAndView mav = new ModelAndView("home", "contact", new ContactPojo());
        return mav;
    }
   
    @RequestMapping("deleteContact")
    public ModelAndView deleteContact(ContactPojo contactPojo) {
        contactService.deleteContact(contactPojo);
        ModelAndView mav = new ModelAndView("home", "contact", new ContactPojo());
        return mav;
    }
   
    @RequestMapping("download")
    public void fileDownload(HttpServletRequest request, HttpServletResponse response){
        FileInputStream fis = null;
        OutputStream fos = null;
        //String fileName = "abc.txt";
        response.setHeader("Content-Disposition", "attachment;filename=abc.txt");
        response.setContentType("text/plain");
        int read;
        try {
            fos = response.getOutputStream();
            //File file = new File();
            //fis = new FileInputStream("E:\\download\\Java7.pdf");
            fis = new FileInputStream("E:\\download\\abc.txt");
            read = fis.read();
            while(read!=-1){
                fos.write(read);
                read = fis.read();
               
            }
            fos.flush();
           
        } catch (IOException e) {
            e.printStackTrace();
        }
       
        finally{
            try {
                if(fos!=null){
                fos.close();
                }
                if(fis!=null){
                fis.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
           
        }
    }
   
    @RequestMapping("getContacts")
    public ModelAndView getContacts(HttpServletRequest request){
        int firstResult = 0;
        int totalRecords = (int)contactService.getTotalRecords();
        List<ContactPojo> list = contactService.getContacts(firstResult, maxResults);
        System.out.println("Size: "+list.size());
        System.out.println("Result"+(totalRecords>maxResults));
        if(totalRecords>maxResults){
            request.getSession().setAttribute("pageNo", 1);
           
            request.getSession().setAttribute("totalRecords", totalRecords);
            //request.setAttribute("contactList", list);
            request.setAttribute("nextPage", true);
            //request.setAttribute("previousPage", false);
        }else{
        request.setAttribute("nextPage", false);
        }
       
        request.setAttribute("previousPage", false);
        request.setAttribute("contactList", list);
        ModelAndView mav = new ModelAndView("home", "contact", new ContactPojo());
        return mav;
       
       
    }
}
LOGIN CONTROLLER:

package com.slokam.spring.controller;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.slokam.spring.pojo.ContactPojo;
import com.slokam.spring.pojo.LoginPojo;
import com.slokam.spring.service.LoginService;

@Controller
public class LoginController {
    @Autowired
    private LoginService loginService;

    public void setLoginService(LoginService loginService) {
        this.loginService = loginService;
    }
   
    @RequestMapping("loginhome")
    public String forward(){
        return "login";
    }
   
       
    @RequestMapping("login")
    public String  verifyLoginDetails(@ModelAttribute("contact") ContactPojo contactPojo, LoginPojo loginPojo, HttpSession session
            ){
        boolean result = loginService.verifyLoginDetails(loginPojo);
        String nextPage = "login";
        ModelAndView modelAndView = null;
       
        if(result){
            //request.setAttribute("company", new CompanyPojo());
            session.setAttribute("login", loginPojo);
            nextPage = "home";
            modelAndView = new ModelAndView(nextPage, "contact", new ContactPojo());
        }
        else{
            modelAndView = new ModelAndView(nextPage);
        }
        return nextPage;
}
}

CONTACT DAO:

package com.slokam.spring.dao;

import java.util.List;

import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Projection;
import org.hibernate.criterion.Projections;
import org.springframework.orm.hibernate3.HibernateTemplate;

import com.slokam.spring.idao.IContactDAO;
import com.slokam.spring.pojo.ContactPojo;
import com.slokam.spring.pojo.LoginPojo;

public class ContactDAO implements IContactDAO{

    private HibernateTemplate hibernateTemplate;
   
    public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
        this.hibernateTemplate = hibernateTemplate;
    }


    @Override
    public void saveContact(ContactPojo contactPojo) {
        hibernateTemplate.save(contactPojo);
    }


    @Override
    public List<ContactPojo> getAllContacts() {
       
        List<ContactPojo> list = hibernateTemplate.find("from ContactPojo");
        return list;
    }


    @Override
    public ContactPojo viewContact(Integer contactId) {
        ContactPojo contact = new ContactPojo();
        List<ContactPojo> list = hibernateTemplate.find("from ContactPojo where contactId=?",contactId);
        if(list!=null&&list.size()>0){
            contact = list.get(0);
        }
         return contact;
       
    }


    @Override
    public void updateContact(ContactPojo contactPojo) {
        hibernateTemplate.update(contactPojo);
       
    }


    @Override
    public void deleteContact(ContactPojo contactPojo) {
        hibernateTemplate.delete(contactPojo);
       
    }


    @Override
    public List<ContactPojo> getContacts(int firstResult, int maxResults) {

        //DetachedCriteria criteria = DetachedCriteria.forClass(ContactPojo.class);
        DetachedCriteria criteria = DetachedCriteria.forClass(LoginPojo.class);
        List<ContactPojo> list = hibernateTemplate.findByCriteria(criteria, firstResult, maxResults);
        return list;
    }


    @Override
    public Long getTotalRecords() {
         //List<Long> list = hibernateTemplate.find("select count(*) from ContactPojo");
        List<Long> list = hibernateTemplate.find("select count(*) from LoginPojo");
         Long totalRecords = 0l;
        if(list.size()>0){
             totalRecords = list.get(0);
             System.out.println("Total Records: "+totalRecords);
        }
        return totalRecords;
    }
   
   
   
}


LOGIN DAO:
package com.slokam.spring.dao;

import java.util.List;

import org.springframework.orm.hibernate3.HibernateTemplate;

import com.slokam.spring.idao.ILoginDAO;
import com.slokam.spring.pojo.LoginPojo;

public class LoginDAO implements ILoginDAO{
private HibernateTemplate hibernateTemplate;
   
    public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
        this.hibernateTemplate = hibernateTemplate;
    }

    @Override
    public boolean verifyUserDetails(LoginPojo loginPojo) {
        String query = "select count(*) from LoginPojo where username=? and password=?";
        List<Long> count = hibernateTemplate.find(query,loginPojo.getUsername(), loginPojo.getPassword());
        boolean result = false;
        if(count!=null && count.get(0)>0){
            result = true;
        }
        return result;
    }
}
SEARCH DAO:
package com.slokam.spring.dao;

import java.util.List;

import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.ProjectionList;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.springframework.orm.hibernate3.HibernateTemplate;

import com.slokam.spring.idao.ISearchDAO;
import com.slokam.spring.pojo.AdvPersonSearchPojo;
import com.slokam.spring.pojo.Person;

public class SearchDAO implements ISearchDAO{
   
    private HibernateTemplate hibernateTemplate;
   
    public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
        this.hibernateTemplate = hibernateTemplate;
    }

    @Override
    public List<Object[]> advPersonSearch(AdvPersonSearchPojo searchPojo) {
       
        DetachedCriteria criteria = DetachedCriteria.forClass(Person.class,"person");
        criteria.createAlias("person.passport", "ppt");
        criteria.createAlias("person.phone", "ph");
        criteria.createAlias("person.course", "c");
       
        ProjectionList list = Projections.projectionList();
        list.add(Projections.property("person.name"));
        list.add(Projections.property("ppt.ppNo"));
        list.add(Projections.property("ph.phoneNumber"));
        list.add(Projections.property("c.cname"));
       
        if(searchPojo.getPersonName()!=null && !searchPojo.getPersonName().equals("")){
            criteria.add(Restrictions.eq("person.name", searchPojo.getPersonName()));
        }
        if(searchPojo.getPassportNo()!=null && !searchPojo.getPassportNo().equals("")){
            criteria.add(Restrictions.like("ppt.ppNo", searchPojo.getPassportNo()));
        }
        if(searchPojo.getPhoneNo()!=null && !searchPojo.getPhoneNo().equals("")){
            criteria.add(Restrictions.like("ph.phoneNumber", searchPojo.getPhoneNo()));
        }
        if(searchPojo.getCourseName()!=null && !searchPojo.getCourseName().equals("")){
            criteria.add(Restrictions.like("c.cname", searchPojo.getCourseName()));
        }
       
        criteria.setProjection(list);
        List<Object[]> resultList = hibernateTemplate.findByCriteria(criteria);
        System.out.println(resultList.size());
        return resultList;
    }
   
}
ICONTACT DAO:
package com.slokam.spring.idao;

import java.util.List;

import com.slokam.spring.pojo.ContactPojo;

public interface IContactDAO {
    public void saveContact(ContactPojo contactPojo);
    public List<ContactPojo> getAllContacts();
    public ContactPojo viewContact(Integer contactId);
    public void updateContact(ContactPojo contactPojo);
    public void deleteContact(ContactPojo contactPojo);
    public List<ContactPojo> getContacts(int firstResult, int maxResults);
    public Long getTotalRecords();
}
ILOGIN DAO:
package com.slokam.spring.idao;

import com.slokam.spring.pojo.LoginPojo;

public interface ILoginDAO {
    public boolean verifyUserDetails(LoginPojo loginPojo);
}
ISEARCH DAO:
package com.slokam.spring.idao;

import java.util.List;

import com.slokam.spring.pojo.AdvPersonSearchPojo;

public interface ISearchDAO {
    public List<Object[]> advPersonSearch(AdvPersonSearchPojo searchPojo);
}
ADVPERSON SEARCH POJO:
package com.slokam.spring.pojo;

public class AdvPersonSearchPojo {
    private String personName;
    private Integer phoneNo;
    private Integer passportNo;
    private String courseName;
   
    public String getPersonName() {
        return personName;
    }
    public void setPersonName(String personName) {
        this.personName = personName;
    }
    public Integer getPhoneNo() {
        return phoneNo;
    }
    public void setPhoneNo(Integer phoneNo) {
        this.phoneNo = phoneNo;
    }
    public Integer getPassportNo() {
        return passportNo;
    }
    public void setPassportNo(Integer passportNo) {
        this.passportNo = passportNo;
    }
    public String getCourseName() {
        return courseName;
    }
    public void setCourseName(String courseName) {
        this.courseName = courseName;
    }
   
}
CONTACT POJO:
package com.slokam.spring.pojo;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="contacts")
public class ContactPojo {
    private Integer contactId;
    private String email;
    private Integer mobile;
    private String work;
    private Integer home;
   
    @Id
    @GeneratedValue
    @Column(name="contactId")
    public Integer getContactId() {
        return contactId;
    }
    public void setContactId(Integer contactId) {
        this.contactId = contactId;
    }
   
    @Column(name="email")
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
   
    @Column(name="mobile")
    public Integer getMobile() {
        return mobile;
    }
    public void setMobile(Integer mobile) {
        this.mobile = mobile;
    }
   
    @Column(name="work")
    public String getWork() {
        return work;
    }
    public void setWork(String work) {
        this.work = work;
    }
   
    @Column(name="home")
    public Integer getHome() {
        return home;
    }
    public void setHome(Integer home) {
        this.home = home;
    }
   
   
   
}
COURSE POJO:
package com.slokam.spring.pojo;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;

@Entity
@Table(name="course")
public class Course {
    private Integer id;
    private String cname;
    private String cduration;
    private String cfee;
    private List<Person> person;
   
    @ManyToMany
    @JoinTable(name="person_course",
                joinColumns={@JoinColumn(name="courseId")},
            inverseJoinColumns={@JoinColumn(name="personId")}
            )
   
    public List<Person> getPerson() {
        return person;
    }
    public void setPerson(List<Person> person) {
        this.person = person;
    }
   
    @Id
    @GeneratedValue
    @Column(name="id")
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
   
    @Column(name="cname")
    public String getCname() {
        return cname;
    }
    public void setCname(String cname) {
        this.cname = cname;
    }
   
    @Column(name="cduration")
    public String getCduration() {
        return cduration;
    }
    public void setCduration(String cduration) {
        this.cduration = cduration;
    }
   
    @Column(name="cfee")
    public String getCfee() {
        return cfee;
    }
    public void setCfee(String cfee) {
        this.cfee = cfee;
    }
   
   
}
LOGIN POJO:
package com.slokam.spring.pojo;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="login")
public class LoginPojo {
    private Integer id;
    private String username;
    private String password;
   
    @Id
    @Column(name="id")
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
   
    @Column(name="username")
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
   
    @Column(name="password")
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
   
}
PASSPORT POJO:
package com.slokam.spring.pojo;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Table(name="passport")
public class Passport  {
    private Integer id;
    private Integer ppNo;
    private String ppExpDate;
    private Person person;
   
    @OneToOne
    @JoinColumn(name="personId")
    public Person getPerson() {
        return person;
    }
    public void setPerson(Person person) {
        this.person = person;
    }
   
    @Id
    @GeneratedValue
    @Column(name="id")
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
   
    @Column(name="ppNo")
    public Integer getPpNo() {
        return ppNo;
    }
    public void setPpNo(Integer ppNo) {
        this.ppNo = ppNo;
    }
   
    @Column(name="ppExpDate")
    public String getPpExpDate() {
        return ppExpDate;
    }
    public void setPpExpDate(String ppExpDate) {
        this.ppExpDate = ppExpDate;
    }
   
}
PERSON PJO
package com.slokam.spring.pojo;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Table(name="person")
public class Person {
    private Integer id;
    private String name;
    private Integer age;
    private String qualification;
    private Person parentId;
    private Passport passport;
    private List<Phone> phone;
    private List<Course> course;
   
    @OneToOne
    @JoinColumn(name="parentId")
    public Person getParentId() {
        return parentId;
    }
    public void setParentId(Person parentId) {
        this.parentId = parentId;
    }
    @ManyToMany
    @JoinTable( name="person_course",
                joinColumns={@JoinColumn(name="personId")},
                inverseJoinColumns={@JoinColumn(name="courseId")}
            )
    public List<Course> getCourse() {
        return course;
    }
    public void setCourse(List<Course> course) {
        this.course = course;
    }
    @OneToMany(mappedBy="person",fetch=FetchType.EAGER)   
    public List<Phone> getPhone() {
        return phone;
    }
    public void setPhone(List<Phone> phone) {
        this.phone = phone;
    }
    @OneToOne(mappedBy = "person")
    public Passport getPassport() {
        return passport;
    }
    public void setPassport(Passport passport) {
        this.passport = passport;
    }
   
    @Id
    @GeneratedValue
    @Column(name="id")
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
   
    @Column(name="name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
   
    @Column(name="age")
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
   
    @Column(name="qualification")
    public String getQualification() {
        return qualification;
    }
    public void setQualification(String qualification) {
        this.qualification = qualification;
    }
   
   
}
PHONE POJO:
package com.slokam.spring.pojo;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name="phone")
public class Phone {
    private Integer id;
    private Integer phoneNumber;
    private String simCompany;
    private Person person;
   
    @ManyToOne
    @JoinColumn(name="personId")
    public Person getPerson() {
        return person;
    }
    public void setPerson(Person person) {
        this.person = person;
    }
   
    @Id
    @GeneratedValue
    @Column(name="id")
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
   
    @Column(name="phoneNumber")
    public Integer getPhoneNumber() {
        return phoneNumber;
    }
    public void setPhoneNumber(Integer phoneNumber) {
        this.phoneNumber = phoneNumber;
    }
   
    @Column(name="simCompany")
    public String getSimCompany() {
        return simCompany;
    }
    public void setSimCompany(String simCompany) {
        this.simCompany = simCompany;
    }
   
   
}
CONTACT SERVICE:
package com.slokam.spring.service;

import java.util.List;

import com.slokam.spring.idao.IContactDAO;
import com.slokam.spring.pojo.ContactPojo;

public class ContactService {
    private IContactDAO contactDAO;

    public void setContactDAO(IContactDAO contactDAO) {
        this.contactDAO = contactDAO;
    }
   
    public void saveContact(ContactPojo contactPojo ){
        contactDAO.saveContact(contactPojo);
    }
   
    public List<ContactPojo> getAllContacts() {
        return contactDAO.getAllContacts();
    }
   
    public ContactPojo viewContact(Integer contactId) {
        ContactPojo pojo = contactDAO.viewContact(contactId);
        return pojo;
    }
    public void updateContact(ContactPojo contactPojo) {
        contactDAO.updateContact(contactPojo);
    }
    public void deleteContact(ContactPojo contactPojo) {
        contactDAO.deleteContact(contactPojo);
    }
   
    public  List<ContactPojo> getContacts(int firstResult, int maxResults){
        return contactDAO.getContacts(firstResult, maxResults);
    }
   
    public long getTotalRecords() {
        return  contactDAO.getTotalRecords();
   
    }
}
LOGIN SERVICE:
package com.slokam.spring.service;

import com.slokam.spring.idao.ILoginDAO;
import com.slokam.spring.pojo.LoginPojo;

public class LoginService {
    private ILoginDAO loginDAO;

    public void setLoginDAO(ILoginDAO loginDAO) {
        this.loginDAO = loginDAO;
    }

    public boolean verifyLoginDetails(LoginPojo loginPojo){
        return loginDAO.verifyUserDetails(loginPojo);
    }
}
 SEARCH SERVICE:
package com.slokam.spring.service;

import java.util.List;

import com.slokam.spring.idao.ISearchDAO;
import com.slokam.spring.pojo.AdvPersonSearchPojo;

public class SearchService {
    private ISearchDAO searchDAO;

    public void setSearchDAO(ISearchDAO searchDAO) {
        this.searchDAO = searchDAO;
    }
   
    public List<Object[]> advPersonSearch(AdvPersonSearchPojo searchPojo){
        return searchDAO.advPersonSearch(searchPojo);
    }
}
WEBINF
JSP
HOME.JSP
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript">
    function saveContact() {
        document.forms[0].action="saveContact.form";
        document.forms[0].submit();
    }
    function getAllContacts() {
        //document.forms[0].action="getAllContacts.form";
        document.forms[0].action="getContacts.form";
        document.forms[0].submit();
    }
    function updateContact() {
        document.forms[0].action = "updateContact.form";
        document.forms[0].submit();
    }
    function deleteContact() {
        document.forms[0].action = "deleteContact.form";
        document.forms[0].submit();
    }
   
   
</script>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
in home.jsp
    <form:form commandName="contact">
        <form:input type="hidden" path="contactId"/>
        Email: <form:input type="text" path="email"/><br>
        Mobile: <form:input type="text" path="mobile"/><br>
        Work: <form:input type="text" path="work"/><br>
        Home: <form:input type="text" path="home"/><br>
        <input type="submit" value="Save" onclick="saveContact()"/>
        <input type="submit" value="GetAll" onclick="getAllContacts()"/>
        <input type="submit" value="Update" onclick="updateContact()"/>
        <input type="submit" value="Delete" onclick="deleteContact()"/><br>
    <a href="download.form">Click here to Download a file</a>
    <%-- <table border="1">
    <tr>
        <td>Email</td>
        <td>Mobile</td>
        <td>Work</td>
        <td>Home</td>
    </tr>
    <c:forEach items="${contactList}" var="obj">
        <tr>
            <td><a href="viewContact.form?contactId=${obj.contactId}">${obj.email}</a></td>
            <td>${obj.mobile}</td>
            <td>${obj.work}</td>
            <td>${obj.home}</td>
           
        </tr>               
    </c:forEach>
   
    </table> --%>
     <table border="1">
    <tr>
        <td>Name</td>
        <td>Password</td>
    </tr>
    <c:forEach items="${contactList}" var="obj">
        <tr>
            <td><a href="viewContact.form?contactId=${obj.id}">${obj.id}</a></td>
            <td>${obj.username}</td>
            <td>${obj.password}</td>
           
        </tr>               
    </c:forEach>
   
    </table>
        <%
        Boolean pagePrevious =(Boolean)request.getAttribute("previousPage");
        System.out.println("pagePrevious: "+pagePrevious);
        if(pagePrevious!=null&&pagePrevious==true){
            %>
            <a href="getPreviousContacts.form"> Previous </a>|||
            <%   
        }
        %>
        <%
                Boolean pageEnd = (Boolean)request.getAttribute("nextPage");
        System.out.println("pageNext: "+pageEnd);
            if(pageEnd!=null&&pageEnd==true){%>
                <a id="nextId" href="getNextContacts.form"> Next</a>   
            <%
            }
            %>
    </form:form>
</body>
</html>

LOGIN 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>Insert title here</title>
</head>
<body>
    <form action="login.form">
        UserName: <input type="text" name="userName"/><br>
        Password: <input type="text" name="password"><br>
        <input type="submit">
    </form>
</body>
</html>
SPRING SERVLET EXMAPLE:
<?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:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:security="http://www.springframework.org/schema/security"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
                        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
                        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
                        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd
    ">
    <context:component-scan base-package="com.slokam.spring"></context:component-scan>
    <mvc:annotation-driven/>
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
   
       
   
    <!-- Login -->
    <bean id="loginService" class="com.slokam.spring.service.LoginService">
        <property name="loginDAO" ref="loginDAO"/>
    </bean>
    <bean id="loginDAO" class="com.slokam.spring.dao.LoginDAO">
        <property name="hibernateTemplate" ref="hibernateTemplate"></property>
    </bean>
    <!-- Contact -->
    <bean id="contactService" class="com.slokam.spring.service.ContactService">
        <property name="contactDAO" ref="contactDAO"/>
    </bean>
    <bean id="contactDAO" class="com.slokam.spring.dao.ContactDAO">
        <property name="hibernateTemplate" ref="hibernateTemplate"/>
    </bean>
    <!-- AdvSearch -->
    <bean id="searchService" class="com.slokam.spring.service.SearchService">
        <property name="searchDAO" ref="hSearchDAO"/>
    </bean>
    <bean id="hSearchDAO" class="com.slokam.spring.dao.SearchDAO">
        <property name="hibernateTemplate" ref="hibernateTemplate"></property>
    </bean>
    <!-- Hibernate -->
    <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.connection.driver_class">com.mysql.jdbc.Driver</prop>
                <prop key="hibernate.connection.url">jdbc:mysql://localhost:3306/cms</prop>
                <prop key="hibernate.connection.username">root</prop>
                <prop key="hibernate.connection.password">madhavi</prop>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.connection.autocommit">true</prop>
            </props>
        </property>
        <property name="annotatedClasses">
            <list>
                <value>com.slokam.spring.pojo.ContactPojo</value>
                <value>com.slokam.spring.pojo.LoginPojo</value>
                <value>com.slokam.spring.pojo.Person</value>
                <value>com.slokam.spring.pojo.Course</value>
                <value>com.slokam.spring.pojo.Passport</value>
                <value>com.slokam.spring.pojo.Phone</value>
            </list>
        </property>
    </bean>

</beans>   
     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_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>SpringWeb</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
      <servlet-name>spring</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  </servlet>
  <servlet-mapping>
      <servlet-name>spring</servlet-name>
      <url-pattern>*.form</url-pattern>
  </servlet-mapping>
 
    
</web-app>
INDEX.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>Insert title here</title>
</head>
<body>
    <jsp:forward page="forward.form"/>
</body>
</html>

File upload Exmple

Controller:

package com.slokam.spring.controller;

import java.io.File;
import java.io.IOException;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;

import com.slokam.spring.pojo.FilePojo;

@Controller
public class FileUploadController {

    @Value("${fileUploadLocation}")
    private String uploadLocation;
   
   
    public void setUploadLocation(String uploadLocation) {
        this.uploadLocation = uploadLocation;
    }

    @RequestMapping("forward")
    public String  forward(@ModelAttribute("upload") FilePojo filePojo){
         return "fileupload";
    }
   
    @RequestMapping("uploadfile")
    public ModelAndView uploadFile(FilePojo filePojo){

        MultipartFile file = filePojo.getFileName();
        File uploadfile = new File(uploadLocation+"\\"+file.getOriginalFilename());
       
        if(file!=null){
        System.out.println("File Name: "+file.getOriginalFilename());
        try {
            file.transferTo(uploadfile);
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        }
        ModelAndView mav = new ModelAndView("fileupload","upload",new FilePojo());
        return mav;
    }
}

File Pojo Example:
package com.slokam.spring.pojo;

import org.springframework.web.multipart.MultipartFile;

public class FilePojo {
    private MultipartFile fileName;

    public MultipartFile getFileName() {
        return fileName;
    }

    public void setFileName(MultipartFile fileName) {
        this.fileName = fileName;
    }

   
}
application proporties in src:
fileUploadLocation=D:\\uploads

WEB-INF:
JSP:
FILE UPLOAD.JSP:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://www.springframework.org/tags/form"  prefix="form"%>  
<!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>Insert title here</title>
</head>
<body>
    <form:form action="uploadfile.form" commandName="upload" enctype="multipart/form-data">
        <form:input type="file" path="fileName"/><br>
        <input type="submit" value="Upload"/>
    </form:form>
</body>
</html>

SPRING SERVLET:
<?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"
        xmlns:mvc = "http://www.springframework.org/schema/mvc"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
        ">
        <context:component-scan base-package="com.slokam.spring"/>
        <mvc:annotation-driven/>
        <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="WEB-INF/jsp/"/>
            <property name="suffix" value=".jsp"/>
            <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        </bean>
        <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        </bean>
        <!-- <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
            <property name="basenames" value="classpath:application.properties"/>
        </bean> -->
        <context:property-placeholder location="classpath:application.properties"/>
</beans>


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_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>FileUpload</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
      <servlet-name>spring</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  </servlet>
  <servlet-mapping>
      <servlet-name>spring</servlet-name>
      <url-pattern>*.form</url-pattern>
  </servlet-mapping>
</web-app>


INDEX.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>Insert title here</title>
</head>
<body>
    <jsp:forward page="forward.form"/>
</body>
</html>


NEW FILE.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>Insert title here</title>
</head>
<body>

</body>
</html>


My Blog List

Powered by Blogger.

 

© 2013 Java Tutorials. All rights resevered. Designed by Templateism

Back To Top