Monday, October 13, 2014

EJB full code

EJB Module-gh package

Entity classes

BookEntity.java
-------------------

package ejb;

import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

/**
 *
 * @author Chamila Madushanka
 */
@Entity
public class BookEntity implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String title;
    private int ISBN;
    private String author;
    private int b_year;
    private String language;
    private double price;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public int getISBN() {
        return ISBN;
    }

    public void setISBN(int ISBN) {
        this.ISBN = ISBN;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public int getB_year() {
        return b_year;
    }

    public void setB_year(int b_year) {
        this.b_year = b_year;
    }

    public String getLanguage() {
        return language;
    }

    public void setLanguage(String language) {
        this.language = language;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }




    

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof BookEntity)) {
            return false;
        }
        BookEntity other = (BookEntity) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "ejb.BookEntity[ id=" + id + " ]";
    }
    
}

-----------------------------------------------------------------------------------------------------------------------
AutherEntity.java
-----------------------------

package ejb;

import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

/**
 *
 * @author Chamila Madushanka
 */
@Entity
public class AuthorEntity implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }



    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof AuthorEntity)) {
            return false;
        }
        AuthorEntity other = (AuthorEntity) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "ejb.AuthorEntity[ id=" + id + " ]";
    }
    
}
---------------------------------------------------------------------------------------
Message Driven Beans

New Book.java

package ejb;

import javax.annotation.Resource;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.ejb.MessageDrivenContext;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.ObjectMessage;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

/**
 *
 * @author Chamila Madushanka
 */
@MessageDriven(mappedName = "jms/NewBook", activationConfig = {
    @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
    @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")
})
public class NewBook implements MessageListener {
    
    @Resource
    private MessageDrivenContext mdc;
    @PersistenceContext(unitName = "EnterpriseApplication1-ejbPU")
    private EntityManager em;
    
    
    public NewBook() {
    }
    
    @Override
    public void onMessage(Message message) {
        ObjectMessage msg = null; 
        try { 
        if (message instanceof ObjectMessage) { 
        msg = (ObjectMessage) message; 
        NewBook e = (NewBook) msg.getObject(); 
        save(e); 
        } 
        } 
        catch (JMSException e) { 
        e.printStackTrace(); 
        mdc.setRollbackOnly(); 
        } 
        catch (Throwable te) { 
        te.printStackTrace(); 
        }
    }

    public void save(Object object) {
        em.persist(object);
    }

    public void persist(Object object) {
        em.persist(object);
    }
}

-----------------------------------------------------------------------------------------------------------------

NewAuther.java

package ejb;

import javax.annotation.Resource;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.ejb.MessageDrivenContext;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.ObjectMessage;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

/**
 *
 * @author Chamila Madushanka
 */
@MessageDriven(mappedName = "jms/NewAuthor", activationConfig = {
    @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
    @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")
})
public class NewAuthor implements MessageListener {

    
    @PersistenceContext(unitName = "EnterpriseApplication1-ejbPU")
    private EntityManager em;
    @Resource
    private MessageDrivenContext mdc;

    public NewAuthor() {
    }

    @Override
    public void onMessage(Message message) {
         
    ObjectMessage msg = null; 
    try { 
        if (message instanceof ObjectMessage) { 
            msg = (ObjectMessage) message; 
            AuthorEntity e = (AuthorEntity) msg.getObject(); 
            save(e);             
        } 
    } catch (JMSException e) { 
        e.printStackTrace(); 
        mdc.setRollbackOnly(); 
    } catch (Throwable te) { 
        te.printStackTrace(); 
    } 
    }

    public void save(Object object) {
        em.persist(object);
    }

    public void persist(Object object) {
        em.persist(object);
    }
}


-------------------------------------------------------------------------------------------------------------
Persistence category, select Session Beans for Entity Classes

Select  both classes.
It will create Auther Facade/BookFacde/AbstractFacade
------------------------------------------------------------------------------------------------------------
AbstractFacade


