Package enterprise.web_jpa_war.servlet

Source Code of enterprise.web_jpa_war.servlet.ListPersonServlet

/**
* Copyright 2011 The Apache Software Foundation
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements.  See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership.  The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package enterprise.web_jpa_war.servlet;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import enterprise.web_jpa_war.entity.Person;
import enterprise.web_jpa_war.entity.Role;
import enterprise.web_jpa_war.entity.RoleRelationship;

/**
* The servlet class to list Persons from database
*/
public class ListPersonServlet extends AbstractServlet {
   
    private static final String SQL_QUERY_PERSON_ROLES = "SELECT * FROM PERSON_ROLES " +
                "WHERE PERSON_ID = ? ";
  private static final String SQL_QUERY_PERSON = "SELECT * FROM PERSON ORDER BY ID";

  /** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
     
      Set<Person> persons = new LinkedHashSet<Person>();
      Person person = null;
      Connection connection = null;
      PreparedStatement statement4Person = null;
      ResultSet personResults = null;
     
    try {
      connection = this.getConnection();
        statement4Person = connection.prepareStatement(
            SQL_QUERY_PERSON);
        personResults = statement4Person.executeQuery();
       
        while(personResults.next()){
          person = new Person();
          person.setId(personResults.getLong("ID"));
          person.setLastName(personResults.getString("LAST_NAME"));
          person.setFirstName(personResults.getString("FIRST_NAME"));
          person.setAccountName(personResults.getString("ACCOUNT_NAME"));
          person.setPassword(personResults.getString("PASSWORD"));
         
          //find corresponding roles
          generateCorrespondingRoles(connection, person);
         
          persons.add(person);
        }
    } catch (SQLException e) {
      e.printStackTrace();
      throw new RuntimeException("get persons failed", e);
    } finally {
      closeStatement(statement4Person);
      closeConnection(connection);
    }
     
      request.setAttribute("personList",persons);
        //Forward to the jsp page for rendering
        request.getRequestDispatcher("/person/ListPerson.jsp").forward(request, response);
    }
   
    private void generateCorrespondingRoles(Connection connection, Person person) throws SQLException{
      Role role = null;
      RoleRelationship roleRelationship = null;
      List<RoleRelationship> roleRelationships = null;
      PreparedStatement statement4Role = null;
      ResultSet roleResults = null;
     
      statement4Role = connection.prepareStatement(SQL_QUERY_PERSON_ROLES);
    statement4Role.setLong(1, person.getId());
    roleResults = statement4Role.executeQuery();
   
    roleRelationships = new ArrayList<RoleRelationship>();
    while(roleResults.next()){
      role = new Role();
      role.setId(roleResults.getLong("PERSON_ROLE_ID"));
      role.setName(roleResults.getString("ROLE_NAME"));
     
      roleRelationship = new RoleRelationship();
      roleRelationship.setRole(role);
      roleRelationships.add(roleRelationship);
    }
    person.setRoleRelationships(roleRelationships);
    }
   
    // <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
     */
    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
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
   
    /** Returns a short description of the servlet.
     */
    public String getServletInfo() {
        return "ListPerson servlet";
    }
}
TOP

Related Classes of enterprise.web_jpa_war.servlet.ListPersonServlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.