Sunteți pe pagina 1din 70

JSP

Requerimientos:

● IDE: Netbeans 8.2


● Base de Datos: Postgres 9.x

APLICACIÓN 1: Person

PASO 1

En el postgres, crear la base de datos dblpa

PASO 2

Crear las tablas

-- Table: person
CREATE TABLE person
(
  idper serial NOT NULL, -- primary key de la tabla
  name character varying(60) NOT NULL, -- nombre de la persona
  age integer NOT NULL, --edad de la persona
  idprof integer NOT NULL, --referencia externa, a la tabla proffesion
  CONSTRAINT pk_person PRIMARY KEY (idper),
  CONSTRAINT uq_person_name_idprof UNIQUE (name, idprof),
  CONSTRAINT ck_person_age CHECK (age >= 18 AND age <= 120),
  CONSTRAINT fk_person_proffesion FOREIGN KEY (idprof) REFERENCES proffesion (id-
prof)
    ON UPDATE NO ACTION ON DELETE NO ACTION
);
ALTER TABLE person OWNER TO postgres;
COMMENT ON TABLE person IS 'Tabla para almacenar personas';
COMMENT ON COLUMN person.idper IS 'primary key de la tabla';
COMMENT ON COLUMN person.name IS 'nombre de la persona';
COMMENT ON COLUMN person.age IS 'edad de la persona';
COMMENT ON COLUMN person.idprof IS 'referencia externa, a la tabla proffesion';--
Table: proffesion
CREATE TABLE proffesion
(
  idprof serial NOT NULL, -- primary key de la tabla
  proffesion character varying(30) NOT NULL, -- Nombre de la profesion
  CONSTRAINT pk_proffesion PRIMARY KEY (idprof),
  CONSTRAINT uq_proffesion_proffesion UNIQUE (proffesion)
);
ALTER TABLE proffesion OWNER TO postgres;
COMMENT ON TABLE proffesion IS 'Tabla para guardar profesiones';
COMMENT ON COLUMN proffesion.idprof IS 'primary key de la tabla';
COMMENT ON COLUMN proffesion.proffesion IS 'Nombre de la profesion';

-- Table: person
CREATE TABLE person
(
  idper serial NOT NULL, -- primary key de la tabla
  name character varying(60) NOT NULL, -- nombre de la persona
  age integer NOT NULL, --edad de la persona
  idprof integer NOT NULL, --referencia externa, a la tabla proffesion
  CONSTRAINT pk_person PRIMARY KEY (idper),
  CONSTRAINT uq_person_name_idprof UNIQUE (name, idprof),
  CONSTRAINT ck_person_age CHECK (age >= 18 AND age <= 120),
  CONSTRAINT fk_person_proffesion FOREIGN KEY (idprof) REFERENCES proffesion
(idprof)
    ON UPDATE NO ACTION ON DELETE NO ACTION
);
ALTER TABLE person OWNER TO postgres;
COMMENT ON TABLE person IS 'Tabla para almacenar personas';
COMMENT ON COLUMN person.idper IS 'primary key de la tabla';
COMMENT ON COLUMN person.name IS 'nombre de la persona';
COMMENT ON COLUMN person.age IS 'edad de la persona';
COMMENT ON COLUMN person.idprof IS 'referencia externa, a la tabla proffesion';

PASO 3

Usando Netbeans, crear un proyecto java web de nombre WebAppDblpa

PASO 4

El package del proyecto es pe.gob.minam.sereno, sobre el cual se coloca la siguiente estruc-


tura:

● repository
● service
● controller
● entity
● model
● component
● constant
● resources

En la carpeta WEB-INF\lib\flexy-pool-core copiar las librerias para el pool connection

● commons-dbcp2-2.1.1.jar
● commons-logging-1.2.jar
● commons-pool2-2.4.2.jar
● geronimo-jta_1.1_spec-1.1.1.jar

Se agrega sólo los siguientes jars: commons-dbcp2-2.1.1.jar, commons-logging-1.2.jar,


commons-pool2-2.4.2.jar

PASO 5

En el Netbeans, agregar la librería de conexión a la base de datos postgres.

En un archivo de recursos, establecer los parámetros de conexión a la base de datos. El


archivo es dblpa.properties, donde dblpa es el nombre de la base de datos. 

Package: pe.gob.minam.sereno.resources.jdbc
# Parametros de conexion a la base de datos
usuario = postgres
password = postgres
url = jdbc:postgresql://localhost:5432/dblpa?useSSL=false
driver = org.postgresql.Driver
# parametros adiconal para el pool coneccion
initialSize = 3
maxTotal = 500

PASO 6

Conexión a la base de datos

import java.sql.Connection;
import java.sql.SQLException;
import java.util.ResourceBundle;
import org.apache.commons.dbcp2.BasicDataSource;

public class ConectaDb {

    private final String usuario;


    private final String password;
    private final String url;
    private final String driver;
    private final Integer initialSize;
    private final Integer maxTotal;

    public ConectaDb(String scheme) {


        String path = "pe.gob.minam.sereno.resources.jdbc." + scheme
        ResourceBundle rb = ResourceBundle.getBundle(path);
        this.usuario = rb.getString("usuario");
        this.password = rb.getString("password");
        this.url = rb.getString("url");
        this.driver = rb.getString("driver");
        this.initialSize = Integer.valueOf(rb.getString("initialSize"));
        this.maxTotal = Integer.valueOf(rb.getString("maxTotal"));
    }

    public Connection getConnection() {


        BasicDataSource ds = new BasicDataSource();

        ds.setDriverClassName(driver);
        ds.setUsername(usuario);
        ds.setPassword(password);
        ds.setUrl(url);
        ds.setInitialSize(initialSize);
        ds.setMaxTotal(maxTotal);

        Connection cn = null;
        try {
            cn = ds.getConnection();
        } catch (SQLException e) {
        } catch (Exception e) {
        }
        return cn;
    }
}package pe.gob.minam.sereno.component;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.ResourceBundle;
import org.apache.commons.dbcp2.BasicDataSource;

public class ConectaDb {

    private final String usuario;


    private final String password;
    private final String url;
    private final String driver;
    private final Integer initialSize;
    private final Integer maxTotal;

    public ConectaDb(String scheme) {


        String path = "pe.gob.minam.sereno.resources.jdbc." + scheme
        ResourceBundle rb = ResourceBundle.getBundle(path);
        this.usuario = rb.getString("usuario");
        this.password = rb.getString("password");
        this.url = rb.getString("url");
        this.driver = rb.getString("driver");
        this.initialSize = Integer.valueOf(rb.getString("initialSize"));
        this.maxTotal = Integer.valueOf(rb.getString("maxTotal"));
    }

    public Connection getConnection() {


        BasicDataSource ds = new BasicDataSource();

        ds.setDriverClassName(driver);
        ds.setUsername(usuario);
        ds.setPassword(password);
        ds.setUrl(url);
        ds.setInitialSize(initialSize);
        ds.setMaxTotal(maxTotal);

        Connection cn = null;
        try {
            cn = ds.getConnection();
        } catch (SQLException e) {
        } catch (Exception e) {
        }
        return cn;
    }
}
PASO 7

Crear la variable global para conexión

public class EsquemaConstant {


    public static final String ESQUEMADB = "dblpa";
}package pe.gob.minam.sereno.constant;

public class EsquemaConstant {


    public static final String ESQUEMADB = "dblpa";
}

PASO 8

Crear las entitys.


Tabla proffesion

public class Proffesion {


    private Integer idprof;
    private String proffesion;

    public Proffesion() {
    }

    public Integer getIdprof() {


        return idprof;
    }

    public void setIdprof(Integer idprof) {


        this.idprof = idprof;
    }