package ejb;

import java.util.List;
import javax.persistence.EntityManager;

/**
 *
 * @author Chamila Madushanka
 */
public abstract class AbstractFacade<T> {
    private Class<T> entityClass;

    public AbstractFacade(Class<T> entityClass) {
        this.entityClass = entityClass;
    }

    protected abstract EntityManager getEntityManager();

    public void create(T entity) {
        getEntityManager().persist(entity);
    }

    public void edit(T entity) {
        getEntityManager().merge(entity);
    }

    public void remove(T entity) {
        getEntityManager().remove(getEntityManager().merge(entity));
    }

    public T find(Object id) {
        return getEntityManager().find(entityClass, id);
    }

    public List<T> findAll() {
        javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();
        cq.select(cq.from(entityClass));
        return getEntityManager().createQuery(cq).getResultList();
    }

    public List<T> findRange(int[] range) {
        javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();
        cq.select(cq.from(entityClass));
        javax.persistence.Query q = getEntityManager().createQuery(cq);
        q.setMaxResults(range[1] - range[0]);
        q.setFirstResult(range[0]);
        return q.getResultList();
    }

    public int count() {
        javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();
        javax.persistence.criteria.Root<T> rt = cq.from(entityClass);
        cq.select(getEntityManager().getCriteriaBuilder().count(rt));
        javax.persistence.Query q = getEntityManager().createQuery(cq);
        return ((Long) q.getSingleResult()).intValue();
    }
    
}

-----------------------------------------------------------------------------------------------------------
AutherFacade
-----------------
package ejb;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

/**
 *
 * @author Chamila Madushanka
 */
@Stateless
public class AuthorEntityFacade extends AbstractFacade<AuthorEntity> {
    @PersistenceContext(unitName = "EnterpriseApplication1-ejbPU")
    private EntityManager em;

    @Override
    protected EntityManager getEntityManager() {
        return em;
    }

    public AuthorEntityFacade() {
        super(AuthorEntity.class);
    }
    
}

BookEntityFacade
----------------------
package ejb;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

/**
 *
 * @author Chamila Madushanka
 */
@Stateless
public class BookEntityFacade extends AbstractFacade<BookEntity> {
    @PersistenceContext(unitName = "EnterpriseApplication1-ejbPU")
    private EntityManager em;

    @Override
    protected EntityManager getEntityManager() {
        return em;
    }

    public BookEntityFacade() {
        super(BookEntity.class);
    }
    
}

---------------------------------------------------------------------------------------------------------------------

In War 

Project->propeties->Run->/Main(HomeServletName)
---------------------------------------------------------------------------------------------------------------------
Pakage nn
1.Session Bean

package ejb;

import javax.ejb.Singleton;
import javax.ejb.LocalBean;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

/**
 *
 * @author Chamila Madushanka
 */
@Singleton
@LocalBean
@WebListener
public class NewSessionBean implements HttpSessionListener{

    int i = 0;
    
    @Override
    public void sessionCreated(HttpSessionEvent se) {
        i++;
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent se) {
        i--;
    }

    public int getClients()
    {
        return i;
    }
    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")

}
-----------------Add Servelets-----------------------------------------------------------------------------------
Package name web

Main
-------
package web;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Chamila Madushanka
 */
@WebServlet(name = "Main", urlPatterns = {"/Main"})
public class Main extends HttpServlet {

    /**
     * Processes requests for both HTTP
     * <code>GET</code> and
     * <code>POST</code> methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            /* TODO output your page here. You may use following sample code. */
            out.println("<!DOCTYPE html>");
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Online BookStore</title>");            
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Online BookStore</h1>");
            out.println("<a href='ListBooks'>Book Details</a>");
            out.println("<br/>");
            out.println("<a href='ListAuthor'>Author Details</a>");
            out.println("</body>");
            out.println("</html>");
        } finally {            
            out.close();
        }
    }
