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");
}
}
-------------------------------------------------------------------------------------------------------------------------