    public String getProffesion() {


        return proffesion;
    }
    public void setProffesion(String proffesion) {
        this.proffesion = proffesion;
    }
}package pe.gob.minam.sereno.entity;

public class Proffesion {


    private Integer idprof;
    private String proffesion;

    public Proffesion() {
    }

    public Integer getIdprof() {


        return idprof;
    }

    public void setIdprof(Integer idprof) {


        this.idprof = idprof;
    }

    public String getProffesion() {


        return proffesion;
    }

    public void setProffesion(String proffesion) {


        this.proffesion = proffesion;
    }
}

Tabla person

public class Person {


    private Integer idper;
    private String name;
    private Integer age;
    private Integer idprof;

    public Person() {
    }

    public Integer getIdper() {


        return idper;
    }

    public void setIdper(Integer idper) {


        this.idper = idper;
    }

    public String getName() {


        return name;
    }

    public void setName(String name) {


        this.name = name;
    }

    public Integer getAge() {


        return age;
    }

    public void setAge(Integer age) {


        this.age = age;
    }

    public Integer getIdprof() {


        return idprof;
    }

    public void setIdprof(Integer idprof) {


        this.idprof = idprof;
    }
}package pe.gob.minam.sereno.entity;

public class Person {


    private Integer idper;
    private String name;
    private Integer age;
    private Integer idprof;

    public Person() {
    }

    public Integer getIdper() {


        return idper;
    }

    public void setIdper(Integer idper) {


        this.idper = idper;
    }

    public String getName() {


        return name;
    }

    public void setName(String name) {


        this.name = name;
    }

    public Integer getAge() {


        return age;
    }

    public void setAge(Integer age) {


        this.age = age;
    }

    public Integer getIdprof() {


        return idprof;
    }

    public void setIdprof(Integer idprof) {


        this.idprof = idprof;
    }
}

PASO 9

Crear el repository
Proffesion:

import java.util.List;
import pe.gob.minam.sereno.entity.Proffesion;

public interface ProffesionRepository {

    public String insert(Proffesion dto);


    public String delete(Integer id);
    public Proffesion get(Integer id);
    public List<Proffesion> query();
    public String update(Proffesion dto);
}package pe.gob.minam.sereno.repository;

import java.util.List;
import pe.gob.minam.sereno.entity.Proffesion;

public interface ProffesionRepository {

    public String insert(Proffesion dto);


    public String delete(Integer id);
    public Proffesion get(Integer id);
    public List<Proffesion> query();
    public String update(Proffesion dto);
}

Implementación de Proffesion

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import pe.gob.minam.sereno.component.ConectaDb;
import pe.gob.minam.sereno.constant.EsquemaConstant;
import pe.gob.minam.sereno.entity.Proffesion;
import pe.gob.minam.sereno.repository.ProffesionRepository;

public class ProffesionRepositoryImpl implements ProffesionRepository {

    private static final String nombreEsquemaDB = EsquemaConstant.ESQUEMADB;


    private final ConectaDb ds;

    public ProffesionRepositoryImpl() {
        ds = new ConectaDb(nombreEsquemaDB);
    }

    @Override
    public String insert(Proffesion dto) {
        String result = null;

        String sql = "INSERT INTO proffesion(proffesion) VALUES (?)";

        Connection cn = ds.getConnection();
        if (cn != null) {
            try {
                PreparedStatement ps = cn.prepareStatement(sql);
                ps.setString(1, dto.getProffesion());
                int ctos = ps.executeUpdate();
                if (ctos == 0) {
                    throw new SQLException("0 filas afectadas");
                }
            } catch (SQLException ex) {
                result = ex.getMessage();
            } finally {
                try {
                    cn.close();
                } catch (Exception ex) {
                    result = ex.getMessage();
                }
            }
        }

        return result;
    }

    @Override
    public String delete(Integer id) {
        String result = null;
        String sql = "DELETE FROM proffesion WHERE idprof = ?";
        Connection cn = ds.getConnection();
        if (cn != null) {
            try {
                PreparedStatement ps = cn.prepareStatement(sql);
                ps.setInt(1, id);
                int ctos = ps.executeUpdate();
                if (ctos == 0) {
                    throw new SQLException("0 filas afectadas");
                }
            } catch (SQLException ex) {
                result = ex.getMessage();
            } finally {
                try {
                    cn.close();
                } catch (Exception ex) {
                    result = ex.getMessage();
                }
            }
        }
        return result;
    }

    @Override
    public Proffesion get(Integer id) {
        Proffesion dto = null;
        String sql = "SELECT idprof, proffesion FROM proffesion WHERE idprof = ?";
        Connection cn = ds.getConnection();
        if (cn != null) {
            try {
                PreparedStatement ps = cn.prepareStatement(sql);
                ps.setInt(1, id);
                ResultSet rs = ps.executeQuery();
                if(rs.next()){
                    dto = new Proffesion();
                    dto.setIdprof(rs.getInt(1));
                    dto.setProffesion(rs.getString(2));
                }
            } catch (SQLException ex) {
            }finally {
                try {
                    cn.close();
                } catch (Exception ex) {
                }
            }
        }
        return dto;
    }

    @Override
    public List<Proffesion> query() {
        List<Proffesion> list = null;
        String sql = "SELECT idprof, proffesion FROM proffesion";
        Connection cn = ds.getConnection();
        if (cn != null) {
            try {
                PreparedStatement ps = cn.prepareStatement(sql);
                ResultSet rs = ps.executeQuery();
                list = new LinkedList<>();
                while(rs.next()){
                    Proffesion dto = new Proffesion();
                    dto.setIdprof(rs.getInt(1));
                    dto.setProffesion(rs.getString(2));
                    list.add(dto);
                }
            } catch (SQLException ex) {
            }finally {
                try {
                    cn.close();
                } catch (Exception ex) {
                }
            }
        }
        return list;
    }

    @Override
    public String update(Proffesion dto) {
        String result = null;

        String sql = ""


                + "UPDATE proffesion "
                + "SET proffesion = ? "
                + "WHERE idprof = ?"
                + "";

        Connection cn = ds.getConnection();
        if (cn != null) {
            try {
                PreparedStatement ps = cn.prepareStatement(sql);
                ps.setString(1, dto.getProffesion());
                ps.setInt(2, dto.getIdprof());
                int ctos = ps.executeUpdate();
                if (ctos == 0) {
                    throw new SQLException("0 filas afectadas");
                }
            } catch (SQLException ex) {
                result = ex.getMessage();
            } finally {
                try {
                    cn.close();
                } catch (Exception ex) {
                    result = ex.getMessage();
                }
            }
        }

        return result;
    }
}package pe.gob.minam.sereno.repository.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import pe.gob.minam.sereno.component.ConectaDb;
import pe.gob.minam.sereno.constant.EsquemaConstant;
import pe.gob.minam.sereno.entity.Proffesion;
import pe.gob.minam.sereno.repository.ProffesionRepository;

public class ProffesionRepositoryImpl implements ProffesionRepository {

    private static final String nombreEsquemaDB = EsquemaConstant.ESQUEMADB;


    private final ConectaDb ds;

    public ProffesionRepositoryImpl() {
        ds = new ConectaDb(nombreEsquemaDB);
    }

    @Override
    public String insert(Proffesion dto) {
        String result = null;

        String sql = "INSERT INTO proffesion(proffesion) VALUES (?)";

        Connection cn = ds.getConnection();
        if (cn != null) {
            try {
                PreparedStatement ps = cn.prepareStatement(sql);
                ps.setString(1, dto.getProffesion());
                int ctos = ps.executeUpdate();
                if (ctos == 0) {
                    throw new SQLException("0 filas afectadas");
                }
            } catch (SQLException ex) {
                result = ex.getMessage();
            } finally {
                try {
                    cn.close();
                } catch (Exception ex) {
                    result = ex.getMessage();
                }
            }
        }

        return result;
    }

