Pessoal Bom dia,
Meu problema é básico, estou com um falha na realização do login do nosso sistema.
O login é básico, tenho 3 opções de acesso:
- CNPJ
- CEI (estas 2 opções oferecem acesos ao mesmo setor do sistema)
- Senha( Acesso à uma área diferenciada)
Abaixo meu formulário:
<table id="box">
<tr>
<td height="181"><!-- ÁREA DE ACESSO -->
<table class="central">
<tr>
<td><!--ACESSO EMPRESAS -->
<div id="login_empresas_form">
<table id="buttons_right">
<tr>
<td>
<form action="Controle" method="post">
<table>
<tr>
<td>
<img src="./images/spacer2.png" width="50" height="10" border="0" />
</td>
<td>
<img src="./images/spacer2.png" width="100" height="10" border="0" />
</td>
<td>
<img src="./images/spacer2.png" width="30" height="10" border="0" />
</td>
<td>
<img src="./images/spacer2.png" width="30" height="10" border="0" />
</td>
</tr>
<tr>
<td>
<span class="style1">CNPJ:</span>
</td>
<td>
<input type="text" name="cnpj" id="cnpj" style="width:150px;" maxlength="20" onclick="this.form.cnpj.value= '' " />
<input type="hidden" id="param_ok" name="param_ok" value="1"/>
</td>
<td>
<img src="./images/inter.gif" alt="Informe no campo ao lado, o C.N.P.J. de sua empresa - apenas os números" title="Digite no campo à esquerda o CNPJ de sua empresa para acessar." />
</td>
<td>
<input type="submit" name="cnpj_ok" value="" class="input_login" />
</td>
</tr>
</table>
</form>
</td>
</tr>
<tr>
<td>
<form action="Controle" method="post">
<table >
<tr>
<td>
<span class="style1">CEI:</span>
</td>
<td>
<input type="text" name="cei" id="cei" style="width:150px;" maxlength="20" onclick="this.form.cnpj2.value= '' " />
<input type="hidden" id="param_ok" name="param_ok" value="2"/>
</td>
<td>
<img src="./images/inter.gif" title="Digite no campo à esquerda o CEI de sua empresa para acessar." />
</td>
<td>
<input type="submit" name="cnpj_ok" value="" class="input_login" />
</td>
</tr>
<tr>
<td>
<img src="./images/spacer2.png" width="50" height="10" border="0" /> </td>
<td>
<img src="./images/spacer2.png" width="100" height="10" border="0" />
</td>
<td>
<img src="./images/spacer2.png" width="30" height="10" border="0" /> </td>
<td>
<img src="./images/spacer2.png" width="30" height="10" border="0" /> </td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</div>
<!-- FIM ACESSO EMPRESAS --> </td>
<td> </td>
<td><!--ACESSO ENTIDADES -->
<form action="Controle" method="post">
<input type="hidden" id="param_ok" name="param_ok" value="3"/>
<div id="login_sindicatos">
<div id="login_sindicatos_form">
<table id="buttons_right">
<tr>
<td colspan="4"><img src="./images/spacer.gif" width="200" height="10" /> </td>
</tr>
<tr valign="middle">
<td class="style1"> Senha: </td>
<td><input type="password" id="senha" name="senha" value="senha" style="width:140px;text-align:center;" onclick="this.form.senha.value= '' " /> </td>
<td><img src="./images/inter.gif" title="Digite no campo à esquerda a senha de sindicato para acessar." /> </td>
<td><input type="submit" name="cnpj_ok3" value="" class="input_login" /> </td>
</tr>
</table>
</div>
</div>
</form>
<!-- FIM ACESSO ENTIDADES --> </td>
</tr>
</table>
<!-- FIM ÁREA DE ACESSO --> </td>
</tr>
<tr>
<td height="154">
<div align="center">
<!-- ÁREA DE LOJISTAS E CADASTROS -->
<table class="central">
<tr>
<td><div class="bt_Niteroi" > <a href="#" onclick="$('#content').load('inicio/sind_Niteroi.jsp');" style="text-decoration:none;"> <img src="./images/spacer2.png" width="342" height="110" border="0" /> </a>
<div id="sindi_niteroi_form"> </div>
</div></td>
<td><img src="./images/spacer.gif" width="25" height="140" /> </td>
<td><!-- ÁREA DE FEAAC E LOJISTAS RIO -->
<!-- FIM ÁREA DE FEAAC E LOJISTAS RIO -->
<table >
<tr>
<td><div id="cad_FEAAC"> <a href="#" onclick="$('#content').load('inicio/listFEAAC.jsp');" style="text-decoration:none;"> <img src="./images/spacer2.png" width="146" height="59" border="0" /> </a> </div></td>
</tr>
<tr>
<td><div id="cad_SINDILOJAS"> <a href="#" onclick="$('#content').load('inicio/sind_Rio.jsp');" style="text-decoration:none;"> <img src="./images/spacer2.png" width="146" height="59" border="0" /> </a> </div></td>
</tr>
</table></td>
</tr>
</table>
<!-- FIM ÁREA DE LOJISTAS E CADASTROS -->
</div>
</td>
</tr>
</table>
Por meio deste formulário o pessoal preenche os dados e envia para esta servlet:
package br.com.ups.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.ups.util.ConnectionFactory;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* Servlet implementation class Controle
*/
public class Controle extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
private static final long serialVersionUID = 1L;
String cnpj, senha, aux0, aux1, aux2, aux3, opcao, l;
float result;
//private static final String JNDINome = "jdbc/bd_site";
public void init() {
try {
Class.forName("org.postgresql.Driver");
}
catch (ClassNotFoundException e) {
System.out.println(e.toString());
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getMethod();
aux0 = request.getParameter("param_ok");
aux1 = request.getParameter("cnpj");
aux2 = request.getParameter("senha");
aux3 = request.getParameter("cei");
if (aux0.equals("3"))
{
opcao = "2";
senha = aux2.toUpperCase();
}
else if (aux0.equals("2"))
{
opcao = "1";
cnpj = aux3.replaceAll("\\D", "");
}
else
{
opcao = "1";
cnpj = aux1.replaceAll("\\D", "");
}
aux0 = "";
aux1 = "";
aux2 = "";
aux3 = "";
try {
sendSearchResult(request, response);
} catch (Exception e) {
e.printStackTrace();
}
//realizaOperacao(request, response);
}
void sendSearchResult(HttpServletRequest request, HttpServletResponse response)throws Exception {
//PrintWriter out = response.getWriter();
String sql = "";
Connection con = null;
try {
ConnectionFactory conn = new ConnectionFactory();
//con = conn.getConnection(JNDINome);
con = conn.getConnection();
Statement s = con.createStatement();
if (opcao=="1"){
sql =
"SELECT *" +
" FROM vempresa1" +
" WHERE cnpj='" + cnpj + "' AND " +
"status_plano = 0 AND " +
"status_empresa = 0";
} else {
sql =
"SELECT * " +
"FROM vsindicato " +
"WHERE " +
"vsindicato.enti_ds_senha_net LIKE '" + senha + "' " +
"AND vsindicato.enti_fl_status = 0";
}
ResultSet rs = s.executeQuery(sql);
if (opcao.equals("1")){
if(rs.next()){
request.getSession().setAttribute("nome", rs.getObject("nome"));
request.getSession().setAttribute("cnpj", rs.getObject("cnpj"));
request.getSession().setAttribute("plano", rs.getObject("plano"));
request.getRequestDispatcher("./emp_index.jsp").forward(request,response);
}else{
cnpj= "CEI" + cnpj;
sql = "SELECT " +
"asftempr.empr_ds_razao_social AS nome, " +
"asftempr.empr_cd_cei AS cei, " +
"asftempr.empr_cd_cnpj AS cnpj, " +
"asftconv.conv_ds_descricao AS plano, " +
"asftconv.conv_fl_status AS status_plano, " +
"asftemcv.emcv_fl_status AS status_empresa, " +
"asftseat.seat_ds_descricao AS desc_plano " +
"FROM " +
"asftempr , " +
"asftconv , " +
"asftseat , " +
"asftemcv " +
"WHERE " +
"asftempr.empr_cd_cei = '" + cnpj + "' " +
"AND asftemcv.empr_cd_nseq = asftempr.empr_cd_nseq " +
"AND asftconv.conv_cd_nseq = asftemcv.conv_cd_nseq " +
"AND asftconv.seat_cd_nseq = asftseat.seat_cd_nseq";
rs = s.executeQuery(sql);
if(rs.next()){
request.getSession().setAttribute("nome", rs.getObject("nome"));
String cei = (String) rs.getObject("cei");
if(cei.substring(0, 3).equals("CEI")){
cei = cei.substring(3, cei.length());
}
request.getSession().setAttribute("cei", cei.toString());
request.getSession().setAttribute("cnpj", rs.getObject("cnpj"));
request.getSession().setAttribute("plano", rs.getObject("plano"));
request.getRequestDispatcher("./emp_index.jsp").forward(request,response);
}else{
request.getRequestDispatcher("./index.jsp?l=F").forward(request,response);
}
}
// System.out.println("CEI - " + request.getSession().getAttribute("cei"));
// System.out.println("CNPJ - " + request.getSession().getAttribute("cnpj"));
// System.out.println("PLANO - " + request.getSession().getAttribute("plano"));
}
else
{
if(rs.next()){
request.getSession().setAttribute("id", rs.getObject("id2"));
request.getSession().setAttribute("convenio", rs.getObject("convenio"));
//Alteração provisória
String sigla=(String) rs.getObject("enti_ds_sigla");
String uf = (String) rs.getObject("enti_ds_uf");
if ((sigla.contains("SIEMACO")) && (uf.equals("PR"))) {
sigla = sigla.replace("SIEMACO", "FEACONS");
request.getSession().setAttribute("sigla", sigla);
} else {
request.getSession().setAttribute("sigla", rs.getObject("enti_ds_sigla"));
}
request.getSession().setAttribute("uf", rs.getObject("enti_ds_uf"));
String x = (String) rs.getObject("tipo");
if (x==null)
{
x="F";
}
request.getSession().setAttribute("tipo", x );
//request.getSession().setAttribute("cnpj", rs.getObject("cnpj"));
request.getRequestDispatcher("./sind_index.jsp").forward(request,response);
}else{
request.getRequestDispatcher("./index.jsp?l=F").forward(request,response);
}
}
s.close();
con.close();
}
catch (SQLException e){
e.printStackTrace();
request.getRequestDispatcher("./error.jsp?e=" + e.getMessage() + " - " + e.getCause()).forward(request,response);
}
}
}
O código ta feio, mas funciona, até ai não tenho maiores problemas. O que surgiu é, se 2 empresas efetuarem o Login no mesmo momento, ao mesmo tempo, apenas uma identidade é registrada, por exemplo
ZÉ FULANO LTDA informas seu CNPJ ao mesmo tempo que o JOÃO CICLANO ME LTDA. O Sistema captura apenas uma das empresas.
Pode ser um erro de lógica, ou um amigo me disse que eu tinha de capturar os parâmetros pelo método POST() , mas não entendi.
Alguém já passou por isso? Sabe o que pode ser, o que estou errando?
Grato pessoal