---------------------NewAuther------------------------------------------------------------------------

package web;

import ejb.AuthorEntity;
import java.io.IOException;
import java.io.PrintWriter;
import javax.annotation.Resource;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.ObjectMessage;
import javax.jms.Queue;
import javax.jms.Session;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Chamila Madushanka
 */
@WebServlet(name = "NewAuthor", urlPatterns = {"/NewAuthor"})
public class NewAuthor extends HttpServlet {
//    @EJB
//    private NewSessionBean newSessionBean;
//    @EJB
//    private AuthorEntityFacade authorEntityFacade;

    @Resource(mappedName = "jms/NewAuthorFactory")
    private ConnectionFactory connectionFactory;
    @Resource(mappedName = "jms/NewAuthor")
    private Queue queue;
    AuthorEntity e = new AuthorEntity();

    /**
     * Processes requests for both HTTP
     * <code>GET</code> and
     * <code>POST</code> methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {




        response.setContentType("text/html;charset=UTF-8");


        String title = request.getParameter("title");
        if ((title != null)) {
            try {
                Connection connection = connectionFactory.createConnection();
                Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
                MessageProducer messageProducer = session.createProducer(queue);
                ObjectMessage message = session.createObjectMessage();
                // here we create NewsEntity, that will be sent in JMS message 

                e.setName(title);
                message.setObject(e);
                messageProducer.send(message);
                messageProducer.close();
                connection.close();

                //  response.sendRedirect("ListNews");
            } catch (JMSException ex) {
                ex.printStackTrace();
            }
        }




        PrintWriter out = response.getWriter();
        try {
            /* TODO output your page here. You may use following sample code. */
            out.println("<html>");
            out.println("<head>");
            out.println("<title>AddNewAuthor</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<h2>Add New Author</h2>");
            out.println("<br/>");
            out.println("<form>");
            out.println("Author: <input type='text' name='title'><br/>");
            out.println("<br/>");
            out.println("<input type='submit' value='Add Author'><br/>");
            out.println("</form>");
            out.println("<br/>");
            out.println("<a href='ListAuthor'>Back</a>");
            out.println("</body>");
            out.println("</html>");
        } finally {
            out.close();
        }
    }
---------------------------------------------NewBook------------------------------------------------------------
package web;

import ejb.AuthorEntity;
import ejb.AuthorEntityFacade;
import ejb.BookEntity;
import ejb.BookEntityFacade;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import javax.annotation.Resource;
import javax.ejb.EJB;
import javax.ejb.EJBException;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.ObjectMessage;
import javax.jms.Queue;
import javax.jms.Session;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Chamila Madushanka
 */
@WebServlet(name = "NewBook", urlPatterns = {"/NewBook"})
public class NewBook extends HttpServlet {

//    @Resource(mappedName = "jms/NewBookFactory")
//    private ConnectionFactory connectionFactory;
//    @Resource(mappedName = "jms/NewBook")
//    private Queue queue;
    BookEntity b = new BookEntity();
    int ISBN;
    double price;
    int year;
    Boolean exist = false;
    
    @EJB
    private AuthorEntityFacade authorEntityFacade;
    @EJB
    private BookEntityFacade bookEntityFacade;

    /**
     * Processes requests for both HTTP
     * <code>GET</code> and
     * <code>POST</code> methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");

        if (request.getParameter("isbn") != null) {
            ISBN = Integer.parseInt(request.getParameter("isbn").toString());
        }
        if (request.getParameter("year") != null) {
            year = Integer.parseInt(request.getParameter("year").toString());
        }
        if (request.getParameter("price") != null) {
            price = Double.parseDouble(request.getParameter("price"));
        }

        String title = request.getParameter("title");
        String language = request.getParameter("lang");
        String author = request.getParameter("author");
        if ((ISBN != 0) && (year != 0) && (price != 0) && (title != null) && (language != null) && (author != null)) {
            try {
                /*Connection connection = connectionFactory.createConnection();
                 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
                 MessageProducer messageProducer = session.createProducer(queue);
                 ObjectMessage message = session.createObjectMessage();*/
                // here we create NewsEntity, that will be sent in JMS message 
                try {
                    
                        BookEntity b = new BookEntity();
                        b.setAuthor(author);
                        b.setISBN(ISBN);
                        b.setLanguage(language);
                        b.setPrice(price);
                        b.setTitle(title);
                        b.setB_year(year);
                        

                        bookEntityFacade.create(b);
                        response.sendRedirect("ListBooks");
            

                } catch (EJBException ex) {
                }



