Title: Parameters passed by client
1Parameters passed by client
- One of the most important features to make the
web an interactive environment is the passing of
parameters from client so the server - The client can pass parameters with the request
according to the following format - http//hostport/servlet?param1value1param2val
ue2 - This means the server will receive 2 parameters
one with name param1 and value value1 and the
other with name param2 and value value2 - The servlet can ask for those values in the
following way - String valueOfParam1 request.getParameter(param
1) - String valueOfParam2 request.getParameter(param
2) - Parameter names and values are strings
- Names of parameters are case sensitive (Param1 !
param1)
2http//hostport/ServletParameter1?firstnameNelso
nlastnameBaloian
import javax.servlet.http. import
javax.servlet. import java.io. public class
ServletParameter1 extends HttpServlet
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, java.io.IOException
PrintWriter out null
response.setContentType("text/html") //
obtaining parameter value for parameter named
firstname" String fname request.getParamete
r(firstname") // obtaining parameter
value for parameter named lastname" String
lname request.getParameter(lastname")
out response.getWriter() out.println(lth1gt
"Hello "fname" lnamelt/h1")
out.close()
3The normal way is to gather parameters with forms
- A Form is an HTML page which may contain
graphical objects to gather information which is
sent to the server automatically in an URL
ltHTMLgt ltH1gt Collecting parameters lt/H1gt ltFORM
ACTIONServletParameter1gt Nombre ltINPUT
TYPETEXT NAMEfistnamegtltBRgt Apellido ltINPUT
TYPETEXT NAMElastnamegtltBRgt ltINPUT TYPESUBMIT
VALUEMANDARgt lt/HTMLgt
4- ltHTMLgt
- ltH1gt Collecting parameterslt/H1gt
- ltFORM ACTIONServletParameter1gt
- Nombre ltINPUT TYPETEXT NAMEfistnamegtltBRgt
- Apellido ltINPUT TYPETEXT NAMElastnamegtltBRgt
- ltINPUT TYPESUBMIT VALUEMANDARgt
- lt/FORMgt
- lt/HTMLgt
ltFORMgt y lt/FORMgt Definen el comienzo y fin de un
formulario que se llena para transferir los
datos al servidor ACTION define que acción
se tomará, en este caso, a dónde se mandarán los
datos ingresados una vez que se oprima el botón
de submit
5- ltHTMLgt
- ltH1gt Collecting parameterslt/H1gt
- ltFORM ACTIONServletParameter1gt
- Nombre ltINPUT TYPETEXT NAMEfistnamegt ltBRgt
- Apellido ltINPUT TYPETEXT NAMElastnamegt ltBRgt
- ltINPUT TYPESUBMIT VALUEMANDARgt
- lt/FORMgt
- lt/HTMLgt
ltINPUT es para definir un elemento de entrada
de datos o de interacción Este elemento será
transferido como parámetro con la URL TYPE
define el tipo, en este caso se trata de un texto
(TEXT) NAME es el nombre del elemento de input
y también será el nombre del parámetro
6- ltHTMLgt
- ltH1gt Collecting parameterslt/H1gt
- ltFORM ACTIONServletParameter1gt
- Nombre ltINPUT TYPETEXT NAMEfistnamegt ltBRgt
- Apellido ltINPUT TYPETEXT NAMElastnamegt ltBRgt
- ltINPUT TYPESUBMIT VALUEMANDARgt
- lt/FORMgt
- lt/HTMLgt
TYPESUBMIT define un elemento con forma de
botón que al oprimirlo (click) contacta la URL
definida en ACTION y envia como parámetros los
contenidos de Los elementos definidos como
INPUT VALUE define la leyenda que tendrá el
botón
7Al oprimir el botón se obtiene el Resultado que
muestra la figura de abajo Fijarse en la URL que
se generó Automáticamente con los parámetros
8 Qué página genera esto ?
- ltHTMLgt
- ltH1gt Este es el programa Jalisco, nunca
pierdelt/H1gt - ltFORM ACTIONJaliscogt
- Ingresa un número cualquiera y
- luego oprime el botón
- ltINPUT TYPETEXT NAMEnumerogtltBRgt
- ltINPUT TYPESUBMIT VALUEjugargt
- lt/FORMgt
- lt/HTMLgt
9http//hostport/Jalisco?numero47
import javax.servlet.http. import
javax.servlet. import java.io. public class
Jañisco extends HttpServlet public void
doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, java.io.IOException
PrintWriter out null
response.setContentType("text/html") //
obtaining parameter value for parameter named
numero" String snum request.getParameter(n
umero") // converting to integer valus
int num Integer.parseInt(snum) out
response.getWriter() out.println(lth1gt Te
gano con el "(num1)"lt/h1")
out.close()
10 El siguiente código HTML
ltHTMLgt ltH1gt Servlet Calculadora lt/H1gt ltH2gt
Ingrese ambos operandos de una suma lt/H2gt
ltBRgt ltFORM ACTION"ServletCalculadora"gt ltINPUT
TYPETEXT SIZE5 NAMEop1gt ltINPUT TYPETEXT
SIZE5 NAMEop2gtltBRgt ltBRgt ltINPUT TYPESUBMIT
VALUE"Sumar"gt lt/FORMgt lt/HTMLgt
Genera la siguiente página
111 (Muy Fácil) Escriba el servlet
ServletCalculadora que al ser contactadoResponda
con la suma de ambos números 2 (Fácil)
modifique el HTML de modo que la operación
también sea ingresada por el usuario y el servlet
haga la operación adecuada (solo se permite , -,
, /
12Other Input types we will use
- Radio only one element between various
alternatives can be chosen - Select like radiobutton but with puldown menu
- TextArea like text but can contain many lines.
- Password like text but does not show the content
( instead of what you really input)
13Radio
lth2gt Elija una laternativa lt/h2gt ltHTMLgt ltinput
typeradio nameradio1 valuevalor1gt Alternativa
1 ltbrgt ltinput typeradio nameradio1
valuevalor2gt Alternativa 2 ltbrgt ltinput
typeradio nameradio1 valuevalor3gt Alternativa
3 ltbrgt ltinput typeradio nameradio1
valuevalor4gt Alternativa 3 ltbrgt lt/HTMLgt
14Radio
lth2gt Elija una laternativa lt/h2gt ltHTMLgt ltinput
typeradio nameradio1 valuevalor1gt Uvas
ltbrgt ltinput typeradio nameradio1
valuevalor2gt Peras ltbrgt ltinput typeradio
nameradio1 valuevalor3gt Higos ltbrgt ltinput
typeradio nameradio1 valuevalor4gt Mangos
ltbrgt lt/HTMLgt
Código para chequear cuál alternativa se
seleccionó
String alt request.getParameter(radio1)
if (alt.equals(valor1)) out.println(Ud.
Eligió Uvas) else if (alt.equals(valor2))
out.println(Ud. Eligió Peras) else
if(alt.equals(valor3) out.println(Ud. Eligió
Higos) else out.println(Ud. Eligió
Mangos)
15Select (Elección entre varias alternativas con
pul-down menu)
HTML
SERVLET
Preview
16Text Area
HTML
lth2gtIngrese aqui su opinion lt/h2gt ltTEXTAREA
NAMETa1" ROWS10 COLS40gt lo que se excriba
aca saldra en el area pero se puede
editar lt/TEXTAREAgt
SERVLET
String texto texto request.getParameter(
Ta1)