Java pegando dado de .JSP - Resolvido

Olá eu sou novo no desenvolvimento java e tenho uma dúvida que creio que seja básica

Eu preciso pegar a informação de um campo de pesquisa no HTML e colocar dentro de um JAVA.
Estou tentando fazer isso na mesma página conforme segue

<div class="col-md-3">
 <p>
  <b id="reg" name="reg">Região</b>
 </p>
 <select id="Regiao" name="Regiao" class="form-control show-tick" data-live-search="true">
  <%
    dadosfiltro.setRegiao(request.getParameter("Regiao"));
   %>
  <option><%=dadosfiltro.getRegiao()%></option>
  <% } %>
  </select>
  </div>

Neste exemplo o dado selecionado seria inserido na mesma listagem

Amigo, você deve criar um servlet e submeter o formulário passando seu Servlet no action deste form.

No seu servlet extenda HttpServlet

Ex:

@WebServlet(name = "SeuServlet ", urlPatterns = {"/SeuServlet "})
public class SeuServlet extends HttpServlet {

e no seu método request que deverá implementado, você deve pegar o parâmetro.

ex:

String regiao = request.getParameter("Regiao");

Segue um exemplo passando valor de um radioButton para o servlet.

[]'s

Desculpa mas não entendi direito.
Quando crio um servlet ele necessariamente sai da página que tenho aberta?
Não tenho um form, consigo colocar dentro da div e executar quando selecionado meu dado no select?
Eu preciso que ao selecionar o dado no campo do select seja inserido esse valor novamente no select

Bom,

Vou citar um exemplo bem besta kkk mas que é simples pra conceituar o servlet.

Pense em uma pessoa (página JSP) e um carteiro (Servlet) que irá entregar uma carta com AR (Será devolvido ao remetente preenchido).

A pessoa envia a carta, o carteiro trata a carta e entrega ao destinatário. Depois o carteiro devolve o AR preenchido a pessoa que enviou.

O servlet vai fazer este papel do carteiro. Ele recebe uma requisição, trata ela e retorna algo para a tela.

No seu caso você não tem um form, mas deve criar um. No atributo action você deve apontar qual será o servlet que irá tratar essa requisição.

Ao proceder o seu JSP por algum botão que submeta o seu form, no Java (Servlet) você conseguirá pegar as informações que você inseriu em seu JSP.

Mas, primeiramente você terá que entender o que é um JSP e um Servlet, ler algum tutorial. Veja no Youtube como iniciar.

Fica um pouco complicado te passar codificação sem entender o conceito.

[]'s

Obrigado entendi sua explicação porém ainda tenho dúvidas.
Vou tentar explicar a minha necessidades.
Tenho uma caixa de seleção de informações de Regições que consulto no banco de dados.
Quando eu selecionar a região que quero, exemplo MATO GROSSO o outro campo de seleção deve listar apenas os dados da região selecionada Exemplo Cuiabá, Rondonópolis, Sorriso.
Eu estava fazendo da forma que enviei, quando abro o sistema ele busca no banco todos os dados e preenche.
Preciso de uma forma de executar esta atividade sem sair da página, atualizando apenas a div onde esta a seleção, consigo realizar estas atividades, a única coisa que não consigo é selecionar a informação no campo de Região e colocar em uma variável no java.
Espero ter informado melhor

<div class="col-md-3">
   <p>
      <b id="reg" name="reg">Região</b>
    </p>
    <select id="Regiao" name="Regiao" class="form-control show-tick" data-live-search="true">
       <% for(Regiao regiao: fdao.listarRegiao()){ %>
        <option><%=regiao.getRegiao()%></option>
         <% } %>
          </select>
          </div>
          </div>
          <div class="row clearfix">
          <div class="col-md-3">
           <p>
             <b>Filial</b>
             </p>
             <select class="form-control show-tick" data-live-search="true">
              <%
                dadosfiltro.setRegiao(request.getParameter("Regiao"));
                %>
                <% for(Filial filial: fdao.listarFilial()){ %>
                 <option><%=filial.getFilial()%></option>
                   <% } %>
                    </select>
                  </div>

Putz

No seu caso são duas requisições ao banco. ou uma arquitetura mais complexa.

Tem um exemplo aqui ( Popular combobox em funçao de outro combobox usando JSP + MySQL ) mas que o primeiro combobox é populado manualmente.

Ai seria mais fácil. No seu caso você terá que trazer Região do banco, popular o combo e ao selecionar preencher o segundo combo com as cidades.

Vejo ai uma necessidade de usar JSTL, o que vai ser um pouco mais avançado.

Aqui tem um exemplo ([Resolvido] ComboBox JSP e a JSTL não trás nada)

Problema é que, demanda de um pouco de conhecimento tanto em JSP como em JSTL.

Essa sua necessidade é para fins de aprendizado ou necessidade no trabalho?

É para um sistema que estou desenvolvendo na minha empresa.
Imaginei que fossem duas consultas no banco.
Quando abro a página já insiro os dados do banco no sistema.
A necessidade seria apenas PEGAR o dado do campo REGIAO pois a estrutura de consulta com ele inserio no WHERE da consulta no banco já esta pronta.
Só não consigo colocar o dado selecionado na variável JAVA.
Vou estudar os links que mandou e ja dou um retorno.
Muito obrigado pela atenção.

Olá solucionai da seguinte forma
Servlet pega dados
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);

        PreparedStatement stmt = null;
        List<Regiao> regioes = new ArrayList<>();
        int idregiao = 0;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn = ConexaoMySQL.getConexaoMySQL();
            java.sql.Statement st = conn.createStatement();
            st.executeQuery("SELECT DISTINCT REGIAO FROM `orcamentocontrole` ORDER BY REGIAO");
            ResultSet rs = st.getResultSet();
            while (rs.next()) {
                idregiao++;
                Regiao regiao = new Regiao();
                regiao.setRegiao(rs.getString("REGIAO"));
                regiao.setId(idregiao);
                regioes.add(regiao);
            }
            ConexaoMySQL.FecharConexao();
        } catch (SQLException | ClassNotFoundException ex) {
            Logger.getLogger(FiltroDAO.class.getName()).log(Level.SEVERE, null, ex);
            ConexaoMySQL.FecharConexao();
        }
        DadosFiltro.setId(Integer.parseInt(request.getParameter("idregiao")) - 1);
        DadosFiltro.setRegiao(regioes.get(DadosFiltro.getId()).getRegiao());
    }