                //  response.sendRedirect("ListNews");
            } catch (EJBException ex) {
                ex.printStackTrace();
            }
        }
        PrintWriter out = response.getWriter();
        try {
            /* TODO output your page here. You may use following sample code. */
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet AddNewBooks</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<h2>Add New Book</h2>");
            out.println("<br/>");
            out.println("<form>");
            out.println("ISBN: <br/>");
            out.println("<input type='text' name='isbn' size='15'><br/>");
            out.println("Title: <br/>");
            out.println("<input type='text' name='title' size ='15'><br/>");
            out.println("Author Name: <br/>");
            out.println("<select name='author'>");
            out.println("<option></option>");
            List cus = authorEntityFacade.findAll();
            for (Iterator it = cus.iterator(); it.hasNext();) {
                AuthorEntity elem = (AuthorEntity) it.next();
                out.println("<option>" + elem.getName() + "</option>");
            }
            out.println("</select><br/>");
            out.println("Price: <br/>");
            out.println("<input type='text' name='price' size='15'><br/>");
            out.println("Year: <br/>");
            out.println("<input type='text' name='year' size ='15'><br/>");
            out.println("Language: <br/>");
            out.println("<input type='text' name='lang' size ='15'><br/>");
            out.println("<br/>");
            out.println("<input type='submit' value='Add Book'><br/>");
            out.println("</form>");
            out.println("<br/>");
            out.println("<a href='ListBooks'>Back</a>");
            out.println("</body>");
            out.println("</html>");
        } finally {
            out.close();
        }
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP
     * <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP
     * <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}
-------------------------------------ListAuther------------------------------------------------------------
package web;

import ejb.AuthorEntity;
import ejb.AuthorEntityFacade;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.EJBException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Chamila Madushanka
 */
@WebServlet(name = "ListAuthor", urlPatterns = {"/ListAuthor"})
public class ListAuthor extends HttpServlet {

    @EJB
    private AuthorEntityFacade authorEntityFacade;
    /**
     * Processes requests for both HTTP
     * <code>GET</code> and
     * <code>POST</code> methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        if (request.getParameter("Id") != null) {
            Long Id = Long.parseLong(request.getParameter("Id").toString());

            try {
                AuthorEntity ce = authorEntityFacade.find(Id);
                authorEntityFacade.remove(ce);
                response.sendRedirect("ListAuthor");
            } catch (EJBException ex) {
                ex.printStackTrace();
            }
        }
        
        PrintWriter out = response.getWriter();
        try {
            /* TODO output your page here. You may use following sample code. */
            out.println("<html>");
            out.println("<head>");
            out.println("<title>ListAuthors</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<center>");
            out.println("<h2>Authors List</h2>");
            out.println("<br/>");
            out.println("<table border='1' width='800px'>");
            out.println("<th></th>");
            out.println("<th></th>");
            out.println("<th>Name</th>");

