Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //index.html
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>Students</title>
- </head>
- <body>
- <a href="list_students"> Lista studenti</a>
- </body>
- </html>
- //list_students.jsp
- <%@page import="java.util.LinkedList"%>
- <%@page import="it.unipr.informatica.exercise4.model.Student"%>
- <%@page import="java.util.List"%>
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>List Students</title>
- </head>
- <body>
- <%
- List<Student> students = (List<Student>)session.getAttribute("list_students");
- if(students == null)
- students = new LinkedList<>();
- %>
- <table>
- <thead>
- <tr>
- <td>
- ID
- </td>
- <td>
- Last name
- </td>
- <td>
- First name
- </td>
- </tr>
- </thead>
- <tbody>
- <%
- for(Student student : students) {
- %>
- <tr>
- <td><a href="details?id=<%=student.getID()%>"><%=student.getID()%></a></td>
- <td> <%=student.getLastName() %> </td>
- <td> <%=student.getFirstName() %> </td>
- </tr>
- <%
- }
- %>
- </tbody>
- </table>
- </body>
- </html>
- //ListStudents.java
- package it.unipr.informatica.exercise.web;
- import it.unipr.informatica.exercise4.database.DatabaseManager;
- import it.unipr.informatica.exercise4.model.Student;
- import java.io.IOException;
- import java.util.List;
- import javax.servlet.ServletException;
- import javax.servlet.annotation.WebServlet;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
- @SuppressWarnings("serial")
- @WebServlet("/list_students")
- public class ListStudents extends HttpServlet {
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- try {
- HttpSession session = request.getSession();
- DatabaseManager DBmanager = (DatabaseManager)session.getAttribute("DB_manager");
- if(DBmanager == null) {
- DBmanager = new DatabaseManager();
- session.setAttribute("DB_manager", DBmanager);
- }
- List<Student> students = DBmanager.getAllStudent();
- session.setAttribute("list_students", students);
- request.getRequestDispatcher("list_students.jsp").forward(request, response);
- } catch(Throwable t) {
- t.printStackTrace();
- request.getRequestDispatcher("error.html").forward(request, response);
- }
- }
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- doGet(request, response);
- }
- }
- //Details.java
- package it.unipr.informatica.exercise.web;
- import it.unipr.informatica.exercise4.database.DatabaseManager;
- import it.unipr.informatica.exercise4.model.Student;
- import java.io.IOException;
- import javax.servlet.ServletException;
- import javax.servlet.annotation.WebServlet;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
- @SuppressWarnings("serial")
- @WebServlet("/details")
- public class Details extends HttpServlet {
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- try {
- String m = request.getParameter("id");
- int id = Integer.parseInt(m);
- HttpSession session = request.getSession();
- DatabaseManager DBmanager = (DatabaseManager)session.getAttribute("DB_manager");
- if(DBmanager == null) {
- DBmanager = new DatabaseManager();
- session.setAttribute("DB_manager", DBmanager);
- }
- Student student = DBmanager.getStudentByID(id);
- session.setAttribute("student", student);
- request.getRequestDispatcher("details_student.jsp").forward(request, response);
- } catch(Throwable t) {
- t.printStackTrace();
- }
- }
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- doGet(request, response);
- }
- }
- //DatabaseManager.java
- package it.unipr.informatica.exercise4.database;
- import it.unipr.informatica.exercise4.model.FactoryModel;
- import it.unipr.informatica.exercise4.model.Student;
- import it.unipr.informatica.exercise4.model.implementation.FactoryModelImplementation;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.Statement;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.ResourceBundle;
- public class DatabaseManager {
- private FactoryModel factory;
- private String url;
- public DatabaseManager() {
- createFactoryModel();
- ResourceBundle bundle = ResourceBundle.getBundle("configuration");
- url = bundle.getString("database.url");
- String driver = bundle.getString("database.driver");
- try{
- Class.forName(driver);
- } catch(Throwable t) {
- t.printStackTrace();
- }
- }
- protected void createFactoryModel() {
- factory = new FactoryModelImplementation();
- }
- public void setFactoryModel(FactoryModel factory) {
- this.factory = factory;
- }
- private Connection createConnection() throws SQLException {
- return DriverManager.getConnection(url);
- }
- private void disconnect(Connection c, Statement s) {
- disconnect(c, s, null);
- }
- private void disconnect(Connection c, Statement s, ResultSet r) {
- try {
- r.close();
- } catch(Throwable t){}
- try {
- s.close();
- } catch(Throwable t){}
- try {
- c.close();
- } catch(Throwable t){}
- }
- public Student addStudent(String lastName, String firstName) throws SQLException{
- Connection c = null;
- PreparedStatement s = null;
- ResultSet r = null;
- Student res = null;
- try {
- c = createConnection();
- s = c.prepareStatement("INSERT INTO STUDENT(lastName, firstName) VALUES (?, ?)", Statement.RETURN_GENERATED_KEYS);
- s.setString(1, firstName);
- s.setString(2, lastName);
- s.execute();
- r = s.getGeneratedKeys();
- r.next();
- int id = r.getInt(1);
- res = factory.newStudent(id, lastName, firstName);
- } catch(SQLException e) {
- disconnect(c, s, r);
- throw e;
- }
- disconnect(c, s);
- return res;
- }
- public List<Student> getAllStudent() throws SQLException {
- Connection c = null;
- PreparedStatement s = null;
- ResultSet r = null;
- List<Student> res = new ArrayList<Student>();
- try {
- c = createConnection();
- s = c.prepareStatement("SELECT * FROM STUDENT");
- r = s.executeQuery();
- while(r.next()) {
- int id = r.getInt("ID");
- String lName = r.getString("lastName");
- String fName = r.getString("firstName");
- Student student = factory.newStudent(id, lName, fName);
- res.add(student);
- }
- } catch(SQLException e) {
- disconnect(c, s, r);
- throw e;
- }
- disconnect(c, s, r);
- return res;
- }
- public Student getStudentByID(int id) throws SQLException {
- Connection c = null;
- PreparedStatement s = null;
- ResultSet r = null;
- Student res = null;
- try {
- c = createConnection();
- s = c.prepareStatement("SELECT * FROM STUDENT WHERE = ?");
- s.setInt(1, id);
- r = s.executeQuery();
- if(r.next()) {
- String lName = r.getString("lastName");
- String fName = r.getString("firstName");
- res = factory.newStudent(id, lName, fName);
- }
- } catch(SQLException e) {
- disconnect(c, s, r);
- throw e;
- }
- disconnect(c, s, r);
- return res;
- }
- }
- //error.html
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>Information not found</title>
- </head>
- <body>
- <h1>Information not found in the DB</h1>
- </body>
- </html>
- //details.student.jsp
- <%@page import="java.util.LinkedList"%>
- <%@page import="it.unipr.informatica.exercise4.model.Student"%>
- <%@page import="java.util.List"%>
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Details student</title>
- </head>
- <body>
- <%
- Student student = (Student)session.getAttribute("details_student");
- if(student == null)
- //student = new Student;
- %>
- <p> <%=student.getID()%></p>
- <p> <%=student.getLastName() %> <p>
- <p> <%=student.getFirstName() %> <p>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement