Problemas com select

ESTOU APANHANDO BASTANTE COM UM DETALHE BÁSICO:
FIZ ESTE JSP COM UM SELECT, ONDE GOSTARIA QUE QUANDO SELECIONASSE, ENVIASSE O DADO À SERVLET, MAS NADA ACONTECE, POR FAVOR, ME DÊEM UMA MÃO, AGRADECERIA MUITO SE SOLUCIONASSEM.

[code]

<c:forEach var=“empresa” items="${dao.lista}" varStatus=“cod_empresa”>
${empresa.cod_empresa}
</c:forEach>

</tr>

<tr>
	<td>Endereço:</td>
	<td><input type="text" name="endereco" size="40" /></td>
</tr>

<tr>
	<td>Telefone:</td>
	<td><input type="text" name="telefone" /></td>
</tr>

<tr>
	<td>E-mail:</td>
	<td><input type="text" name="email" /></td>
</tr>

<tr>
	<td>Ramo de atividade:</td>
	<td><input type="text" name="ramodeatividade" /></td>
</tr>

<tr>
	<td>Site:</td>
	<td><input type="text" name="site" />
	<td>
</tr>
<tr>
	<td>Descrição:</td>
	<td><input type="text" name="descricao" />
	<td>
</tr>
<tr>
	<td>Prioridade:</td>
	<td><select name="prioridade">
		<option value="0">0</option>
		<option value="1">1</option>
		<option value="2">2</option>
		<option value="3">3</option>
		<option value="4">4</option>
		<option value="5">5</option>
		<option value="6">6</option>
		<option value="7">7</option>
		<option value="8">8</option>
		<option value="9">9</option>
	</select></td>
	<td>
</tr>


<tr>
	<td><input type="hidden" name="business"
		value="AlteraEmpresaLogic" /></td>


</tr>
<tr>
	<td>Logo:</td>
	<td><input type="text" name="logo" size="40" />
	<td>
</tr>
<tr>
	<td><input type="submit" value="Alterar" /></td>

</tr>
<tr>
	<td><input type='button' onClick="location.href='adm.jsp'"
		name="voltar" value="Voltar"></td>
</tr>
Nome:
[/code] SERVLET [code]

package br.com.lza.visao;

import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.lza.dao.EmpresaDAO;
import br.com.lza.modelo.Empresa;

public class AlteraEmpresaLogic implements BusinessLogic {

public void execute(HttpServletRequest request, HttpServletResponse response)

throws Exception {

	System.out.println("Executando a lógica e redirecionando...");
	Empresa empresa = new Empresa();
	long cod_empresa = Long.parseLong(request.getParameter("cod_empresa"));
	empresa.setCod_empresa(cod_empresa);

	long prioridade = Long.parseLong(request.getParameter("prioridade"));
	empresa.setPrioridade(prioridade);
	
	empresa.setLogo(request.getParameter("logo"));
	empresa.setNome(request.getParameter("nome").toUpperCase());
	empresa.setEndereco(request.getParameter("endereco").toUpperCase());
	empresa.setTelefone(request.getParameter("telefone"));
	empresa.setEmail(request.getParameter("email").toLowerCase());
	empresa.setRamodeatividade(request.getParameter("ramodeatividade")
			.toUpperCase());
	empresa.setSite(request.getParameter("site").toLowerCase());
	empresa.setDescricao(request.getParameter("descricao").toUpperCase());

	EmpresaDAO dao = new EmpresaDAO();
	dao.altera(empresa);

	RequestDispatcher rd = request
			.getRequestDispatcher("listaempresascriplet.jsp");
	rd.forward(request, response);
	System.out.println("Alterando empresa ..." + empresa.getNome());
}

}
[/code]

MÉTODO NO DAO

