/*
* ServletTeste.java
*
* Created on 6 de Agosto de 2010, 17:05
*/
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
import softwareexpress.sitef.jCliSiTefI;
/**
*
* @version
*/
public class ServletTeste extends HttpServlet {
private boolean SiTefIniciado = false;
private jCliSiTefI CliSiTef = null;
private int S;
private String ip = "172.22.202.103"; // Servidor
//private String ip = "172.22.70.80"; // fonte: do prompt do DOS (comando ipconfig)
private String ret = "inciando...";
private int ProximoComando;
private void iniciaSiTef() {
try {
CliSiTef = new jCliSiTefI();
} catch(Throwable e) {
ret = e.toString();
}
//out.println("1*" + ret);
if(CliSiTef != null) {
ret += ":jCliSiTefI CliSiTef = new jCliSiTefI();\n";
//out.println("2*" + ret);
CliSiTef.SetEnderecoSiTef(ip);
CliSiTef.SetCodigoLoja("00000000");
CliSiTef.SetNumeroTerminal("SE000001");
CliSiTef.SetConfiguraResultado(0);
S = CliSiTef.ConfiguraIntSiTefInterativo();
//out.println("3*" + ret);
if (S != 0) {
ret += "Erro na ConfiguraIntSiTefInterativo (" + ip + ")= " + S;
}
//out.println("4*" + ret);
CliSiTef.SetModalidade(100);
CliSiTef.SetValor("5000");
CliSiTef.SetNumeroCuponFiscal("123456");
CliSiTef.SetDataFiscal("20040514");
CliSiTef.SetHorario("120000");
CliSiTef.SetOperador("Operador1");
CliSiTef.SetRestricoes("xxxxxx");
S = CliSiTef.IniciaFuncaoSiTefInterativo();
CliSiTef.SetBuffer("");
CliSiTef.SetContinuaNavegacao(0);
//out.println("5*" + ret);
} else {
ret += "CliSiTef == null";
//out.println("7*" + ret);
}
//out.println("8*" + ret);
}
/** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
if(CliSiTef == null || request.getSession().getAttribute("pergunta") == null)
{
ret = "";
iniciaSiTef();
}
ret += "Entrando no loop\n";
boolean mantemLoop = true;
boolean usouResposta = false;
while(mantemLoop) {
request.getSession().setAttribute("buffer", "Buffer: " + CliSiTef.GetBuffer());
S = CliSiTef.ContinuaFuncaoSiTefInterativo();
if (S == -9)
break;
if (S == 10000) {
// Aqui deve-se colocar o tratamento de cada tipo de ProximoComando
ret += "ProximoComando = " + CliSiTef.GetProximoComando();
ret += "TipoCampo = " + CliSiTef.GetTipoCampo();
ret += "TamanhoMinimo = " + CliSiTef.GetTamanhoMinimo();
ret += "TamanhoMaximo = " + CliSiTef.GetTamanhoMaximo();
ret += "Buffer = " + CliSiTef.GetBuffer();
ProximoComando = CliSiTef.GetProximoComando();
if (ProximoComando >= 20 && ProximoComando != 23 && ProximoComando != 22) {
mantemLoop = false;
try {
String sBuffer = CliSiTef.GetBuffer();
String resposta = "";
if (request.getParameter("resposta") != null && usouResposta == false)
resposta = (String)request.getParameter("resposta");
request.getSession().setAttribute("pergunta", sBuffer);
if(resposta.length() < 1) // Se não tiver resposta
response.sendRedirect("teste2.jsp");
else {
ret += "Valor de entrada = " + resposta;
CliSiTef.SetBuffer(resposta.trim());
usouResposta = true;
mantemLoop = true;
request.getSession().setAttribute("saida", ret);
}
} catch (Exception e) {
}
}
}
}
request.getSession().setAttribute("saida", ret);
if (S != 10000) {
ret += "ContinuaFuncaoSiTefInterativo retornou " + S;
ret += "Trn pendentes: " + CliSiTef.ObtemQuantidadeTransacoesPendentes();
CliSiTef.SetConfirma((short) 1);
CliSiTef.FinalizaTransacaoSiTefInterativo();
ret += "FinalizaTransacaoSiTefInterativo()";
request.getSession().setAttribute("saida", ret);
request.getSession().setAttribute("acabou", "sim");
response.sendRedirect("teste2.jsp");
}
//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
*/
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
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/** Returns a short description of the servlet.
*/
public String getServletInfo() {
return "Short description";
}
// </editor-fold>
}
e uma pagina jsp:
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%
//Para o IE nao fazer cache do <div>
response.setHeader("Cache-Control","no-cache");
response.setHeader("Pragma","no-cache");
response.setDateHeader ("Expires", 0);
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Teste CliSiTef</title>
</head>
<body>
<h1>Teste CliSiTef</h1>
<form method="post" id="form1" action="ServletTeste">
<%=session.getAttribute("pergunta")%>
<input type="text" id="resposta" name="resposta">
<input type="submit">
<%=session.getAttribute("buffer")%>
<br>
Saida:
<textarea rows="50" cols="80">
<%=session.getAttribute("saida")%>
</textarea>
<%
if(session.getAttribute("acabou") != null)
{
session.setAttribute("saida", null);
session.setAttribute("buffer", null);
session.setAttribute("pergunta", null);
session.setAttribute("acabou", null);
%>
<script type="text/javascript">
document.form1.submit();
</script>
<%
}
%>
</form>
</body>
</html>