Java faz o Filtro

public List<Filial> listarFilial() {
        PreparedStatement stmt = null;
        String reg = "";
        if (DadosFiltro.getRegiao() == null) {
            reg = "";
        } else {
            reg = DadosFiltro.getRegiao();
        }
        List<Filial> filiais = new ArrayList<>();
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn = ConexaoMySQL.getConexaoMySQL();
            java.sql.Statement st = conn.createStatement();
            st.executeQuery("SELECT DISTINCT DESCRICAO_FILIAL FROM `orcamentocontrole` WHERE `REGIAO` LIKE '%" + reg + "' ORDER BY DESCRICAO_FILIAL");
            ResultSet rs = st.getResultSet();
            while (rs.next()) {
                Filial filial = new Filial();
                filial.setFilial(rs.getString("DESCRICAO_FILIAL"));
                filiais.add(filial);
            }
            ConexaoMySQL.FecharConexao();
        } catch (SQLException | ClassNotFoundException ex) {
            Logger.getLogger(FiltroDAO.class.getName()).log(Level.SEVERE, null, ex);
            ConexaoMySQL.FecharConexao();
        }
        return filiais;
    }

.jsp realiza o filtro

<div id="divregiao" class="col-md-3">
 <p>
 <b>Região</b>
   </p>
   <select id="camporegiao" name="camporegiao" class="form-control show-tick" data-live-search="true">
        <% for(Regiao regiao: fdao.listarRegiao()){ %>
             <option value=<%=regiao.getId()%>><%=regiao.getRegiao()%></option>
                 <% } %>
                  </select>
               </div>
          </div>
              <div class="row clearfix">
              <div class="col-md-3">
                  <div id="divfilial">
                  <p>
                 <b>Filial</b>
                    </p>
                    <select id="campofilial" name="campofilial" class="form-control show-tick" data-live-search="true">
                       <% for(Filial filial: fdao.listarFilial()){ %>
                       <option value=<%=filial.getId()%>><%=filial.getFilial()%></option>
                      <% } %>
                    </select>
                  </div>
               </div>

Javascript chama servlet quando selecionado dado

$(document).ready(function () {
    $('select[name=camporegiao]').change(function () {
        $.ajax({
            type: 'GET',
            url: '../../FiltroFilial',
            data: 'idregiao=' + $('select[name=camporegiao]').val(),

            statusCode: {
                404: function () {
                    alert('Pagina não encontrada');
                },
                500: function () {
                    alert('erro no servidor')
                }
            },
            success: function (dados) {
                $("#divfilial").load(" #divfilial");
                $("#tabelaorc").load(" #tabelaorc");
            }
        });
    });
});

Valeu

Parabéns pelo esforço.

Marquei seu comentário como Resolução e adicione [RESOLVIDO] ao título.

valeu

Valeu