            List aut = authorEntityFacade.findAll();
            for (Iterator it = aut.iterator(); it.hasNext();) {
                out.println("<tr>");
                AuthorEntity elem = (AuthorEntity) it.next();
                out.println(" <td> <a href='UpdateAuthor?Id=" + elem.getId() + "'>Update</a></td>");
                out.println(" <td> <a href='?Id=" + elem.getId() + "'>Delete</a></td>");

                out.println(" <td>" + elem.getName() + " </td>");
                out.println("</tr>");
            }
            out.println("</table>");
            out.println("<br/>");
            out.println("<br/>");
            out.println("<a href='NewAuthor'>Add new Author</a>");
            out.println("<br/>");
            out.println("<a href='Main'>Home</a>");
            out.println("</center>");
            out.println("</body>");
            out.println("</html>");
        } finally {            
            out.close();
        }
    }
-----------------------------------List Books-----------------------------------------------------------------
package web;

import ejb.AuthorEntityFacade;
import ejb.BookEntity;
import ejb.BookEntityFacade;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Chamila Madushanka
 */
@WebServlet(name = "ListBooks", urlPatterns = {"/ListBooks"})
public class ListBooks extends HttpServlet {
    
    @EJB
    private AuthorEntityFacade authorEntityFacade;
    @EJB
    private BookEntityFacade bookEntityFacade;

    /**
     * Processes requests for both HTTP
     * <code>GET</code> and
     * <code>POST</code> methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            /* TODO output your page here. You may use following sample code. */
            out.println("<html>");
            out.println("<head>");
            out.println("<title>ListBooks</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<center>");
            out.println("<h2>Books List</h2>");
            out.println("<br/>");
            out.println("<table border='1' width='800px'>");
            out.println("<th></th>");
            out.println("<th>ISBN</th>");
            out.println("<th>Title</th>");
            out.println("<th>Author Name</th>");
            out.println("<th>Price</th>");
            out.println("<th>Publish Date</th>");
            out.println("<th>Language</th>");
            List books = bookEntityFacade.findAll();
            for (Iterator it = books.iterator(); it.hasNext();) {
                out.println("<tr>");
                BookEntity elem = (BookEntity) it.next();
                out.println(" <td> <a href='UpdateBook?Id=" + elem.getId() + "'>Update</a></td>");
                out.println(" <td> <a href='ViewBook?Id=" + elem.getId() + "'> " + elem.getISBN()+ " </a></td>");
                out.println(" <td>" + elem.getTitle()+ " </td>");
                out.println(" <td>" + elem.getAuthor()+ "</td> ");
                out.println(" <td>" + elem.getPrice()+ " </td>");
                out.println(" <td>" + elem.getB_year()+ " </td>");
                out.println(" <td>" + elem.getLanguage()+ " </td>");
                out.println("</tr>");
            }
            out.println("</table>");
            out.println("<br/>");
            out.println("<a href='NewBook'>Add new Book</a>");
            out.println("<br/>");
            out.println("<a href='Main'>Home</a>");
            out.println("</center>");
            out.println("</body>");
            out.println("</html>");
        } finally {            
            out.close();
        }
    }
-------------------------------Update Auther--------------------------------------------------------------
package web;

import ejb.AuthorEntity;
import ejb.AuthorEntityFacade;
import java.io.IOException;
import java.io.PrintWriter;
import javax.annotation.Resource;
import javax.ejb.EJB;
import javax.ejb.EJBException;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.ObjectMessage;
import javax.jms.Queue;
import javax.jms.Session;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Chamila Madushanka
 */
@WebServlet(name = "UpdateAuthor", urlPatterns = {"/UpdateAuthor"})
public class UpdateAuthor extends HttpServlet {

    @EJB
    private AuthorEntityFacade authorEntityFacade;
    
