Advertisement
Guest User

Untitled

a guest
Oct 21st, 2014
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.41 KB | None | 0 0
  1. //index.html
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>Students</title>
  7. </head>
  8.  
  9. <body>
  10. <a href="list_students"> Lista studenti</a>
  11. </body>
  12. </html>
  13.  
  14.  
  15. //list_students.jsp
  16. <%@page import="java.util.LinkedList"%>
  17. <%@page import="it.unipr.informatica.exercise4.model.Student"%>
  18. <%@page import="java.util.List"%>
  19. <%@ page language="java" contentType="text/html; charset=UTF-8"
  20. pageEncoding="UTF-8"%>
  21. <!DOCTYPE html>
  22. <html>
  23. <head>
  24. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  25. <title>List Students</title>
  26. </head>
  27.  
  28. <body>
  29. <%
  30. List<Student> students = (List<Student>)session.getAttribute("list_students");
  31. if(students == null)
  32. students = new LinkedList<>();
  33. %>
  34. <table>
  35. <thead>
  36. <tr>
  37. <td>
  38. ID
  39. </td>
  40. <td>
  41. Last name
  42. </td>
  43. <td>
  44. First name
  45. </td>
  46. </tr>
  47. </thead>
  48. <tbody>
  49. <%
  50. for(Student student : students) {
  51. %>
  52. <tr>
  53. <td><a href="details?id=<%=student.getID()%>"><%=student.getID()%></a></td>
  54. <td> <%=student.getLastName() %> </td>
  55. <td> <%=student.getFirstName() %> </td>
  56. </tr>
  57. <%
  58. }
  59. %>
  60. </tbody>
  61. </table>
  62. </body>
  63. </html>
  64.  
  65.  
  66.  
  67. //ListStudents.java
  68. package it.unipr.informatica.exercise.web;
  69.  
  70. import it.unipr.informatica.exercise4.database.DatabaseManager;
  71. import it.unipr.informatica.exercise4.model.Student;
  72. import java.io.IOException;
  73. import java.util.List;
  74. import javax.servlet.ServletException;
  75. import javax.servlet.annotation.WebServlet;
  76. import javax.servlet.http.HttpServlet;
  77. import javax.servlet.http.HttpServletRequest;
  78. import javax.servlet.http.HttpServletResponse;
  79. import javax.servlet.http.HttpSession;
  80.  
  81. @SuppressWarnings("serial")
  82. @WebServlet("/list_students")
  83. public class ListStudents extends HttpServlet {
  84.  
  85. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  86. try {
  87. HttpSession session = request.getSession();
  88. DatabaseManager DBmanager = (DatabaseManager)session.getAttribute("DB_manager");
  89.  
  90. if(DBmanager == null) {
  91. DBmanager = new DatabaseManager();
  92. session.setAttribute("DB_manager", DBmanager);
  93. }
  94.  
  95. List<Student> students = DBmanager.getAllStudent();
  96. session.setAttribute("list_students", students);
  97.  
  98. request.getRequestDispatcher("list_students.jsp").forward(request, response);
  99. } catch(Throwable t) {
  100. t.printStackTrace();
  101. request.getRequestDispatcher("error.html").forward(request, response);
  102. }
  103. }
  104.  
  105. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  106. doGet(request, response);
  107. }
  108.  
  109. }
  110.  
  111.  
  112.  
  113. //Details.java
  114. package it.unipr.informatica.exercise.web;
  115.  
  116. import it.unipr.informatica.exercise4.database.DatabaseManager;
  117. import it.unipr.informatica.exercise4.model.Student;
  118.  
  119. import java.io.IOException;
  120.  
  121. import javax.servlet.ServletException;
  122. import javax.servlet.annotation.WebServlet;
  123. import javax.servlet.http.HttpServlet;
  124. import javax.servlet.http.HttpServletRequest;
  125. import javax.servlet.http.HttpServletResponse;
  126. import javax.servlet.http.HttpSession;
  127.  
  128. @SuppressWarnings("serial")
  129. @WebServlet("/details")
  130. public class Details extends HttpServlet {
  131. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  132. try {
  133. String m = request.getParameter("id");
  134. int id = Integer.parseInt(m);
  135. HttpSession session = request.getSession();
  136. DatabaseManager DBmanager = (DatabaseManager)session.getAttribute("DB_manager");
  137.  
  138. if(DBmanager == null) {
  139. DBmanager = new DatabaseManager();
  140. session.setAttribute("DB_manager", DBmanager);
  141. }
  142. Student student = DBmanager.getStudentByID(id);
  143. session.setAttribute("student", student);
  144. request.getRequestDispatcher("details_student.jsp").forward(request, response);
  145. } catch(Throwable t) {
  146. t.printStackTrace();
  147.  
  148. }
  149. }
  150.  
  151. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  152. doGet(request, response);
  153. }
  154.  
  155. }
  156.  
  157.  
  158.  
  159. //DatabaseManager.java
  160. package it.unipr.informatica.exercise4.database;
  161.  
  162. import it.unipr.informatica.exercise4.model.FactoryModel;
  163. import it.unipr.informatica.exercise4.model.Student;
  164. import it.unipr.informatica.exercise4.model.implementation.FactoryModelImplementation;
  165. import java.sql.Connection;
  166. import java.sql.DriverManager;
  167. import java.sql.PreparedStatement;
  168. import java.sql.ResultSet;
  169. import java.sql.Statement;
  170. import java.sql.SQLException;
  171. import java.util.ArrayList;
  172. import java.util.List;
  173. import java.util.ResourceBundle;
  174.  
  175.  
  176. public class DatabaseManager {
  177. private FactoryModel factory;
  178. private String url;
  179.  
  180. public DatabaseManager() {
  181. createFactoryModel();
  182. ResourceBundle bundle = ResourceBundle.getBundle("configuration");
  183. url = bundle.getString("database.url");
  184. String driver = bundle.getString("database.driver");
  185.  
  186. try{
  187. Class.forName(driver);
  188. } catch(Throwable t) {
  189. t.printStackTrace();
  190. }
  191. }
  192.  
  193. protected void createFactoryModel() {
  194. factory = new FactoryModelImplementation();
  195. }
  196.  
  197. public void setFactoryModel(FactoryModel factory) {
  198. this.factory = factory;
  199. }
  200.  
  201. private Connection createConnection() throws SQLException {
  202. return DriverManager.getConnection(url);
  203. }
  204.  
  205. private void disconnect(Connection c, Statement s) {
  206. disconnect(c, s, null);
  207. }
  208.  
  209. private void disconnect(Connection c, Statement s, ResultSet r) {
  210. try {
  211. r.close();
  212. } catch(Throwable t){}
  213.  
  214. try {
  215. s.close();
  216. } catch(Throwable t){}
  217.  
  218. try {
  219. c.close();
  220. } catch(Throwable t){}
  221. }
  222.  
  223. public Student addStudent(String lastName, String firstName) throws SQLException{
  224. Connection c = null;
  225. PreparedStatement s = null;
  226. ResultSet r = null;
  227. Student res = null;
  228. try {
  229. c = createConnection();
  230. s = c.prepareStatement("INSERT INTO STUDENT(lastName, firstName) VALUES (?, ?)", Statement.RETURN_GENERATED_KEYS);
  231. s.setString(1, firstName);
  232. s.setString(2, lastName);
  233. s.execute();
  234. r = s.getGeneratedKeys();
  235. r.next();
  236.  
  237. int id = r.getInt(1);
  238. res = factory.newStudent(id, lastName, firstName);
  239.  
  240. } catch(SQLException e) {
  241. disconnect(c, s, r);
  242. throw e;
  243. }
  244. disconnect(c, s);
  245. return res;
  246. }
  247.  
  248. public List<Student> getAllStudent() throws SQLException {
  249. Connection c = null;
  250. PreparedStatement s = null;
  251. ResultSet r = null;
  252. List<Student> res = new ArrayList<Student>();
  253.  
  254. try {
  255. c = createConnection();
  256. s = c.prepareStatement("SELECT * FROM STUDENT");
  257. r = s.executeQuery();
  258.  
  259. while(r.next()) {
  260. int id = r.getInt("ID");
  261. String lName = r.getString("lastName");
  262. String fName = r.getString("firstName");
  263.  
  264. Student student = factory.newStudent(id, lName, fName);
  265. res.add(student);
  266. }
  267. } catch(SQLException e) {
  268. disconnect(c, s, r);
  269. throw e;
  270. }
  271.  
  272. disconnect(c, s, r);
  273. return res;
  274. }
  275.  
  276. public Student getStudentByID(int id) throws SQLException {
  277. Connection c = null;
  278. PreparedStatement s = null;
  279. ResultSet r = null;
  280. Student res = null;
  281.  
  282. try {
  283. c = createConnection();
  284. s = c.prepareStatement("SELECT * FROM STUDENT WHERE = ?");
  285. s.setInt(1, id);
  286. r = s.executeQuery();
  287.  
  288. if(r.next()) {
  289. String lName = r.getString("lastName");
  290. String fName = r.getString("firstName");
  291.  
  292. res = factory.newStudent(id, lName, fName);
  293. }
  294. } catch(SQLException e) {
  295. disconnect(c, s, r);
  296. throw e;
  297. }
  298.  
  299. disconnect(c, s, r);
  300. return res;
  301. }
  302. }
  303.  
  304.  
  305.  
  306. //error.html
  307. <!DOCTYPE html>
  308. <html>
  309. <head>
  310. <meta charset="UTF-8">
  311. <title>Information not found</title>
  312. </head>
  313. <body>
  314. <h1>Information not found in the DB</h1>
  315. </body>
  316. </html>
  317.  
  318.  
  319.  
  320. //details.student.jsp
  321. <%@page import="java.util.LinkedList"%>
  322. <%@page import="it.unipr.informatica.exercise4.model.Student"%>
  323. <%@page import="java.util.List"%>
  324. <%@ page language="java" contentType="text/html; charset=UTF-8"
  325. pageEncoding="UTF-8"%>
  326. <!DOCTYPE html>
  327. <html>
  328. <head>
  329. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  330. <title>Details student</title>
  331. </head>
  332.  
  333. <body>
  334. <%
  335. Student student = (Student)session.getAttribute("details_student");
  336. if(student == null)
  337. //student = new Student;
  338. %>
  339. <p> <%=student.getID()%></p>
  340. <p> <%=student.getLastName() %> <p>
  341. <p> <%=student.getFirstName() %> <p>
  342. </body>
  343. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement