Вывод данных из БД при загрузке JSP - Java БД

391
28 апреля 2017, 18:07

Доброго времени суток. Я совсем новичок в Java. Разбираюсь с примером, переделываю его по свой. В общем при запуске выводится форма с текстовым полем и кнопкой. После нажатия кнопки выводятся данные из БД. Вопрос, а как сделать так, чтобы данные выводились при запуске файла JSP, а не по нажатию кнопки. Я в этом совсем новенький. Заранее спасибо. Вот код:

Класс IndexReport

package IndexReport;
import java.io.Serializable;
public class IndexReport implements Serializable  {
private int  id_index;
private String date;
private String name;
private float varible;
public IndexReport() {}
public IndexReport(int id_index, String date, String name, float varible) {
    super();
    this.id_index = id_index;
            this.date = date;
            this.name = name;
            this.varible = varible;
    }

    public int getId_Index() {
    return id_index;
}
public void setId_Index(int id_index) {
    this.id_index = id_index;
}
    public String  getDate() {
    return date;
}
public void setDate(String date) {
    this.date= date;
}
 public String  getName() {
    return name;
}
public void setName(String name) {
    this.name= name;
}

     public float  getVarible() {
    return varible;
}
public void setName(float varible) {
    this.varible= varible;
}


}
package IndexReport;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(name = "Index_Report_Servlet", urlPatterns = {"/Index_Report_Servlet"})
public class Index_Report_Servlet extends javax.servlet.http.HttpServlet implements
        javax.servlet.Servlet {
    static final long serialVersionUID = 1L;
        public Index_Report_Servlet() 
        {super();}

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try {
                response.setContentType("text/html;charset=UTF-8");
                    // Получение из http-запроса значения параметра lasname
                String lastname = request.getParameter("lastname");
                // Коллекция для хранения найденных показателей
                 ArrayList<IndexReport> employees = new ArrayList<IndexReport>();
                 // Загрузка драйвера БД Derby              
                Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
                 // Получение соединения с БД
                Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName =FininceAnalysis; user = Admin; password = 1234");
                // Выполнение SQL-запроса
           ResultSet rs = con.createStatement().executeQuery(
           "SELECT [dbo].[Report_Count_Index].[ID_Index], [dbo].[Report_Count_Index].Data, [dbo].[Index].Name,[dbo].[Report_Count_Index].[Varible] AS Varible "
           + "FROM [dbo].[Report_Count_Index]"
               + "INNER JOIN [dbo].[Index]  ON [dbo].[Report_Count_Index].[ID_Index]=[dbo].[Index].[ID_Index]");
               // Перечисление результатов запроса
    while (rs.next()) {
        // По каждой записи выборки формируется
        // объект класса Employee.
        // Значения свойств заполяются из полей записи
        IndexReport emp = new IndexReport(
                        rs.getInt(1), 
                        rs.getString(2), 
                        rs.getString(3), 
                        rs.getFloat(4));
               // Добавление созданного объекта в коллекцию
        employees.add(emp);
                }
                // Закрываем выборку и соединение с БД
                rs.close();
                con.close();

                // Помещение результатов в параметр запроса employeesFound
                request.setAttribute("employeesFound", employees);
                // Перенаправление http-запроса на страницу index.jsp
                RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/Tables.jsp");         
                dispatcher.forward(request, response);


           }
        catch (Exception ex) {
        ex.printStackTrace();
    throw new ServletException(ex);

        }
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    }

}
       <form action="Index_Report_Servlet">
    Фамилия сотрудника
    <input type="text" name="lastname"> 
    <input type=submit value="поиск"> 
</form> 
     <%ArrayList employees = (ArrayList) request.getAttribute("employeesFound");if (employees != null) {if (employees.size()==0) out.print("Сотрудники не найдены"); else {    out.print("<TABLE border="1">"); out.print("<TR><TD>Id</TD><TD>Имя</TD><TD>Фамилия</TD>" +  "<TD>Должность</TD <TD>Телефон</TD></TR>");for (int i = 0; i < employees.size(); i++) {out.print("<TR>");IndexReport emp = (IndexReport) employees.get(i);out.print("<TD>" + emp.getId_Index()+ "</TD>");
                out.print("<TD>" + emp.getDate()+ "</TD>");
                out.print("<TD>" + emp.getName()+ "</TD>");
                out.print("<TD>" + emp.getVarible()+ "</TD>");
        out.print("</TR>");
    }
    out.print("</TABLE>");
    }}%>
READ ALSO
Вывести текущую дату

Вывести текущую дату

Вопрос наверное глупый и многим покажется несерьезным, но я вынужден его задать, тк

186
Как добавить разделение по тысячам в числах?

Как добавить разделение по тысячам в числах?

Мне нужно из "12345" сделать "12 345", то есть, привести числа в нормальный видНасколько я понял, этим занимается NumberFormat

234
TableVIew и JavaFX

TableVIew и JavaFX

Доброго времени сутокИмеется TableView с 3 столбцами

316
Помогите с подключением java к базе данных MySQl(phpMyAdmin)

Помогите с подключением java к базе данных MySQl(phpMyAdmin)

Помогите! Сделал базу данных MySQL под управлением phpMyAdminИ создал там таблицу

225