    @Override
    public String delete(Integer id) {
        String result = null;
        String sql = "DELETE FROM proffesion WHERE idprof = ?";
        Connection cn = ds.getConnection();
        if (cn != null) {
            try {
                PreparedStatement ps = cn.prepareStatement(sql);
                ps.setInt(1, id);
                int ctos = ps.executeUpdate();
                if (ctos == 0) {
                    throw new SQLException("0 filas afectadas");
                }
            } catch (SQLException ex) {
                result = ex.getMessage();
            } finally {
                try {
                    cn.close();
                } catch (Exception ex) {
                    result = ex.getMessage();
                }
            }
        }
        return result;
    }

    @Override
    public Proffesion get(Integer id) {
        Proffesion dto = null;
        String sql = "SELECT idprof, proffesion FROM proffesion WHERE idprof =
?";
        Connection cn = ds.getConnection();
        if (cn != null) {
            try {
                PreparedStatement ps = cn.prepareStatement(sql);
                ps.setInt(1, id);
                ResultSet rs = ps.executeQuery();
                if(rs.next()){
                    dto = new Proffesion();
                    dto.setIdprof(rs.getInt(1));
                    dto.setProffesion(rs.getString(2));
                }
            } catch (SQLException ex) {
            }finally {
                try {
                    cn.close();
                } catch (Exception ex) {
                }
            }
        }
        return dto;
    }
    @Override
    public List<Proffesion> query() {
        List<Proffesion> list = null;
        String sql = "SELECT idprof, proffesion FROM proffesion";
        Connection cn = ds.getConnection();
        if (cn != null) {
            try {
                PreparedStatement ps = cn.prepareStatement(sql);
                ResultSet rs = ps.executeQuery();
                list = new LinkedList<>();
                while(rs.next()){
                    Proffesion dto = new Proffesion();
                    dto.setIdprof(rs.getInt(1));
                    dto.setProffesion(rs.getString(2));
                    list.add(dto);
                }
            } catch (SQLException ex) {
            }finally {
                try {
                    cn.close();
                } catch (Exception ex) {
                }
            }
        }
        return list;
    }

    @Override
    public String update(Proffesion dto) {
        String result = null;

        String sql = ""


                + "UPDATE proffesion "
                + "SET proffesion = ? "
                + "WHERE idprof = ?"
                + "";

        Connection cn = ds.getConnection();
        if (cn != null) {
            try {
                PreparedStatement ps = cn.prepareStatement(sql);
                ps.setString(1, dto.getProffesion());
                ps.setInt(2, dto.getIdprof());
                int ctos = ps.executeUpdate();
                if (ctos == 0) {
                    throw new SQLException("0 filas afectadas");
                }
            } catch (SQLException ex) {
                result = ex.getMessage();
            } finally {
                try {
                    cn.close();
                } catch (Exception ex) {
                    result = ex.getMessage();
                }
            }
        }

        return result;
    }
}

Person:

import java.util.List;
import pe.gob.minam.sereno.entity.Person;
public interface PersonRepository {
    
    public String insert(Person dto);
    public String delete(Integer id);
    public Person get(Integer id);
    public List<Person> query();
    public String update(Person dto);   
}package pe.gob.minam.sereno.repository;

import java.util.List;
import pe.gob.minam.sereno.entity.Person;

public interface PersonRepository {


    
    public String insert(Person dto);
    public String delete(Integer id);
    public Person get(Integer id);
    public List<Person> query();
    public String update(Person dto);   
}

Implementación de Person:

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import pe.gob.minam.sereno.component.ConectaDb;
import pe.gob.minam.sereno.constant.EsquemaConstant;
import pe.gob.minam.sereno.entity.Person;
import pe.gob.minam.sereno.repository.PersonRepository;
public class PersonRepositoryImpl implements PersonRepository {

    private static final String nombreEsquemaDB = EsquemaConstant.ESQUEMADB;


    private final ConectaDb ds;

    public PersonRepositoryImpl() {
        ds = new ConectaDb(nombreEsquemaDB);
    }

    @Override
    public String insert(Person dto) {
        String result = null;

        String sql = ""


                + "INSERT INTO person(name, age, idprof) "
                + "VALUES (?, ?, ?)"
                + "";

        Connection cn = ds.getConnection();
        if (cn != null) {
            try {
                PreparedStatement ps = cn.prepareStatement(sql);
                ps.setString(1, dto.getName());
                ps.setInt(2, dto.getAge());
                ps.setInt(3, dto.getIdprof());
                int ctos = ps.executeUpdate();
                if (ctos == 0) {
                    throw new SQLException("0 filas afectadas");
                }
            } catch (SQLException ex) {
                result = ex.getMessage();
            } finally {
                try {
                    cn.close();
                } catch (Exception ex) {
                    result = ex.getMessage();
                }
            }
        }

        return result;
    }

    @Override
    public String delete(Integer id) {
        String result = null;
        String sql = "DELETE FROM person WHERE idper = ?";
        Connection cn = ds.getConnection();
        if (cn != null) {
            try {
                PreparedStatement ps = cn.prepareStatement(sql);
                ps.setInt(1, id);
                int ctos = ps.executeUpdate();
                if (ctos == 0) {
                    throw new SQLException("0 filas afectadas");
                }
            } catch (SQLException ex) {
                result = ex.getMessage();
            } finally {
                try {
                    cn.close();
                } catch (Exception ex) {
                    result = ex.getMessage();
                }
            }
        }
        return result;
    }

    @Override
    public Person get(Integer id) {
        Person dto = null;
        String sql = "SELECT idper, name, age, idprof FROM person WHERE idper = ?";
        Connection cn = ds.getConnection();
        if (cn != null) {
            try {
                PreparedStatement ps = cn.prepareStatement(sql);
                ps.setInt(1, id);
                ResultSet rs = ps.executeQuery();
                if (rs.next()) {
                    dto = new Person();
                    dto.setIdper(rs.getInt(1));
                    dto.setName(rs.getString(2));
                    dto.setAge(rs.getInt(3));
                    dto.setIdprof(rs.getInt(4));
                }
            } catch (SQLException ex) {
            } finally {
                try {
                    cn.close();
                } catch (Exception ex) {
                }
            }
        }
        return dto;
    }

    @Override
    public List<Person> query() {
        List<Person> list = null;
        String sql = "SELECT idper, name, age, idprof FROM person";
        Connection cn = ds.getConnection();
        if (cn != null) {
            try {
                PreparedStatement ps = cn.prepareStatement(sql);
                ResultSet rs = ps.executeQuery();
                list = new LinkedList<>();
                while (rs.next()) {
                    Person dto = new Person();
                    dto.setIdper(rs.getInt(1));
                    dto.setName(rs.getString(2));
                    dto.setAge(rs.getInt(3));
                    dto.setIdprof(rs.getInt(4));
                    list.add(dto);
                }
            } catch (SQLException ex) {
            } finally {
                try {
                    cn.close();
                } catch (Exception ex) {
                }
            }
        }
        return list;
    }

    @Override
    public String update(Person dto) {
        String result = null;

        String sql = ""


                + "UPDATE person "
                + "SET name = ?, age = ?, idprof = ? "
                + "WHERE idper = ?"
                + "";

        Connection cn = ds.getConnection();
        if (cn != null) {
            try {
                PreparedStatement ps = cn.prepareStatement(sql);
                ps.setString(1, dto.getName());
                ps.setInt(2, dto.getAge());
                ps.setInt(3, dto.getIdprof());
                ps.setInt(4, dto.getIdper());
                int ctos = ps.executeUpdate();
                if (ctos == 0) {
                    throw new SQLException("0 filas afectadas");
                }
            } catch (SQLException ex) {
                result = ex.getMessage();
            } finally {
                try {
                    cn.close();
                } catch (Exception ex) {
                    result = ex.getMessage();
                }
            }
        }

        return result;
    }
}package pe.gob.minam.sereno.repository.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import pe.gob.minam.sereno.component.ConectaDb;
import pe.gob.minam.sereno.constant.EsquemaConstant;
import pe.gob.minam.sereno.entity.Person;
import pe.gob.minam.sereno.repository.PersonRepository;

public class PersonRepositoryImpl implements PersonRepository {

    private static final String nombreEsquemaDB = EsquemaConstant.ESQUEMADB;


    private final ConectaDb ds;

    public PersonRepositoryImpl() {
        ds = new ConectaDb(nombreEsquemaDB);
    }

    @Override
    public String insert(Person dto) {
        String result = null;

        String sql = ""


                + "INSERT INTO person(name, age, idprof) "
                + "VALUES (?, ?, ?)"
                + "";

        Connection cn = ds.getConnection();
        if (cn != null) {
            try {
                PreparedStatement ps = cn.prepareStatement(sql);
                ps.setString(1, dto.getName());
                ps.setInt(2, dto.getAge());
                ps.setInt(3, dto.getIdprof());
                int ctos = ps.executeUpdate();
                if (ctos == 0) {
                    throw new SQLException("0 filas afectadas");
                }
            } catch (SQLException ex) {
                result = ex.getMessage();
            } finally {
                try {
                    cn.close();
                } catch (Exception ex) {
                    result = ex.getMessage();
                }
            }
        }

        return result;
    }

    @Override
    public String delete(Integer id) {
        String result = null;
        String sql = "DELETE FROM person WHERE idper = ?";
        Connection cn = ds.getConnection();
        if (cn != null) {
            try {
                PreparedStatement ps = cn.prepareStatement(sql);
                ps.setInt(1, id);
                int ctos = ps.executeUpdate();
                if (ctos == 0) {
                    throw new SQLException("0 filas afectadas");
                }
            } catch (SQLException ex) {
                result = ex.getMessage();
            } finally {
                try {
                    cn.close();
                } catch (Exception ex) {
                    result = ex.getMessage();
                }
            }
        }
        return result;
    }

    @Override
    public Person get(Integer id) {
        Person dto = null;
        String sql = "SELECT idper, name, age, idprof FROM person WHERE idper =
?";
        Connection cn = ds.getConnection();
        if (cn != null) {
            try {
                PreparedStatement ps = cn.prepareStatement(sql);
                ps.setInt(1, id);
                ResultSet rs = ps.executeQuery();
                if (rs.next()) {
                    dto = new Person();
                    dto.setIdper(rs.getInt(1));
                    dto.setName(rs.getString(2));
                    dto.setAge(rs.getInt(3));
                    dto.setIdprof(rs.getInt(4));
                }
            } catch (SQLException ex) {
            } finally {
                try {
                    cn.close();
                } catch (Exception ex) {
                }
            }
        }
        return dto;
    }

    @Override
    public List<Person> query() {
        List<Person> list = null;
        String sql = "SELECT idper, name, age, idprof FROM person";
        Connection cn = ds.getConnection();
        if (cn != null) {
            try {
                PreparedStatement ps = cn.prepareStatement(sql);
                ResultSet rs = ps.executeQuery();
                list = new LinkedList<>();
                while (rs.next()) {
                    Person dto = new Person();
                    dto.setIdper(rs.getInt(1));
                    dto.setName(rs.getString(2));
                    dto.setAge(rs.getInt(3));
                    dto.setIdprof(rs.getInt(4));
                    list.add(dto);
                }
            } catch (SQLException ex) {
            } finally {
                try {
                    cn.close();
                } catch (Exception ex) {
                }
            }
        }
        return list;
    }
    @Override
    public String update(Person dto) {
        String result = null;

        String sql = ""


                + "UPDATE person "
                + "SET name = ?, age = ?, idprof = ? "
                + "WHERE idper = ?"
                + "";

        Connection cn = ds.getConnection();
        if (cn != null) {
            try {
                PreparedStatement ps = cn.prepareStatement(sql);
                ps.setString(1, dto.getName());
                ps.setInt(2, dto.getAge());
                ps.setInt(3, dto.getIdprof());
                ps.setInt(4, dto.getIdper());
                int ctos = ps.executeUpdate();
                if (ctos == 0) {
                    throw new SQLException("0 filas afectadas");
                }
            } catch (SQLException ex) {
                result = ex.getMessage();
            } finally {
                try {
                    cn.close();
                } catch (Exception ex) {
                    result = ex.getMessage();
                }
            }
        }
        return result;
    }
}

PASO 10

Crear el model.
Proffesion

public class ProffesionModel {


    private Integer idprof;
    private String proffesion;    

    public ProffesionModel() {
    }

    public Integer getIdprof() {


        return idprof;
    }

    public void setIdprof(Integer idprof) {


        this.idprof = idprof;
    }

    public String getProffesion() {


        return proffesion;
    }

    public void setProffesion(String proffesion) {


        this.proffesion = proffesion;
    }
}package pe.gob.minam.sereno.model;

public class ProffesionModel {


    private Integer idprof;
    private String proffesion;    
    public ProffesionModel() {
    }

    public Integer getIdprof() {


        return idprof;
    }

    public void setIdprof(Integer idprof) {


        this.idprof = idprof;
    }

    public String getProffesion() {


        return proffesion;
    }

    public void setProffesion(String proffesion) {


        this.proffesion = proffesion;
    }
}

Person

import pe.gob.minam.sereno.entity.Proffesion;

public class PersonModel {


    
    private Integer idper;
    private String name;
    private Integer age;
    private Integer idprof;
    private Proffesion proffesion = new Proffesion();

    public PersonModel() {
    }

    public Integer getIdper() {


        return idper;
    }

    public void setIdper(Integer idper) {


        this.idper = idper;
    }

    public String getName() {


        return name;
    }

    public void setName(String name) {


        this.name = name;
    }

    public Integer getAge() {


        return age;
    }

    public void setAge(Integer age) {


        this.age = age;
    }

    public Integer getIdprof() {


        return idprof;
    }

    public void setIdprof(Integer idprof) {


        this.idprof = idprof;
    }

    public Proffesion getProffesion() {


        return proffesion;
    }

    public void setProffesion(Proffesion proffesion) {


        this.proffesion = proffesion;
    }   
}package pe.gob.minam.sereno.model;

import pe.gob.minam.sereno.entity.Proffesion;

public class PersonModel {


    
    private Integer idper;
    private String name;
    private Integer age;
    private Integer idprof;
    private Proffesion proffesion = new Proffesion();

    public PersonModel() {
    }

    public Integer getIdper() {


        return idper;
    }

    public void setIdper(Integer idper) {


        this.idper = idper;
    }

    public String getName() {


        return name;
    }

    public void setName(String name) {


        this.name = name;
    }

    public Integer getAge() {


        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }

    public Integer getIdprof() {


        return idprof;
    }

    public void setIdprof(Integer idprof) {


        this.idprof = idprof;
    }

    public Proffesion getProffesion() {


        return proffesion;
    }

    public void setProffesion(Proffesion proffesion) {


        this.proffesion = proffesion;
    }   
}

PASO 11

Crear el converter (entre entity y model - viceversa)


Proffesion

