[RESOLVIDO] Receber parâmetro via JSP

7 respostas
J

Pessoal,

A tecnologia que tenho - e é permitido usar - pela empresa são: tomcat, jsp e sqlserver. Somente isso.

Alguém sabe como faço para receber parâmetro(s) informado pelo usuário em uma página JSP ? Esse parâmetro será transmitido e processado em uma stored procedure (sp) no SQL Server2008.

Quero criar 1 form com 3 campos onde o usário irá informar 3 parâmetros (código, data inicial, data final) e, ao clicar em um botão submit, os 3 parâmetros são enviados para o banco de dados que irá processar na stored procedure. A sp irá retornar uma mensagem texto se o registro foi inserido ou não.

Um ex. de página de relatório em jsp que uso atualmente é:

<%response.setHeader("Cache-Control","no-cache");%>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.text.*" %>
<%
session.setAttribute("JDBC", "jdbc:sqlserver://myServer;instanceName=myInstance;database=myDB;user=admin;password=admin");
  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  Connection        cn = DriverManager.getConnection(session.getAttribute("JDBC").toString());
  String        Escopo = (request.getParameter("Escopo")==null?"1":request.getParameter("Escopo"));
  String         Chave = (request.getParameter("Chave")==null?"1234":request.getParameter("Chave"));
  String         Visao = (request.getParameter("Visao")==null?"2":request.getParameter("Visao"));
  String         Ordem = (request.getParameter("Ordem")==null?"112":request.getParameter("Ordem"));
  String         DtRef = (request.getParameter("DtRef")==null?"20010101":request.getParameter("DtRef"));
  
  PreparedStatement db = cn.prepareStatement("{call myDB.dbo.myStoredProcedure(?,?,?,?,?)}");
  
  db.setInt(1, Integer.parseInt(Escopo.toString()));
  db.setInt(2, Integer.parseInt(Chave.toString()));
  db.setInt(3, Integer.parseInt(Visao.toString()));
  db.setInt(4, Integer.parseInt(Ordem.toString()));
  db.setString(5,DtRef.toString());
  
  ResultSet      rs =  db.executeQuery();
  String            Titulo = "Produtos 2012";
  String            lk = "";
  String            tp = "";
  String            th = "";
  String            T1 = "";
  String            T2 = "";
  String            US = "";
  String            C2 = "";
  String          HTML = "";
  String         LinkH = "metahOffX2_2012.jsp?Escopo=" + Escopo.toString() + "&Chave=" + Chave.toString() + "&Visao=" + Visao.toString() + "&DtRef=" + DtRef.toString() + "&Ordem=";
  String         LinkV = "metahOffX2_2012.jsp?Escopo=" + Escopo.toString() + "&Chave=" + Chave.toString() + "&DtRef=" + DtRef.toString() + "&Ordem=" + Ordem.toString() + "&Visao=";

  while(rs.next())
       {
	    tp = rs.getString("Tipo");
	    T1 = rs.getString("T1");
	    T2 = rs.getString("T2");
  	    US = rs.getString("US");
	    C2 = rs.getString("C2");
	    th = "<TR>"
		
+ "<TH WIDTH=35% COLSPAN=3>" + rs.getString("H0") + "</TH>"		
+ "<TH WIDTH=30% COLSPAN=5>Clientes</TH>"
+ "<TH WIDTH=35% COLSPAN=5>Volume</TH>"
+"</TR>"		
+ "<TR>"	   
+ "<TH WIDTH=5%  ><A STYLE='color: white;' HREF='" + LinkH + (Integer.parseInt(Ordem.toString())==1?"101":"1") + "'>" + rs.getString("H1") + "</A></TH>"
+ "<TH WIDTH=25% ><A STYLE='color: white;' HREF='" + LinkH + (Integer.parseInt(Ordem.toString())==2?"102":"2") + "'>" + rs.getString("H2") + "</A></TH>"		
+ "<TH WIDTH=5%  ><A STYLE='color: white;' HREF='" + LinkH + (Integer.parseInt(Ordem.toString())==3?"103":"3") + "'>" + rs.getString("H3") + "</A></TH>"		
+ "<TH WIDTH=6%  ><A STYLE='color: white;' HREF='" + LinkH + (Integer.parseInt(Ordem.toString())==6?"106":"6") + "'>Meta Janeiro</A></TH>"
+ "<TH WIDTH=6%  ><A STYLE='color: white;' HREF='" + LinkH + (Integer.parseInt(Ordem.toString())==7?"107":"7") + "'>c/ Saldo<BR>>=US$50mil</A></TH>"		   
+ "<TH WIDTH=6%  ><A STYLE='color: white;' HREF='" + LinkH + (Integer.parseInt(Ordem.toString())==8?"108":"8") + "'>%Atg.</A></TH>"
+ "<TH WIDTH=6%  ><A STYLE='color: white;' HREF='" + LinkH + (Integer.parseInt(Ordem.toString())==9?"109":"9") + "'>Desvio</A></TH>"	
+ "<TH WIDTH=6%  ><A STYLE='color: white;' HREF='" + LinkH + (Integer.parseInt(Ordem.toString())==14?"114":"14") + "'>Meta Junho</A></TH>"		
+ "<TH WIDTH=7%  ><A STYLE='color: white;' HREF='" + LinkH + (Integer.parseInt(Ordem.toString())==10?"110":"10") + "'>Meta <BR>Janeiro</A></TH>"
+ "<TH WIDTH=7%  ><A STYLE='color: white;' HREF='" + LinkH + (Integer.parseInt(Ordem.toString())==11?"111":"11") + "'>Realizado</A></TH>"
+ "<TH WIDTH=7%  ><A STYLE='color: white;' HREF='" + LinkH + (Integer.parseInt(Ordem.toString())==12?"112":"12") + "'>%Atg.</A></TH>"
+ "<TH WIDTH=7%  ><A STYLE='color: white;' HREF='" + LinkH + (Integer.parseInt(Ordem.toString())==13?"113":"13") + "'>Desvio</A></TH>" 	
+ "<TH WIDTH=7%  ><A STYLE='color: white;' HREF='" + LinkH + (Integer.parseInt(Ordem.toString())==15?"115":"15") + "'>Meta <BR>Junho</A></TH>"
+"</TR>";

  if(tp.equals("T"))
  {C2 = "<A HREF='" + rs.getString("Link") + "'>" + C2 +"</A>";
   HTML += "<TR>"
+  "<TD ALIGN=CENTER CLASS=Tot><B>" + rs.getString("C1")  + "</B></TD>"
+  "<TD ALIGN=LEFT   CLASS=Tot><B>" + C2                  + "</B></TD>"
+  "<TD ALIGN=RIGHT  CLASS=Tot><B>" + rs.getString("C3") + "</B></TD>"			    
+  "<TD ALIGN=RIGHT  CLASS=Yellow_tot><B>" + rs.getString("C6")  + "</B></TD>"
+  "<TD ALIGN=RIGHT  CLASS=Yellow_tot><B>" + rs.getString("C7")  + "</B></TD>"
+  "<TD ALIGN=RIGHT  CLASS=Yellow_tot><B>" + rs.getString("C8")  + "</B></TD>"
+  "<TD ALIGN=RIGHT  CLASS=Tot><B>"    + rs.getString("C9")  + "</B></TD>"
+  "<TD ALIGN=RIGHT  CLASS=Tot><B>"    + rs.getString("C14")+ "</B></TD>"
+  "<TD ALIGN=RIGHT  CLASS=Yellow_tot><B>" + rs.getString("C10") + "</B></TD>"
+  "<TD ALIGN=RIGHT  CLASS=Yellow_tot><B>" + rs.getString("C11") + "</B></TD>"
+  "<TD ALIGN=RIGHT  CLASS=Yellow_tot><B>" + rs.getString("C12") + "</B></TD>"
+  "<TD ALIGN=RIGHT  CLASS=Tot><B>" + rs.getString("C13") + "</B></TD>"
+  "<TD ALIGN=RIGHT  CLASS=Tot><B>" + rs.getString("C15") + "</B></TD>"
+  "</TR>";
 }
else if(tp.equals("D"))
{C2 = "<A HREF='" + rs.getString("Link") + "'>"  + C2          + "</A>";
 HTML += "<TR>"
+  "<TD ALIGN=CENTER >" + rs.getString("C1") + "</TD>"
+  "<TD ALIGN=LEFT  >" + C2                         + "</TD>"
+  "<TD ALIGN=CENTER >" + rs.getString("C3") + "</TD>"
+  "<TD ALIGN=RIGHT CLASS=Yellow >"+ rs.getString("C6") + "</TD>"
+  "<TD ALIGN=RIGHT CLASS=Yellow>" + rs.getString("C7") + "</TD>"
+  "<TD ALIGN=RIGHT CLASS=Yellow>" + rs.getString("C8") + "</TD>"
+  "<TD ALIGN=RIGHT >"         + rs.getString("C9") + "</TD>"
+  "<TD ALIGN=RIGHT >"         + rs.getString("C14")+ "</TD>"
+  "<TD ALIGN=RIGHT CLASS=Yellow >"+ rs.getString("C10")+ "</TD>"
+  "<TD ALIGN=RIGHT CLASS=Yellow>" + rs.getString("C11")+ "</TD>"
+  "<TD ALIGN=RIGHT CLASS=Yellow>" + rs.getString("C12")+ "</TD>"
+  "<TD ALIGN=RIGHT >" + rs.getString("C13")+ "</TD>"
+  "<TD ALIGN=RIGHT >" + rs.getString("C15")+ "</TD>"
+  "</TR>";
 }
}
  rs.close();
  db.close();
  cn.close();
  lk = ""

+ (Integer.parseInt(Escopo.toString())<2?"<A HREF='" + LinkV + "2'>Visão Escritório</A></B>&nbsp;&nbsp;&nbsp;&nbsp;":"")
+ (Integer.parseInt(Escopo.toString())<3?"<A HREF='" + LinkV + "3'>Visão Equipe</A></B>&nbsp;&nbsp;&nbsp;":"")
+ (Integer.parseInt(Escopo.toString())<4?"<A HREF='" + LinkV + "4'>Visão Célula</A></B>&nbsp;&nbsp;&nbsp;":"")
+ (Integer.parseInt(Escopo.toString())<5?"<A HREF='" + LinkV + "5'><B>Visão Carteira</A></B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;":"")          
 ;
%>
<LINK HREF="/upb/uar/principal/css/intranet.css" TYPE=text/css REL=stylesheet>

<HTML>
<TITLE><%=Titulo.toString()%></TITLE>
<BODY LEFTMARGIN=0 RIGHTMARGIN=0 TOPMARGIN=0 BOTTOMMARGIN=0
MARGINHEIGHT=0 MARGINWIDTH=0 STYLE="margin-left: 10;margin-top: 0;">
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=98% STYLE="border-style: none;">
<TR>    
 <TD ALIGN=LEFT  WIDTH=60% CLASS="Tit" VALIGN=TOP><%=Titulo.toString()%><BR><BR><%=T1.toString()%><BR><BR><Font Size=2><%=lk.toString()%></TD></Font>
 <TD ALIGN=RIGHT WIDTH=40% CLASS="Tit" VALIGN=TOP>Referência: <%=T2.toString()%><BR><WIDTH=20%> 
