[Resolvido] Problemas ao inserir um usuários com JSP

Olá pessoal, estou criando uma aplicação Java + JSP + MySQL e estou com um problema ao tentar inserir dados no banco.

Minha pagina cadastro.html envia informações para cadastro.jsp que tem o código abaixo:

<%-- 
    Document   : cadastro
    Created on : 14/05/2017, 18:38:52
    Author     : gaf_j
--%>

<%@page contentType="text/html" pageEncoding="UTF-8" language="java" import="Servlets.Usuarios"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Cadastrando</title>
    </head>
    <body>
        <%
            Usuarios usuario = new Usuarios();
            
            usuario.setUSU_FIRSTNAME(request.getParameter("fistname"));
            usuario.setUSU_LASTNAME(request.getParameter("lastname"));
            usuario.setUSU_EMAIL(request.getParameter("email"));
            usuario.setUSU_SENHA(request.getParameter("senha"));
            usuario.setUSU_TELEFONE(request.getParameter("phone"));
            usuario.setUSU_PATROCINADOR(false);
            usuario.setUSU_VALID_EMAIL(false);
            usuario.setUSU_DT_CADASTRO("15/05/2017");
            
            usuario.inserirusuario(request, response, usuario.getUSU_FIRSTNAME(), usuario.getUSU_LASTNAME(), usuario.getUSU_EMAIL(), usuario.getUSU_SENHA(),usuario.getUSU_TELEFONE(), usuario.isUSU_PATROCINADOR(), usuario.isUSU_VALID_EMAIL(), usuario.getUSU_DT_CADASTRO());
            
            String redirectURL = "./index.html";
            response.sendRedirect(redirectURL);
        %>
    </body>
</html>

E ela consulta minha classe java Usuarios.java:

public void inserirusuario(HttpServletRequest request, HttpServletResponse response, String USU_FIRSTNAME, String USU_LASTNAME, String USU_EMAIL, String USU_SENHA, String USU_TELEFONE, boolean USU_PATROCINADOR, boolean USU_VALID_EMAIL, String USU_DT_CADASTRO) throws ClassNotFoundException, SQLException {
        Connection conexao = BancoDeDados.getConnectionMySQL();
        // Executa o SQL de consulta.
        PreparedStatement sql = conexao.prepareStatement("insert into TB_USUARIOS(USU_FIRSTNAME,USU_LASTNAME,USU_EMAIL,USU_SENHA,USU_TELEFONE, USU_PATROCINADOR, USU_VALID_EMAIL, USU_DT_CADASTRO) values('?','?','?','?','?',?,?,?)");
        sql.setString(1, USU_FIRSTNAME);
        sql.setString(2, USU_LASTNAME);
        sql.setString(3, USU_EMAIL);
        sql.setString(4, USU_SENHA);
        sql.setString(5, USU_TELEFONE);
        sql.setBoolean(6, USU_PATROCINADOR);
        sql.setBoolean(7, USU_VALID_EMAIL);
        sql.setString(8, USU_DT_CADASTRO);
        sql.execute();
        conexao.close();
   
}

Minhas configurações de conexão ao banco estão corretas pois criei uma classe para isso e ela esta funcionando perfeitamente.

Qual é o problema?

Você está usando request.getParameter(""); dentro de um arquivo .jsp, certo?
Mas de onde vem esses valores que os request.getParameter(""); está pegando?

Você deve criar um formulário e pegar os com o request.getParameter("");.
Exemplo:

...
<%
    Usuarios usuario = new Usuarios();
    usuario.setUSU_FIRSTNAME(request.getParameter("fistname"));
%>
<form>
    <input name="fistname" ...>
</form>

Outra coisa é nesse método inserirUsuario(...). Não precisa passar atributo por atributo, passa o objeto usuário porque ele contem todos os atributos.

Ficaria public void inserirUsuario(Usuario usuario){...}. Aí, ao invés de pegar o parametro passado pega direto de usuario (sql.setString( 1, usuario.getFirstName()); )

Valeu pessoal! Consegui resolver, estava colocando aspas simples nas interrogações da query.
Megadeth obrigado, mas essa parte estava certa, estava recebendo esses parâmetros de um form html.