1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Chamar servlet no Page Load

Oi, estou com um problema, tenho a seguinte página JSP que é carregada após o login :

<%-- 
    Document   : HomePage_Aluno
    Created on : 19/09/2013, 20:05:37
    Author     : antun_000
--%>
<%@ page session="true" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<style>
    h1 {text-align:center}
</style>

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>Bem-Vindo(a) <%= session.getAttribute( "usuario_logado" ) %></h1>
        <table>
            <tr>
                <td>Selecione o curso para consulta :</td>
            </tr>
            <tr>
            <select name="alunoxcursos">
                <c:forEach items="${alunoxcursos}" var="alunoxcursos">
                    <option value="${alunoxcursos.curso}"/></option>
                </c:forEach>
            </select>
            </tr>
        </table>
    </body>
</html>

E para carregar os dados desta página eu precisaria chamar o meu servlet no page load.

Servlet :

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package servlets;

import java.io.IOException;
import java.io.PrintWriter;
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 DAO.AlunoDAOImp;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author antun_000
 */
@WebServlet(name = "AlunoServlet", urlPatterns = {"/AlunoServlet"})
public class AlunoServlet extends HttpServlet {
    private PrintStream out;

    /**
     * Processes requests for both HTTP
     * <code>GET</code> and
     * <code>POST</code> methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            /* TODO output your page here. You may use following sample code. */
            out.println("<!DOCTYPE html>");
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet AlunoServlet</title>");            
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet AlunoServlet at " + request.getContextPath() + "</h1>");
            out.println("</body>");
            out.println("</html>");
        } finally {            
            out.close();
        }
    }

    // <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
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    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
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try {
            processRequest(request, response);
            AlunoDAOImp aluno = new AlunoDAOImp();
            ArrayList list = new ArrayList();
            request.setAttribute("alunoxcursos", aluno.GetCursos());
            request.getRequestDispatcher("/WEB-INF/HomePage_Aluno.jsp").forward(request, response);
        } catch (Exception ex) {
            Logger.getLogger(AlunoServlet.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}

A minha DAO :

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package DAO;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author antun_000
 */
public class AlunoDAOImp implements AlunoDAO{
    private final Connection conn;

    public AlunoDAOImp() throws Exception
    {
        try {
            this.conn = ConnectionFactory.getConnection( );

        } catch( Exception e ) {
            throw new Exception( "Erro: " +
                    "\n" + e.getMessage( ) );
        }
    }

    @Override
    public List ListaFrequencia() throws Exception
    {
        try
        {
            String SQL = "select usuario.nome, usuario.sobrenome,curso.nome as curso from usuario inner join curso where usuario.tipo_usuario = 1 and usuario.nome = '';\n" +
            " do alunosxcursos;";
            PreparedStatement stmt = conn.prepareStatement(SQL,         
                                                           ResultSet.TYPE_SCROLL_INSENSITIVE,   
                                                           ResultSet.CONCUR_READ_ONLY);                    
            ResultSet rs = stmt.executeQuery(SQL);
            ArrayList list = new ArrayList();
            while(rs.next())
            {
                list.add(rs);
            }


        }
        catch(Exception ex)
        {

        }

        conn.close();
        return null;

    }

    @Override
    public List<String> GetCursos() throws Exception {
        ArrayList list = new ArrayList();
         try
        {
            String SQL = "select usuario.nome, usuario.sobrenome,curso.nome as curso from usuario inner join curso where usuario.tipo_usuario = 1\n and " +"do alunosxcursos";
            PreparedStatement stmt = conn.prepareStatement(SQL,         
                                                           ResultSet.TYPE_SCROLL_INSENSITIVE,   
                                                           ResultSet.CONCUR_READ_ONLY);                    
            ResultSet rs = stmt.executeQuery(SQL);

            while(rs.next())
            {
                list.add(rs.getString("curso"));
            }


        }
        catch(Exception ex)
        {

        }

        conn.close();
        return list;
    }

}

Eu queria saber duas coisas : 1) O meu servlet está correto para que eu possa preencher uma table com os dados? 2) Como eu chamo o servlet se eu não tenho um botão submit?

  • Duas dúvidas, vc quer preencher a table ou o combo? Vc quer fazer a busca no load da página "HomePage_Aluno", pq vc não faz essa busca antes d carregar essa página, pelo q entendi vc tem uma página anterior com login certo?

    fabio.ortolan   27 de set de 2013
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags jsp servlets ou faça a sua própria pergunta.