public void altera(Empresa empresa) {
		String sql = "update empresa set nome=Upper(?), endereco=Upper(?), telefone=?, email=lower(?), ramodeatividade=Upper(?), site=lower(?), descricao=Upper(?), prioridade=?, logo=lower(?) where cod_empresa=?";
		try {
			PreparedStatement stmt = connection.prepareStatement(sql);
			stmt.setLong(1, empresa.getCod_empresa());
			stmt.setString(2, empresa.getNome());
			stmt.setString(3, empresa.getEndereco());
			stmt.setString(4, empresa.getTelefone());
			stmt.setString(5, empresa.getEmail());
			stmt.setString(6, empresa.getRamodeatividade());
			stmt.setString(7, empresa.getSite());
			stmt.setString(8, empresa.getDescricao());
			stmt.setLong(9, empresa.getPrioridade());
			stmt.setString(10, empresa.getLogo());
			stmt.execute();
			stmt.close();
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}

sem clicar pra enviar nada antes? só de selecionar já ir pro servlet? se for acho q terá q usar ajax ou javascript…nunca fiz pois uso JSF e lá dá di boa, no JSP vc terá q pesquisar no google…blz?

Então, deve ir para a servlet após o preenchimento de todos os dados, após clicar no botão tipo Submit.
Obrigado.

com que nome você mapeou a Servlet?

no atributo action do formulario você deve colocar o caminho (url) e no nome da da Servlet mapeado no web.xml ou anotação.

<form action="url/servlet" method="POST">

AlteraEmpresaLogic

Mas, Junior, até antes funcionava desta maneira com um input type text, mas eu quis incluir um para fazer um teste, mas não tive sucessso.

ignore o que eu disse.

você criou um Factory, como na apostila FJ-21 da Caelum, certo?

public class AlteraEmpresaLogic implements BusinessLogic {

relendo seu post vi algo estranho:

no atributo value da opção da lista você deve colocar a chave primaria da tabela que deseja atualizar.

algo como:

<option value="${empresa.cod_empresa}">${empresa.nome}</option>

Bom dia a todos.

Afinal de contas, voce quer atualizar (Update) ou selecionar (Select) registros :?: :?: :?:

Pelo que li lá no seu DAO, voce está atualizando (Update), e esta instrução sql apenas envia dados e não retorna nada. Enquanto que no seu post voce diz que está tentando realizar um Select

Ainda assim voce seguiu a dica do nosso amigo Wbdsjunior, quando disse em mapear a Servlet :?:

Isto é feito lá dentro da past WEB-INF onde voce configura o arquivo web.xml, se você não mapeá-la, o sistema não saberá que há servlets na sua aplicação.

Exatamente.

está assim a minha web.xml.

<?xml version="1.0" encoding="UTF-8"?>


LuzianiaOnline

index.html
index.htm
index.jsp
default.html
default.htm
default.jsp

<servlet>
	<servlet-name>syp</servlet-name>
	<servlet-class>br.com.lza.visao.ControllerServlet</servlet-class>
</servlet>



<servlet-mapping>
	<servlet-name>syp</servlet-name>
	<url-pattern>/mvc</url-pattern>
</servlet-mapping>

<filter>
	<filter-name>LogFiltro</filter-name>
	<filter-class>br.com.lza.visao.LogFiltro</filter-class>
</filter>
<filter-mapping>
	<filter-name>LogFiltro</filter-name>
	<url-pattern>*.jsp</url-pattern>
</filter-mapping>

<filter>
	<filter-name>FiltroConexao</filter-name>
	<filter-class>br.com.lza.visao.FiltroConexao</filter-class>
</filter>
<filter-mapping>
	<filter-name>FiltroConexao</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>

Se estiver errando algo, por favor, me explique.

Em relação à retornar, realmente, o DAO apenas faz o update no banco, mas, ao tentar ultilizar o , não parece enviar informações à servlet, tendo em vista que o DAO recebe o CODIGO e altera com base em um código.

estão faltando algumas coisas aí. recomendo ler a apostila da Caelum que citei anteriormente.

de qualquer maneira, tente algo como:

<form action="/mvc/syp?logic=AlteraEmpresaLogic" method="POST">

Muito obrigado, vou testar, depois entro em contato.

Não funcionou, aparece uma página de erro.