    AuthorEntity e;
    Long Id;
    /**
     * Processes requests for both HTTP
     * <code>GET</code> and
     * <code>POST</code> methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        if (request.getParameter("Id") != null) {

            Id = Long.parseLong(request.getParameter("Id").toString());

            try {
                e = authorEntityFacade.find(Id);
            } catch (EJBException ex) {
                
            }
        } else {
            e = new AuthorEntity();
            //ce.setCusID("");
            e.setName("");
        }
        
        //Long id = Long.parseLong(request.getParameter("id").toString());
        String name = request.getParameter("name");


        if ((name != null) ) {
            try {
                
                AuthorEntity c = new AuthorEntity();
                c.setId(Id);
                c.setName(name);


                authorEntityFacade.edit(c);
                response.sendRedirect("ListAuthor");

            } catch (EJBException ex) {
                ex.printStackTrace();
            }
        }
        
        
        PrintWriter out = response.getWriter();
        try {
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet UpdateAuthor</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<h2>Update Author</h2>");
            out.println("<br/>");
            out.println("<form>");
            
            out.println("Author Name: <br/>");
            out.println("<input type='text' name='name' size='40' value='" + e.getName() + "'><br/>");

            out.println("<br/>");
            out.println("<input type='submit' value='Update Author'> <br/>");
            out.println("</form>");
            out.println("<br/>");
            out.println("<a href='ListAuthor'>Back</a>");
            out.println("</body>");
            out.println("</html>");
        } finally {            
            out.close();
        }
    }
--------------------------------Update Book------------------------------------------------------------------
package web;

import ejb.BookEntity;
import ejb.BookEntityFacade;
import java.io.IOException;
import java.io.PrintWriter;
import javax.ejb.EJB;
import javax.ejb.EJBException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Chamila Madushanka
 */
@WebServlet(name = "UpdateBook", urlPatterns = {"/UpdateBook"})
public class UpdateBook extends HttpServlet {

    @EJB
    private BookEntityFacade bookEntityFacade;
    BookEntity bo;
    Long Id;
    int ISBN, year;
    Double price;

    /**
     * Processes requests for both HTTP
     * <code>GET</code> and
     * <code>POST</code> methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");

        if (request.getParameter("Id") != null) {

            Id = Long.parseLong(request.getParameter("Id").toString());

            try {
                bo = bookEntityFacade.find(Id);

            } catch (EJBException ex) {
            }
        } else {
            bo = new BookEntity();
            bo.setAuthor("");
            bo.setTitle("");
            bo.setLanguage("");
        }

        try {
            ISBN = Integer.parseInt(request.getParameter("isbn").toString());
            year = Integer.parseInt(request.getParameter("year").toString());
            price = Double.parseDouble(request.getParameter("price").toString());
        } catch (NullPointerException ex) {
        }
        String title = request.getParameter("title");
        String author = request.getParameter("author");
        String language = request.getParameter("language");

        if ((ISBN != 0) && (year != 0) && (price != 0) && (title != null) && (language != null) && (author != null)) {
            try {

                BookEntity b = new BookEntity();
                b.setAuthor(author);
                b.setISBN(ISBN);
                b.setLanguage(language);
                b.setPrice(price);
                b.setTitle(title);
                b.setB_year(year);

                bookEntityFacade.edit(b);
                response.sendRedirect("ListBooks");

            } catch (EJBException ex) {
                ex.printStackTrace();
            }
        }

        PrintWriter out = response.getWriter();
        try {
            /* TODO output your page here. You may use following sample code. */
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet UpdateBooks</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<h2>Update Books</h2>");
            out.println("<br/>");
            out.println("<form>");
            out.println("ISBN: <br/>");
            out.println("<input type='text'  name='isbn' readonly='readonly' value='" + bo.getISBN() + "'><br/>");
            out.println("Title: <br/>");
            out.println("<input type='text'  name='title' readonly='readonly' value='" + bo.getTitle() + "'><br/>");
            out.println("Author: <br/>");
            out.println("<input type='text'  name='author' value='" + bo.getAuthor() + "'><br/>");
            out.println("Price: <br/>");
            out.println("<input type='text'  name='price' value='" + bo.getPrice() + "'><br/>");
            out.println("Year: <br/>");
            out.println("<input type='text'  name='year' value='" + bo.getB_year() + "'><br/>");
            out.println("Language: <br/>");
            out.println("<input type='text'  name='language' value='" + bo.getLanguage() + "'><br/>");
            out.println("<input type='submit' value='Update Books'> <br/>");
            out.println("</form>");
            out.println("<br/>");
            out.println("<a href='ListBooks'>Back</a>");
            out.println("</body>");
            out.println("</html>");
        } finally {
            out.close();
        }
    }
