package example; import java.io.PrintWriter; import java.io.IOException; import java.util.List; import javax.annotation.*; import javax.inject.Inject; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.transaction.*; import javax.persistence.*; /** * The CourseServlet queries the active courses and displays them. */ public class CourseServlet extends HttpServlet { @Inject private UserTransaction _uTrans; @Inject private EntityManager _manager; /** * Initializes the database for the example. */ public void init() throws ServletException { Course course = null; try { course = _manager.find(Course.class, new Integer(1)); if (course != null) return; } catch (Exception e) { } _manager.getTransaction().begin(); try { _manager.persist(new Course("Potions", "Severus Snape")); _manager.persist(new Course("Transfiguration", "Minerva McGonagall")); } finally { _manager.getTransaction().commit(); } } /** * Illustrates how to interact with the Course EJB */ public void service(HttpServletRequest req, HttpServletResponse res) throws java.io.IOException, ServletException { PrintWriter out = res.getWriter(); res.setContentType("text/html"); out.println("<h3>Course Details</h3>"); Query query = _manager.createQuery("SELECT o FROM Course o"); for (Course course : (List<Course>) query.getResultList()) { out.println("course: " + course.course() + "<br>"); out.println("teacher: " + course.teacher() + "<br>"); out.println("<br>"); } out.println("<h3>Add a Course</h3>"); Course newCourse = new Course("Charms", "Professor Flitwick"); _manager.getTransaction().begin(); try { _manager.persist(newCourse); } finally { _manager.getTransaction().commit(); } for (Course course : (List<Course>) query.getResultList()) { out.println("course: " + course.course() + "<br>"); out.println("teacher: " + course.teacher() + "<br>"); out.println("<br>"); } _manager.getTransaction().begin(); try { Course course = _manager.find(Course.class, newCourse.getId()); _manager.remove(course); } finally { _manager.getTransaction().commit(); } } }