import pe.gob.minam.sereno.entity.Proffesion;
import pe.gob.minam.sereno.model.ProffesionModel;

public interface ProffessionConverter {

    public Proffesion entity(ProffesionModel model);

    public ProffesionModel model(Proffesion entity);


}package pe.gob.minam.sereno.converter;
import pe.gob.minam.sereno.entity.Proffesion;
import pe.gob.minam.sereno.model.ProffesionModel;

public interface ProffessionConverter {

    public Proffesion entity(ProffesionModel model);

    public ProffesionModel model(Proffesion entity);


}

Implementacion para Proffesion

import pe.gob.minam.sereno.converter.ProffessionConverter;
import pe.gob.minam.sereno.entity.Proffesion;
import pe.gob.minam.sereno.model.ProffesionModel;

public class ProffessionConverterImpl implements ProffessionConverter{

    @Override
    public Proffesion entity(ProffesionModel model) {
        Proffesion dtoEntity = new Proffesion();
        dtoEntity.setIdprof(model.getIdprof());
        dtoEntity.setProffesion(model.getProffesion());
        return dtoEntity;
    }

    @Override
    public ProffesionModel model(Proffesion entity) {
       ProffesionModel dtoModel = new ProffesionModel();
       dtoModel.setIdprof(entity.getIdprof());
       dtoModel.setProffesion(entity.getProffesion());
       return dtoModel;
    }   
}package pe.gob.minam.sereno.converter.impl;
import pe.gob.minam.sereno.converter.ProffessionConverter;
import pe.gob.minam.sereno.entity.Proffesion;
import pe.gob.minam.sereno.model.ProffesionModel;

public class ProffessionConverterImpl implements ProffessionConverter{

    @Override
    public Proffesion entity(ProffesionModel model) {
        Proffesion dtoEntity = new Proffesion();
        dtoEntity.setIdprof(model.getIdprof());
        dtoEntity.setProffesion(model.getProffesion());
        return dtoEntity;
    }

    @Override
    public ProffesionModel model(Proffesion entity) {
       ProffesionModel dtoModel = new ProffesionModel();
       dtoModel.setIdprof(entity.getIdprof());
       dtoModel.setProffesion(entity.getProffesion());
       return dtoModel;
    }   
}

Person

import pe.gob.minam.sereno.entity.Person;
import pe.gob.minam.sereno.model.PersonModel;

public interface PersonConverter {


    
    public Person entity(PersonModel model);

    public PersonModel model(Person entity);    


}package pe.gob.minam.sereno.converter;
import pe.gob.minam.sereno.entity.Person;
import pe.gob.minam.sereno.model.PersonModel;

public interface PersonConverter {


    
    public Person entity(PersonModel model);

    public PersonModel model(Person entity);    


}

Implementación para Person

import pe.gob.minam.sereno.converter.PersonConverter;
import pe.gob.minam.sereno.entity.Person;
import pe.gob.minam.sereno.entity.Proffesion;
import pe.gob.minam.sereno.model.PersonModel;
import pe.gob.minam.sereno.repository.ProffesionRepository;
import pe.gob.minam.sereno.repository.impl.ProffesionRepositoryImpl;

public class PersonConverterImpl implements PersonConverter {

    @Override
    public Person entity(PersonModel model) {
        Person dtoEntity = new Person();
        dtoEntity.setIdper(model.getIdper());
        dtoEntity.setName(model.getName());
        dtoEntity.setAge(model.getAge());
        dtoEntity.setIdprof(model.getIdprof());
        return dtoEntity;
    }

    @Override
    public PersonModel model(Person entity) {
        ProffesionRepository pr = new ProffesionRepositoryImpl();
        Proffesion proffesion = pr.get(entity.getIdprof());
        PersonModel dtoModel = new PersonModel();
        dtoModel.setIdper(entity.getIdper());
        dtoModel.setName(entity.getName());
        dtoModel.setAge(entity.getAge());
        dtoModel.setIdprof(entity.getIdprof());
        dtoModel.setProffesion(proffesion);
        
        return dtoModel;
    }
}package pe.gob.minam.sereno.converter.impl;

import pe.gob.minam.sereno.converter.PersonConverter;
import pe.gob.minam.sereno.entity.Person;
import pe.gob.minam.sereno.entity.Proffesion;
import pe.gob.minam.sereno.model.PersonModel;
import pe.gob.minam.sereno.repository.ProffesionRepository;
import pe.gob.minam.sereno.repository.impl.ProffesionRepositoryImpl;

public class PersonConverterImpl implements PersonConverter {

    @Override
    public Person entity(PersonModel model) {
        Person dtoEntity = new Person();
        dtoEntity.setIdper(model.getIdper());
        dtoEntity.setName(model.getName());
        dtoEntity.setAge(model.getAge());
        dtoEntity.setIdprof(model.getIdprof());
        return dtoEntity;
    }

    @Override
    public PersonModel model(Person entity) {
        ProffesionRepository pr = new ProffesionRepositoryImpl();
        Proffesion proffesion = pr.get(entity.getIdprof());
        PersonModel dtoModel = new PersonModel();
        dtoModel.setIdper(entity.getIdper());
        dtoModel.setName(entity.getName());
        dtoModel.setAge(entity.getAge());
        dtoModel.setIdprof(entity.getIdprof());
        dtoModel.setProffesion(proffesion);
        
        return dtoModel;
    }
}

PASO 12

Crear los services


Proffesion

import java.util.List;
import pe.gob.minam.sereno.model.ProffesionModel;

public interface ProffessionService {

    public String insert(ProffesionModel dtoModel);

    public String delete(Integer id);

    public ProffesionModel get(Integer id);

    public List<ProffesionModel> query();

    public String update(ProffesionModel dtoModel);


}package pe.gob.minam.sereno.services;

import java.util.List;
import pe.gob.minam.sereno.model.ProffesionModel;

public interface ProffessionService {


    public String insert(ProffesionModel dtoModel);

    public String delete(Integer id);

    public ProffesionModel get(Integer id);

    public List<ProffesionModel> query();

    public String update(ProffesionModel dtoModel);


}

Implementacion para Proffesion

import java.util.LinkedList;
import java.util.List;
import pe.gob.minam.sereno.converter.ProffessionConverter;
import pe.gob.minam.sereno.converter.impl.ProffessionConverterImpl;
import pe.gob.minam.sereno.entity.Proffesion;
import pe.gob.minam.sereno.model.ProffesionModel;
import pe.gob.minam.sereno.repository.ProffesionRepository;
import pe.gob.minam.sereno.repository.impl.ProffesionRepositoryImpl;
import pe.gob.minam.sereno.services.ProffessionService;

public class ProffessionServiceImpl implements ProffessionService{

    ProffesionRepository r = null;
    ProffessionConverter converter = null;
    
    public ProffessionServiceImpl() {
        r = new ProffesionRepositoryImpl();
        converter = new ProffessionConverterImpl();
    }

    @Override
    public String insert(ProffesionModel dtoModel) {
        Proffesion dtoEntity = converter.entity(dtoModel);
        return r.insert(dtoEntity);
    }

    @Override
    public String delete(Integer id) {
        return r.delete(id);
    }

    @Override
    public ProffesionModel get(Integer id) {
        Proffesion dtoEntity = r.get(id);
        ProffesionModel dtoModel = converter.model(dtoEntity);
        return dtoModel;
    }

    @Override
    public List<ProffesionModel> query() {
        List<Proffesion> listEntity = r.query();
        List<ProffesionModel> listModel = new LinkedList<>();
        for(Proffesion dtoEntity:listEntity){
            listModel.add(converter.model(dtoEntity));
        }
        return listModel;
    }

    @Override
    public String update(ProffesionModel dtoModel) {
        return r.update(converter.entity(dtoModel));
    }
}package pe.gob.minam.sereno.services.impl;

import java.util.LinkedList;
import java.util.List;
import pe.gob.minam.sereno.converter.ProffessionConverter;
import pe.gob.minam.sereno.converter.impl.ProffessionConverterImpl;
import pe.gob.minam.sereno.entity.Proffesion;
import pe.gob.minam.sereno.model.ProffesionModel;
import pe.gob.minam.sereno.repository.ProffesionRepository;
import pe.gob.minam.sereno.repository.impl.ProffesionRepositoryImpl;
import pe.gob.minam.sereno.services.ProffessionService;

public class ProffessionServiceImpl implements ProffessionService{

    ProffesionRepository r = null;
    ProffessionConverter converter = null;
    
    public ProffessionServiceImpl() {
        r = new ProffesionRepositoryImpl();
        converter = new ProffessionConverterImpl();
    }

    @Override
    public String insert(ProffesionModel dtoModel) {
        Proffesion dtoEntity = converter.entity(dtoModel);
        return r.insert(dtoEntity);
    }

    @Override
    public String delete(Integer id) {
        return r.delete(id);
    }

    @Override
    public ProffesionModel get(Integer id) {
        Proffesion dtoEntity = r.get(id);
        ProffesionModel dtoModel = converter.model(dtoEntity);
        return dtoModel;
    }

    @Override
    public List<ProffesionModel> query() {
        List<Proffesion> listEntity = r.query();
        List<ProffesionModel> listModel = new LinkedList<>();
        for(Proffesion dtoEntity:listEntity){
            listModel.add(converter.model(dtoEntity));
        }
        return listModel;
    }

    @Override
    public String update(ProffesionModel dtoModel) {
        return r.update(converter.entity(dtoModel));
    }
}

Person

import java.util.List;
import pe.gob.minam.sereno.model.PersonModel;

public interface PersonService {

    public String insert(PersonModel dtoModel);

    public String delete(Integer id);

    public PersonModel get(Integer id);

    public List<PersonModel> query();

    public String update(PersonModel dtoModel);


}package pe.gob.minam.sereno.services;

import java.util.List;
import pe.gob.minam.sereno.model.PersonModel;

public interface PersonService {

    public String insert(PersonModel dtoModel);

    public String delete(Integer id);

    public PersonModel get(Integer id);

    public List<PersonModel> query();

    public String update(PersonModel dtoModel);


}

Implementación para Person

import java.util.LinkedList;
import java.util.List;
import pe.gob.minam.sereno.converter.PersonConverter;
import pe.gob.minam.sereno.converter.impl.PersonConverterImpl;
import pe.gob.minam.sereno.entity.Person;
import pe.gob.minam.sereno.model.PersonModel;
import pe.gob.minam.sereno.repository.PersonRepository;
import pe.gob.minam.sereno.repository.impl.PersonRepositoryImpl;
import pe.gob.minam.sereno.services.PersonService;

public class PersonServiceImpl implements PersonService {

    PersonRepository r = null;
    PersonConverter converter = null;

    public PersonServiceImpl() {
        r = new PersonRepositoryImpl();
        converter = new PersonConverterImpl();
    }
    @Override
    public String insert(PersonModel dtoModel) {
        Person dtoEntity = converter.entity(dtoModel);
        return r.insert(dtoEntity);
    }

    @Override
    public String delete(Integer id) {
        return r.delete(id);
    }

    @Override
    public PersonModel get(Integer id) {
        Person dtoEntity = r.get(id);
        PersonModel dtoModel = converter.model(dtoEntity);
        return dtoModel;
    }

    @Override
    public List<PersonModel> query() {
        List<Person> listEntity = r.query();
        List<PersonModel> listModel = new LinkedList<>();
        for(Person dtoEntity:listEntity){
            listModel.add(converter.model(dtoEntity));
        }
        return listModel;
    }

    @Override
    public String update(PersonModel dtoModel) {
        return r.update(converter.entity(dtoModel));
    }
}package pe.gob.minam.sereno.services.impl;
import java.util.LinkedList;
import java.util.List;
import pe.gob.minam.sereno.converter.PersonConverter;
import pe.gob.minam.sereno.converter.impl.PersonConverterImpl;
import pe.gob.minam.sereno.entity.Person;
import pe.gob.minam.sereno.model.PersonModel;
import pe.gob.minam.sereno.repository.PersonRepository;
import pe.gob.minam.sereno.repository.impl.PersonRepositoryImpl;
import pe.gob.minam.sereno.services.PersonService;

public class PersonServiceImpl implements PersonService {

    PersonRepository r = null;
    PersonConverter converter = null;

    public PersonServiceImpl() {
        r = new PersonRepositoryImpl();
        converter = new PersonConverterImpl();
    }

    @Override
    public String insert(PersonModel dtoModel) {
        Person dtoEntity = converter.entity(dtoModel);
        return r.insert(dtoEntity);
    }

    @Override
    public String delete(Integer id) {
        return r.delete(id);
    }

    @Override
    public PersonModel get(Integer id) {
        Person dtoEntity = r.get(id);
        PersonModel dtoModel = converter.model(dtoEntity);
        return dtoModel;
    }

    @Override
    public List<PersonModel> query() {
        List<Person> listEntity = r.query();
        List<PersonModel> listModel = new LinkedList<>();
        for(Person dtoEntity:listEntity){
            listModel.add(converter.model(dtoEntity));
        }
        return listModel;
    }

    @Override
    public String update(PersonModel dtoModel) {
        return r.update(converter.entity(dtoModel));
    }
}

PASO 13

En el Netbeans, agregar la librería jstl

Crear el controller
Proffesion

import java.io.IOException;
import java.util.List;
import javax.servlet.RequestDispatcher;
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 pe.gob.minam.sereno.model.ProffesionModel;
import pe.gob.minam.sereno.services.ProffessionService;
import pe.gob.minam.sereno.services.impl.ProffessionServiceImpl;

@WebServlet(name = "ProffesionController", urlPatterns = {"/profesion.do"})


public class ProffesionController extends HttpServlet {

    protected void processRequest(HttpServletRequest request,


        HttpServletResponse response)
            throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        String target = "index.jsp";
        ProffessionService s = new ProffessionServiceImpl();

        String accion = request.getParameter("accion");


        if (accion.equals("QRY")) {
            List<ProffesionModel> listModel = s.query();
            request.setAttribute("list", listModel);
            target = "proffesionQry.jsp";
        }else if(accion.equals("INS")){
            String prof = request.getParameter("profesion");
            ProffesionModel dtoModel = new ProffesionModel();
            dtoModel.setProffesion(prof);
            s.insert(dtoModel);
            target = "profesion.do?accion=QRY";
        }else if(accion.equals("DEL")){
            Integer idprof = Integer.valueOf(request.getParameter("id"));
            s.delete(idprof);
            target = "profesion.do?accion=QRY";
        }else if(accion.equals("GET")){
            Integer idprof = Integer.valueOf(request.getParameter("id"));
            ProffesionModel dtoModel = s.get(idprof);
            request.setAttribute("dto", dtoModel);
            target = "proffesionUpd.jsp";
        }else if(accion.equals("UPD")){
            Integer idprof = Integer.valueOf(request.getParameter("id"));
            String prof = request.getParameter("profesion");
            ProffesionModel dtoModel = new ProffesionModel();
            dtoModel.setIdprof(idprof);
            dtoModel.setProffesion(prof);
            s.update(dtoModel);
            target = "profesion.do?accion=QRY";
        }
        