---------------------------------------View Book by ID----------------------------------------------------------
package web;

import ejb.AuthorEntityFacade;
import ejb.BookEntity;
import ejb.BookEntityFacade;
import java.io.IOException;
import java.io.PrintWriter;
import javax.ejb.EJB;
import javax.ejb.EJBException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Chamila Madushanka
 */
@WebServlet(name = "ViewBook", urlPatterns = {"/ViewBook"})
public class ViewBook extends HttpServlet {

    @EJB
    private AuthorEntityFacade authorEntityFacade;
    @EJB
    private BookEntityFacade bookEntityFacade;
    BookEntity bo;
    Long id;
    /**
     * Processes requests for both HTTP
     * <code>GET</code> and
     * <code>POST</code> methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        if (request.getParameter("Id") != null) {

            id = Long.parseLong(request.getParameter("Id").toString());

            try {
                bo = bookEntityFacade.find(id);
            } catch (EJBException ex) {
                
            }
        }
        PrintWriter out = response.getWriter();
        try {
            /* TODO output your page here. You may use following sample code. */
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet ViewBook</title>");            
            out.println("</head>");
            out.println("<body>");
            out.println("<h2>View Book Details</h2>");
            out.println("<br/>");
            out.println("<form>");
            out.println("ISBN: <br/>");
            out.println("<input type='text' size='10' value='"+ bo.getISBN() +"'><br/>");
            out.println("Title: <br/>");
            out.println("<input type='text' size='15' value='"+ bo.getTitle() +"'><br/>");
            out.println("Author Name: <br/>");
            out.println("<input type='text' size='15' value='"+ bo.getAuthor()+"'><br/>");
            out.println("Price: <br/>");
            out.println("<input type='text' size='15' value='"+ bo.getPrice() +"'><br/>");
            out.println("Year: <br/>");
            out.println("<input type='text' size='15' value='"+ bo.getB_year() +"'><br/>");
            out.println("Language: <br/>");
            out.println("<input type='text' size='15' value='"+ bo.getLanguage() +"'><br/>");
            out.println("<a href='ListBooks'>Back</a>");
            out.println("</body>");
            out.println("</html>");
        } finally {            
            out.close();
        }
    }
-------------------------Delete auther by ID----------------------------------------------------------------------
@Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {

        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

        String AuthorID = request.getParameter("AuthorID");
        String BookID = request.getParameter("BookID");
        String whatType = request.getParameter("whatType");

        AuthorEntity A_elem = (AuthorEntity) authorEntityFacade.find(Long.parseLong(AuthorID));
        BookEntity B_elem = (BookEntity) bookEntityFacade.find(Long.parseLong(BookID));

        long Author_ID=Long.parseLong(AuthorID);
        authorEntityFacade.remove(A_elem);
        Set<AuthorEntity> Aet = B_elem.getAuthors();
        Iterator<AuthorEntity> iterator = Aet.iterator();
        while (iterator.hasNext())
        {
            AuthorEntity AE = iterator.next();
            if (AE.getId() == Author_ID)
            {
                iterator.remove();
            }
        }
        B_elem.setAuthors(Aet);
        bookEntityFacade.edit(B_elem);
        if(whatType.equalsIgnoreCase("allBooks"))
        {
            response.sendRedirect("ViewBooksServlet");
        }
        else if(whatType.equalsIgnoreCase("author"))
        {
            response.sendRedirect("ListOfAuthorsServlet");
        }
    }
-------------------------------------------------------------------------------------------------------------------------














No comments:

Post a Comment