<A HREF="#" ONMOUSEOVER="this.T_TEMP=5000;this.T_WIDTH=110;this.T_SHADOWWIDTH=5;this.T_STICKY=1;
 this.T_TITLE='Selecione:';this.T_OFFSETX=50;return escape(Ch_DtRef2());"><FONT SIZE=2>Outros Meses</A>	
    </TD>
    </TR>
   </TABLE>
   <BR>
   <FORM ACTION="xxx.jsp" METHOD=POST>
   <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=98% STYLE="border-style: none;">
   <%=th.toString()%>
   <%=HTML.toString()%>
   </TABLE>
   <BR>
   <B><FONT SIZE=1>(*) - valor atual <%=T2.toString()%> = US$<%=US.toString()%> .</FONT></B>
   <BR>
  </TABLE>
  <BR>
   <A HREF="metahOffX2_2012_clientes.jsp">clientes2</A>
   </FORM>
 </BODY>
</HTML>
<SCRIPT>
function Ch_DtRef2()
{var lnk="metahOffX2_2012_clientes.jsp?Escopo=<%=Escopo.toString()%>&Chave=<%=Chave.toString()%>&Visao=<%=Visao.toString()%>&Ordem=<%=Ordem.toString()%>&DtRef=";
var ret="<A HREF='javascript: location.replace(\"" + lnk + "20120101\");'>? Janeiro</A><BR>"				  
return (ret);
}
</SCRIPT>
<SCRIPT LANGUAGE="javascript" TYPE="text/javascript" SRC="/myServer/scripts/wz_tooltip.js"></SCRIPT>