        RequestDispatcher dispatcher = request.getRequestDispatcher(target);
        dispatcher.forward(request, response);
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    public String getServletInfo() {
        return "Controller for Service";
    }

}package pe.gob.minam.sereno.controller;
import java.io.IOException;
import java.util.List;
import javax.servlet.RequestDispatcher;
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 pe.gob.minam.sereno.model.ProffesionModel;
import pe.gob.minam.sereno.services.ProffessionService;
import pe.gob.minam.sereno.services.impl.ProffessionServiceImpl;

@WebServlet(name = "ProffesionController", urlPatterns = {"/profesion.do"})


public class ProffesionController extends HttpServlet {

    protected void processRequest(HttpServletRequest request,


        HttpServletResponse response)
            throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        String target = "index.jsp";
        ProffessionService s = new ProffessionServiceImpl();

        String accion = request.getParameter("accion");


        if (accion.equals("QRY")) {
            List<ProffesionModel> listModel = s.query();
            request.setAttribute("list", listModel);
            target = "proffesionQry.jsp";
        }else if(accion.equals("INS")){
            String prof = request.getParameter("profesion");
            ProffesionModel dtoModel = new ProffesionModel();
            dtoModel.setProffesion(prof);
            s.insert(dtoModel);
            target = "profesion.do?accion=QRY";
        }else if(accion.equals("DEL")){
            Integer idprof = Integer.valueOf(request.getParameter("id"));
            s.delete(idprof);
            target = "profesion.do?accion=QRY";
        }else if(accion.equals("GET")){
            Integer idprof = Integer.valueOf(request.getParameter("id"));
            ProffesionModel dtoModel = s.get(idprof);
            request.setAttribute("dto", dtoModel);
            target = "proffesionUpd.jsp";
        }else if(accion.equals("UPD")){
            Integer idprof = Integer.valueOf(request.getParameter("id"));
            String prof = request.getParameter("profesion");
            ProffesionModel dtoModel = new ProffesionModel();
            dtoModel.setIdprof(idprof);
            dtoModel.setProffesion(prof);
            s.update(dtoModel);
            target = "profesion.do?accion=QRY";
        }
        
        RequestDispatcher dispatcher = request.getRequestDispatcher(target);
        dispatcher.forward(request, response);
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse
response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse
response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    public String getServletInfo() {
        return "Controller for Service";
    }

Person

import java.io.IOException;
import java.util.List;
import javax.servlet.RequestDispatcher;
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 pe.gob.minam.sereno.model.PersonModel;
import pe.gob.minam.sereno.model.ProffesionModel;
import pe.gob.minam.sereno.services.PersonService;
import pe.gob.minam.sereno.services.ProffessionService;
import pe.gob.minam.sereno.services.impl.PersonServiceImpl;
import pe.gob.minam.sereno.services.impl.ProffessionServiceImpl;

@WebServlet(name = "PersonController", urlPatterns = {"/person.do"})


public class PersonController extends HttpServlet {

    protected void processRequest(HttpServletRequest request,


        HttpServletResponse response)
            throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        String target = "index.jsp";
        PersonService s = new PersonServiceImpl();
        String accion = request.getParameter("accion");
        if (accion.equals("QRY")) {
            List<PersonModel> listModel = s.query();
            request.setAttribute("list", listModel);
            target = "personQry.jsp";
        }else if(accion.equals("COMBO")){
            ProffessionService ps = new ProffessionServiceImpl();
            List<ProffesionModel> listModel = ps.query();
            request.setAttribute("list", listModel);
            target = "personIns.jsp";
        }else if(accion.equals("INS")){
            String name = request.getParameter("nombre");
            Integer age = Integer.valueOf(request.getParameter("edad"));
            Integer idprof = Integer.valueOf(request.getParameter("idprofesion"));
            
            PersonModel dtoModel = new PersonModel();
            dtoModel.setName(name);
            dtoModel.setAge(age);
            dtoModel.setIdprof(idprof);
            
            s.insert(dtoModel);
            target = "person.do?accion=QRY";
        }else if(accion.equals("DEL")){
            Integer idper = Integer.valueOf(request.getParameter("id"));
            s.delete(idper);
            target = "person.do?accion=QRY";
        }else if(accion.equals("GET")){
            Integer idper = Integer.valueOf(request.getParameter("id"));
            PersonModel dtoModel = s.get(idper);
            request.setAttribute("dto", dtoModel);
            //--
            ProffessionService ps = new ProffessionServiceImpl();
            List<ProffesionModel> listModel = ps.query();
            request.setAttribute("list", listModel);
            //--
            target = "personUpd.jsp";
        }else if(accion.equals("UPD")){
            Integer idper = Integer.valueOf(request.getParameter("id"));
            String name = request.getParameter("nombre");
            Integer age = Integer.valueOf(request.getParameter("edad"));
            Integer idprof = Integer.valueOf(request.getParameter("idprofesion"));
            
            PersonModel dtoModel = new PersonModel();
            dtoModel.setIdper(idper);
            dtoModel.setName(name);
            dtoModel.setAge(age);
            dtoModel.setIdprof(idprof);
            s.update(dtoModel);
            target = "person.do?accion=QRY";
        }
        
        RequestDispatcher dispatcher = request.getRequestDispatcher(target);
        dispatcher.forward(request, response);
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    public String getServletInfo() {
        return "Controller for Person";
    }
}package pe.gob.minam.sereno.controller;

import java.io.IOException;
import java.util.List;
import javax.servlet.RequestDispatcher;
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 pe.gob.minam.sereno.model.PersonModel;
import pe.gob.minam.sereno.model.ProffesionModel;
import pe.gob.minam.sereno.services.PersonService;
import pe.gob.minam.sereno.services.ProffessionService;
import pe.gob.minam.sereno.services.impl.PersonServiceImpl;
import pe.gob.minam.sereno.services.impl.ProffessionServiceImpl;

@WebServlet(name = "PersonController", urlPatterns = {"/person.do"})


public class PersonController extends HttpServlet {

    protected void processRequest(HttpServletRequest request,


        HttpServletResponse response)
            throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        String target = "index.jsp";
        PersonService s = new PersonServiceImpl();
        String accion = request.getParameter("accion");
        if (accion.equals("QRY")) {
            List<PersonModel> listModel = s.query();
            request.setAttribute("list", listModel);
            target = "personQry.jsp";
        }else if(accion.equals("COMBO")){
            ProffessionService ps = new ProffessionServiceImpl();
            List<ProffesionModel> listModel = ps.query();
            request.setAttribute("list", listModel);
            target = "personIns.jsp";
        }else if(accion.equals("INS")){
            String name = request.getParameter("nombre");
            Integer age = Integer.valueOf(request.getParameter("edad"));
            Integer idprof = Integer.valueOf(request.getParameter("idprofesion"));
            
            PersonModel dtoModel = new PersonModel();
            dtoModel.setName(name);
            dtoModel.setAge(age);
            dtoModel.setIdprof(idprof);
            
            s.insert(dtoModel);
            target = "person.do?accion=QRY";
        }else if(accion.equals("DEL")){
            Integer idper = Integer.valueOf(request.getParameter("id"));
            s.delete(idper);
            target = "person.do?accion=QRY";
        }else if(accion.equals("GET")){
            Integer idper = Integer.valueOf(request.getParameter("id"));
            PersonModel dtoModel = s.get(idper);
            request.setAttribute("dto", dtoModel);
            //--
            ProffessionService ps = new ProffessionServiceImpl();
            List<ProffesionModel> listModel = ps.query();
            request.setAttribute("list", listModel);
            //--
            target = "personUpd.jsp";
        }else if(accion.equals("UPD")){
            Integer idper = Integer.valueOf(request.getParameter("id"));
            String name = request.getParameter("nombre");
            Integer age = Integer.valueOf(request.getParameter("edad"));
            Integer idprof = Integer.valueOf(request.getParameter("idprofesion"));
            
            PersonModel dtoModel = new PersonModel();
            dtoModel.setIdper(idper);
            dtoModel.setName(name);
            dtoModel.setAge(age);
            dtoModel.setIdprof(idprof);
            s.update(dtoModel);
            target = "person.do?accion=QRY";
        }
        
