Вопрос

`I am a new to java and to servlet topic. I write a little web application. it's collect some data from web-form and add it into a LinkedList. But my debugger shown me that adding to LL doesnt occur. HELP PLEASE!

Here some code:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String name = request.getParameter("name");
    String surname = request.getParameter("surname");
    String fatherName = request.getParameter("fathername");
    String department = request.getParameter("department").toLowerCase();
    Integer age = Integer.valueOf(request.getParameter("age"));

    System.out.println(name);
    System.out.println(surname);
    System.out.println(fatherName);

    responseToUser(addEmployee(name,surname,fatherName,department, age),response);

    }

public boolean addEmployee(String name, String surname, String fathername, String department, Integer age) {
    AllWorkers workers = new AllWorkers();
    if (!name.equals("") && !surname.equals("") && !fathername.equals("") && !dep   artment.equals("") && age != null) {
        Person person = new Person(surname, name, fathername, department, age);
        Departments dep = Departments.valueOf(person.getDepartment());
        if (dep == Departments.логистика) {
            workers.addLogistic(person);
        } else if (dep == Departments.продажи) {
            workers.addSales(person);
        }
        return true;
    } else {
        return false;
    }
}

public void responseToUser(boolean boo, HttpServletResponse response) throws IOException {
    Gson gson = new Gson();
    response.setContentType("application/json");
    if(boo == true){
        response.getWriter().write(gson.toJson(true));
    }else if(boo == false){
        response.getWriter().write(gson.toJson(false));
    }
}

Departments:

public enum Departments {
    логистика,продажи
}

AllWorkers.java

public class AllWorkers {

    LinkedList<Person> logistic = new LinkedList<Person>();
    LinkedList<Person> sales = new LinkedList<Person>();

    public void addLogistic(Person person){
        logistic.add(person);
    }
    public void addSales(Person person){sales.add(person);}

    public LinkedList<Person> getLogistic() {
        return logistic;
    }

    public LinkedList<Person> getSales() {
        return sales;
    }
}

Person.java

public class Person {
    private String name;
    private String surname;
    private String fatherName;
    private String department;
    private int age;

    Person(){

    }

    Person(String name, String surname, String fatherName,String department, int age){
        this.name = name;
        this.surname = surname;
        this.fatherName = fatherName;
        this.department = department;
        this.age = age;


    }

    public String getDepartment() {
        return department;
    }

    public String getFatherName() {
        return fatherName;
    }

    public int getAge() {
        return age;
    }

    public String getSurname() {
        return surname;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

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

    public void setFatherName(String fatherName) {
        this.fatherName = fatherName;
    }

    public void setSurname(String surname) {
        this.surname = surname;
    }

    public void setDepartment(String department) {
        this.department = department;
    }
}
Это было полезно?

Решение

(I assume you have checked your variables name, surname, fatherName, department and age have correct values)

I have tested your code and persons are added to LinkedLists contained in AllWorkers correctly. However, in method addEmploye() you do this:

AllWorkers workers = new AllWorkers();

which means you create a new workers every time you comsume the servlet, and each time that workers will be empty since it's a new object. Maybe that is the reason it seems that persons are not added to lists.

Regards,

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top