Download Teórico

Document related concepts
no text concepts found
Transcript
Profesor: Juan Antonio López Quesada.
Ciclo Formativo de Grado Superior: IAW
WEB: http://dis.um.es/~lopezquesada
Pag. 1
Unidad 5
Programación JSP. Parte I (4.5p)
Alumno: ____________________________________________
1. Entorno Tutorial2ASIRJsp.WEB calificación (1.5): _______________
2. Parte II Práctica calificación (4): _______________
3. Dado el código necesario para obtener la tabla de multiplicar soportada por el siguiente
enlace determina los errores existentes -solución- (0.5p) y que añadirías para mejorar el
código presentado (0.5p):
<a href="jsps/tabla.jsp?tabla=100&ci=4&cs=12">Tabla de Multiplicar href</a>
tabla.jsp
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="java.lang.*,java.util.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<%
String aux=request.getParameter("calcular");
String aux1=request.getParameter("ci");
String aux2=request.getParameter("cs");
int valor=Integer.valueOf(aux).intValue();
int ci=Integer.valueOf(aux1).intValue();
int cs=Integer.valueOf(aux2).intValue();
%>
<h1>Tabla de multiplicar</h1>
<%
int indice;
for(indice=ci;indice<=cs;)
{
%>
<h3><%=valor%> * <%! indice %> = <%= indice*valor %> </h3>
<%
}
%>
</body>
</html>
Errores -solución- (0.5p):
Explicación “Mejora del Código” (0.5p):
Profesor: Juan Antonio López Quesada.
Ciclo Formativo de Grado Superior: IAW
WEB: http://dis.um.es/~lopezquesada
Pag. 2
4. Rellena la siguiente tabla: (0.5 p)
Síntaxis
<%= XXXXXX %>;
Interpretación
<% XXXXXX %>;
<%! XXXXXX %>
<%@ XXXXXX %>
5. Cuestionario…………(1.5 puntos) (No resta las incorrectas)
1. Los servlets y Java Server Pages (JSPs) son:
A. métodos de creación de páginas web estáticas en servidor
usando el lenguaje PHP.
B. métodos de creación de páginas web estáticas en servidor
usando el lenguaje Java.
C. métodos de creación de páginas web dinámicas en
servidor usando el lenguaje Java.
D. Todas las cuestiones son falsas
2. Encerramos el código de las partes dinámicas en unas etiquetas especiales, la mayoría de las
cuales son:
A.
B.
C.
D.
<%= expression %>;
<% code %>;
<%@ page att="val" %>
<%! code %>
3. Los elementos de script nos permiten especificar código Java que se convertirá en parte del
servlet resultante, las directivas JSP nos permiten configurar alguna información que pueda
ser usada en nuestra página JSP, dichas directivas se explicitan mediante:
Profesor: Juan Antonio López Quesada.
Ciclo Formativo de Grado Superior: IAW
WEB: http://dis.um.es/~lopezquesada
A.
B.
C.
D.
Pag. 3
<%= expression %>;
<% code %>;
<%@ page att="val" %>
<%! code %>
4. Los elementos de script nos permiten insertar código Java dentro del servlet que se generará
desde la página JSP actual. Hay tres formas: Expresiones de la forma ____1____ que son
evaluadas e insertadas en la salida. Scriptlets de la forma ____2____ que están formados por
código puro java, y declaraciones de la forma ____3____ que se utilizan para entre otras
cuestiones crear métodos.
A.
B.
C.
D.
1:<%@--- %> 2:<%! ---%> 3:<%= ---%>
1:<%!---- %> 2:<%= ---%> 3:<%--- %>
1:<%= ----%> 2:<% --- %> 3:<%!----%>
Todas las afirmaciones son falsas
5. En JSP hay un gran número de variables predefinidas entre las que hemos visto están:
A.
B.
C.
D.
request, session, out
request, System, out
for, session, out
request, String, out
6. Para recoger los datos que llegan desde la barra del navegador, java utiliza una variable
predefinida denominada ____1____con la que utiliza el metodo ____2____
A.
B.
C.
D.
1: session 2:getParameter
1: out
2:getParameterValues
1: request 2:getParameter
Todas las afirmaciones son incorrectas
7. En el caso de tener un campo/atributo que puede devolver más de un valor precisamos
(considerando este caso):
<input type="checkbox" id="aviso" name="aviso" value="0" /> <label
for="aviso">Primero</label>
<input type="checkbox" id="aviso" name="aviso" value="1" /> <label
for="aviso">Segundo</label>
<input type="checkbox" id="aviso" name="aviso" value="2" /> <label
for="aviso">Tercero</label>
...
<input type="checkbox" id="aviso" name="aviso" value="6" /> <label
for="aviso">Séptimo</label>
A.
B.
C.
D.
request.getParameterValues("checkbox")
request.getParameter("aviso")
out.getParameterValues("aviso")
request.getParameterValues("aviso")
Profesor: Juan Antonio López Quesada.
Ciclo Formativo de Grado Superior: IAW
WEB: http://dis.um.es/~lopezquesada
Pag. 4
8. En el caso de tener un campo/atributo que puede devolver más de un valor precisamos
(considerando este caso):
<input type="checkbox" id="aviso" name="aviso" value="0" /> <label
for="aviso">Primero</label>
<input type="checkbox" id="aviso" name="aviso" value="1" /> <label
for="aviso">Segundo</label>
<input type="checkbox" id="aviso" name="aviso" value="2" /> <label
for="aviso">Tercero</label>
...
<input type="checkbox" id="aviso" name="aviso" value="6" /> <label
for="aviso">Séptimo</label>
Luego cuando lo recibes te devuelve un:
A.
B.
C.
D.
Integer
String[]
String
Integer[]
9. Respecto a las sesiones:
A. No es aconsejable utilizarlas para la identificación de usuarios y control de acceso a zonas
privadas.
B. Es importante para no perder información al ir navegando por el entorno web como es el
caso del carrito de la compra.
C. Las sesiones se caracterizan por guardarse en el cliente.
D. Todas las afirmaciones son correctas.
10. Para obtener la sesión de un usuario se utiliza el método _______ que devuelve una interfaz
de tipo HttpSession.
<%
HttpSession sesion=request.________();
%>
A.
B.
C.
D.
getSession().
getParameter().
getParameterValues().
getElementById().
11. Para guardar un objeto en una sesión se utiliza el método:
<%
HttpSession sesion=request.getSession();
sesion._____________ (“perfil”,new Integer(1));
%>
A.
B.
C.
D.
getSession().
setAttribute().
getParameterValues().
getElementBayId().
Profesor: Juan Antonio López Quesada.
Ciclo Formativo de Grado Superior: IAW
WEB: http://dis.um.es/~lopezquesada
Pag. 5
12. Para recuperar un objeto en una sesión de tipo String:
A. Opción 1:
<%
HttpSession sesion=request.getSession();
String nombre=sesion.getAttribute(“nombre”);
out.println(“Contenido de nombre: “+nombre);
%>
B. Opción 2:
<%
HttpSession sesion=request.getSession();
String nombre=(String)sesion.getAttribute(“nombre”);
out.println(“Contenido de nombre: “+nombre);
%>
C. Opción 3:
<%
HttpSession sesion=request.getSession();
String nombre=(String)sesion.setAttribute(“nombre”);
out.println(“Contenido de nombre: “+nombre);
%>
D. Opción 4:
<%
HttpSession sesion=request.getSession();
String nombre=sesion.setAttribute(“nombre”);
out.println(“Contenido de nombre: “+nombre);
%>
13. Si no existe ningún objeto almacenado en la sesión bajo el identificador que se utiliza en el
método de recogida de objetos en la sesión, el valor devuelto será:
A.
B.
C.
D.
null
1
0
Todas las afirmaciones son incorrectas
14. ______________ este método destruye la sesión de forma explícita, y libera de memoria
todos los objetos (atributos) que contiene la sesión.
A.
B.
C.
D.
null()
setAttribute()
getAttribute()
invalidate()
15. Para recoger el valor introducido en un campo input con el método asociado a la variable
predefinida request, que hay que tener en consideración:
A.
B.
C.
D.
El valor del atributo id=”” de la etiqueta input.
El valor del atributo name=”” de la etiqueta input.
El valor del atributo class=”” de la etiqueta input.
El valor del atributo type=”” de la etiqueta input.
Profesor: Juan Antonio López Quesada.
Ciclo Formativo de Grado Superior: IAW
WEB: http://dis.um.es/~lopezquesada
Pag. 6
6. Rellena con el código necesario para realizar un incrementador web. (0.5 p)
incrementador.jsp
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="java.lang.*,java.util.*"%>
<!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>JSP Page</title>
</head>
<body>
<h1>Contador</h1>
<%
String aux=request.getParameter("valor");
String aux1=request.getParameter("action");
String aux2=request.getParameter("cantidad");
int valor=0;
if (
)
{
try
{
}
catch(Exception error)
{/*……*/ }
}
%>
<h3>
</h3>
<form action=”incrementador.jsp”>
<input type=”hidden”
Cantidad a incre/decre: <input type=”text”
Tipo operación:
+ <input type=”radio”
- <input type=”radio”
<input type=”submit” name=”enviar” value=”calcular”/>
</form>
</body></html>
Profesor: Juan Antonio López Quesada.
Ciclo Formativo de Grado Superior: IAW
WEB: http://dis.um.es/~lopezquesada
Pag. 7
7. Rellena con el código necesario para plasmas el Manejo de Sesiones para el acceso a zona
privada. (1p)
INDEX.JSP
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="java.lang.*,java.util.*"%>
<!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">
</head>
<body>
<h3>Registro Usuario.- </h3>
<form action="check.jsp">
Nombre:<input type="text" name="nombre" value="<%=cookie%>" /><br>
Pass:<input type="password" name="pass" value="" /><br>
<input type="submit" value="Enviar" /><br>
<input type="reset" value="Limpiar" /><br>
</form>
</body>
</html>
CHECK.JSP (1/3 p)
Consideramos que hay un único usuario administrador con login “admin” y password “admin”.Si la validación no es
correcta de redirige al fichero error.jsp con dos parámetros uno indica el código y otro el texto a visualizar.
<%@page import="java.lang.*,java.util.*"%>
<%
%>
Profesor: Juan Antonio López Quesada.
Ciclo Formativo de Grado Superior: IAW
WEB: http://dis.um.es/~lopezquesada
Pag. 8
ERROR.JSP (1/3 p)
Se recoge dos parámetros indicando el primero el código de error y con el segundo el texto explicativo.
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="java.lang.*,java.util.*"%>
<!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>JSP Page</title>
</head>
<body>
<%
%>
ESCRITORIO_ADMIN.JSP (1/3 p)
Poner el código que permita que un usuario que no se ha validado no pueda acceder a la página
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<!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>JSP Page</title>
</head>
<body>
<h3>Escritorio del Administrador</h3>
<%
%>
…. Resto de la página
</body>
</html>