        RequestDispatcher dispatcher = request.getRequestDispatcher(target);
        dispatcher.forward(request, response);
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse
response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse
response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    public String getServletInfo() {
        return "Controller for Person";
    }
}

PASO 14

Crea el view, siguiente:

● index.jsp
● proffesionQry.jsp
● proffesionIns.jsp
● proffesionUpd.jsp
● personQry.jsp
● personIns.jsp
● personUpd.jsp
● about.html

index.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>


<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Sistema de Registro de Personal</title>
    </head>
    <body>
        <a href="http://www.sencico.gob.pe/" target="_blank">SISTEMA SENCICO</a>
        <nav>
            <div>
                <ul>
                    <li><a href="/">Home</a></li>
                    <li>
                        <a href="profesion.do?accion=QRY">Profesi&#243;n</a>
                    </li>
                    <li>
                        <a href="person.do?accion=QRY">Personal</a>
                    </li>
                    <li>
                        <a href="#">About</a>
                    </li>
                </ul>
            </div>
        </nav>
    </body>
</html>

proffesionQry.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>


<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Sistema de Registro de Personal</title>
    </head>
    <body>
        <a href="http://www.sencico.gob.pe/" target="_blank">SISTEMA SENCICO</a>
        <nav>
            <div>
                <ul>
                    <li><a href="index.jsp">Home</a></li>
                    <li>
                        <a href="profesion.do?accion=QRY">Profesi&#243;n</a>
                    </li>
                    <li>
                        <a href="person.do?accion=QRY">Personal</a>
                    </li>
                    <li>
                        <a href="about.html">About</a>
                    </li>
                </ul>
            </div>
        </nav>
        <div>
            <a href="proffesionIns.jsp">Nueva profesion</a>
            <table class="table">
                <thead>
                    <tr>
                        <th>id</th>
                        <th>nombre</th>
                        <th>Editar</th>
                        <th>Retirar</th>
                    </tr>
                </thead>
                <tbody>
                    <c:if test="${list != null}">
                        <c:forEach var="f" items="${list}">
                            <tr>
                                <td>${f.idprof}</td>
                                <td>${f.proffesion}</td>
                                <td><a href="profesion.do?accion=GET&id=${f.idprof}">actualiza
a></td>
                                <td><a href="profesion.do?accion=DEL&id=${f.idprof}">eliminar<
a></td>
                            </tr>
                        </c:forEach>
                    </c:if>
                </tbody>
            </table>
        </div>
    </body>
</html>

proffesionIns.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>


<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Sistema de Registro de Personal</title>
    </head>
    <body>
        <h1>Nueva Profesion</h1>
        <form action="profesion.do" method="post">
            <input type="hidden" name="accion" value="INS"/>
            Profesion:<input type="text" name="profesion"/>
            <br/>
            <input type="submit" value="enviar"/>
        </form>
    </body>
</html>

proffesionUpd.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>


<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Sistema de Registro de Personal</title>
    </head>
    <body>
        <h1>Actualizar Profesion</h1>
        <form action="profesion.do" method="post">
            <input type="hidden" name="accion" value="UPD"/>
            <input type="hidden" name="id" value="${dto.idprof}"/>
            Profesion:<input type="text" name="profesion"
value="${dto.proffesion}"/>
            <br/>
            <input type="submit" value="enviar"/>
        </form>
    </body>
</html>

personQry.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>


<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Sistema de Registro de Personal</title>
    </head>
    <body>
        <a href="http://www.sencico.gob.pe/" target="_blank">SISTEMA SENCICO</a>
        <nav>
            <div>
                <ul>
                    <li><a href="index.jsp">Home</a></li>
                    <li>
                        <a href="profesion.do?accion=QRY">Profesi&#243;n</a>
                    </li>
                    <li>
                        <a href="person.do?accion=QRY">Personal</a>
                    </li>
                    <li>
                        <a href="about.html">About</a>
                    </li>
                </ul>
            </div>
        </nav>
        <div>
            <a href="person.do?accion=COMBO">Nuevo</a>
            <table class="table">
                <thead>
                    <tr>
                        <th>id</th>
                        <th>nombre</th>
                        <th>Edad</th>
                        <th>Profesion</th>
                        <th>Editar</th>
                        <th>Retirar</th>
                    </tr>
                </thead>
                <tbody>
                    <c:if test="${list != null}">
                        <c:forEach var="f" items="${list}">
                            <tr>
                                <td>${f.idper}</td>
                                <td>${f.name}</td>
                                <td>${f.age}</td>
                                <td>${f.proffesion.proffesion}</td>
                                <td><a href="person.do?accion=GET&id=${f.idper}">actualizar</
a></td>
                                <td><a href="person.do?accion=DEL&id=${f.idper}">eliminar</
a></td>
                            </tr>
                        </c:forEach>
                    </c:if>
                </tbody>
            </table>
        </div>
    </body>
</html>

personIns.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>


<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Sistema de Registro de Personal</title>
    </head>
    <body>
        <h1>Registrar Personal</h1>
        <form action="person.do" method="post">
            <input type="hidden" name="accion" value="INS"/>
            Nombre   :<input type="text" name="nombre"/><br/>
            Edad     :<input type="text" name="edad"/><br/>
            Profesion:
            <select name="idprofesion">
                <option value="">&nbsp;</option>
                <c:if test="${list != null}">
                    <c:forEach var="f" items="${list}">
                        <option value="${f.idprof}">${f.proffesion}</option>
                    </c:forEach>
                </c:if>
            </select>
            <br/>
            <input type="submit" value="enviar"/>
        </form>
    </body>
</html>

personUpd.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>


<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Sistema de Registro de Personal</title>
    </head>
    <body>
        <h1>Actualizar Personal</h1>
        <form action="person.do" method="post">
            <input type="hidden" name="accion" value="UPD"/>
            <input type="hidden" name="id" value="${dto.idper}"/>
            Nombre   :<input type="text" name="nombre" value="${dto.name}"/><br/
>
            Edad     :<input type="text" name="edad" value="${dto.age}"/><br/>
            Profesion:
            <select name="idprofesion">
                <c:if test="${list != null}">
                    <c:forEach var="f" items="${list}">
                        <c:choose>
                            <c:when test="${dto.idprof==f.idprof}">
                                <option value="${f.idprof}"
selected>${f.proffesion}</option>
                            </c:when>
                            <c:otherwise>
                                <option value="${f.idprof}">${f.proffesion}</
option>
                            </c:otherwise>
                        </c:choose>
                    </c:forEach>
                </c:if>
            </select>
            <br/>
            <input type="submit" value="enviar"/>
        </form>
    </body>
</html>

about.html

<!DOCTYPE html>
<html>
    <head>
        <title>Sistema de Registro de Personal</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
        <nav>
            <div>
                <ul>
                    <li><a href="index.jsp">Home</a></li>
                    <li>
                        <a href="profesion.do?accion=QRY">Profesi&#243;n</a>
                    </li>
                    <li>
                        <a href="person.do?accion=QRY">Personal</a>
                    </li>
                    <li>
                        <a href="about.html">About</a>
                    </li>
                </ul>
            </div>
        </nav>
        <h3>Sistema de Registro de Personal</h3>
    </body>
</html>

S-ar putea să vă placă și