Agradeço pela atenção.

7 Respostas

H

Não entenda como ofensa, você sabe como utilizar JSP com Servlet? Se não, esse post pode te ajudar: Criando um WebServer.

Sua dúvida é como receber o parâmetro ou como passá-lo para SP?

J

jakefrog:
Não entenda como ofensa, você sabe como utilizar JSP com Servlet? Se não, esse post pode te ajudar: Criando um WebServer.

Sua dúvida é como receber o parâmetro ou como passá-lo para SP?

Sei que tudo (html etc) vira código java quando compilado no webServer (tomcat, no meu caso). Então vc pode considerar que toda pág. jsp é um servlet.

Como eu já disse, e não sei se vc entendeu - não entenda como ofensa tb ! - é que eu não posso usar classes java puras, ou seja, estou declarando tudo na jsp para serem compiladas no tomcat. Não tenho minhas classes java, web.xml etc. Não estou usando qualquer ide. Tenho à disposição apenas Notepad++( editor de texto), tomcat e o SQLServer.

Sei que terei que declarar tudo dentro da jsp, e gostaria de um exemplo, se alguém tiver.

Mesmo assim, obrigado pela atenção !!

F

mas se vc nao pode usar classes java… vc perde todo o poder da linguagem… faz ai com php entao rs!

J

Exatamente por isso criei esse post: receber uma ajuda de quem souber responder.

A

Rapaz trabalhar desse geito é complicado , não sei te responder mas acho que você vai ter que procurar um material bem antigo , pois quase não se trabalha mais assim.Mas um bom material de jsp e servlet puro é a apostila fj21 da Caelum http://www.caelum.com.br/apostilas/

W
request.getParameter("parametroPassadoNaUrlOuNomeDoCampoDoFormularioHtml");
ex.: index.jsp
&lt;HTML&gt;
    ...

    &lt;FORM action="outra.jsp"&gt;
        &lt;INPUT name="campo" type="text" /&gt;<BR />
        &lt;INPUT type="submit" value="Enviar" /&gt;
    &lt;/FORM&gt;

    ...
&lt;/HTML&gt;
outra.jsp
&lt;HTML&gt;
    ...

    &lt;%= request.getParameter("campo") %&gt;

    ...
&lt;/HTML&gt;
J

A quem interessar, tive que pesquisar e descobri uma solução em Ajax c/ javascript:

Faço uma pq. html p/ receber os parâmetros:

<HTML>
 <HEAD>
   <BODY>			
    <FORM>
      Código: <input type="text" name="COD">
      <br>
      <input type="submit" value="Gravar" onCLICK='javascript:grava(COD)'>
      <button type="button" onclick="javascript:window.history.go(-1);">Cancelar</button>						
    </FORM>
   </BODY>	
  </HEAD>
</HTML>	

<SCRIPT LANGUAGE="javascript" src="/CAMINHO/PARA/JAVASCRIPT/Ajax.js"></SCRIPT>
<SCRIPT>
  function grava(COD)
          {
           try {var upd = new Ajax();
                    upd.action = "rec.jsp";
                    upd.addParameter("COD", COD);					
                    upd.method="POST";
                    upd.loadHTML();
				window.location.reload();
                return true;
               }
           catch(e)
               {return false;
               }
          }

…e envio os parâmetros para rec.jsp, que por sua vez chama a procedure do SQLServer:

<%response.setHeader("Cache-Control","no-cache");%> <%@ page import="java.sql.*" %> <%@ page import="java.util.*" %> <%@ page import="java.text.*" %> <% session.setAttribute("JDBC","jdbc:sqlserver://myServer;instanceName=myInst;database=myDb;user=myUser;password=myPSW"); Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection cn = DriverManager.getConnection(session.getAttribute("JDBC").toString()); PreparedStatement db = cn.prepareStatement("{call minhaProcedure(?,?)}"); String COD = request.getParameter("COD"); String CPF = request.getParameter("CPF"); db.setInt(1, Integer.parseInt(COD.toString())); db.setString(2, CPF); db.executeUpdate(); db.close(); cn.close(); %>

Criado 24 de fevereiro de 2012
Ultima resposta 19 de mar. de 2012
Respostas 7
Participantes 5