1.1 aplicación
*Obtener el objeto de la aplicación en jsp como por ejemplo: getServletContext().setAttribute("counter",new mycount.Counter());
Por ejemplo: <jsp:useBean alcance="aplicación" id="contador" clase="micontador.Contador"/>
*El método de manejo de eventos Al iniciar la aplicación y Al iniciar la sesión en jsp utiliza la clase HttpSessionBindingListener.
Agregar sesión:
session.putValue("bingdings.listener",new MyListener(getServletContext());
Definir la clase MiListener:
importar javax.servlet.http.*;
importar javax.servlet.*;
la clase pública MyListener implementa HttpSessionBindingListener{
contexto de ServletContexto;
público MyListener (contexto ServletContext) {
this.context=contexto;
}
valor vacío públicoBound (evento HttpSessionBindingEvent) {
System.out.println("valuebound:¡alguien acaba de vincular a mi oyente a una sesión!");
}
valor vacío públicoUnbound (evento HttpSessionBindingEvent) {
System.out.println("valueunbound:¡alguien acaba de liberar a mi oyente!");
}
}
1.2 solicitud
*Obtener la dirección URL absoluta de un archivo jsp/servlet en ejecución
Archivo Stringf=request.getRequestURL();
si(requet.getQueryString()!=null{
archivo+='?'+request.getqueryString();
}
URL reconstruidaURL=nueva URL(request.getScheme(),request.getServerName(),request.getServerPort(),file);
out.println(reconstructedURL.toString());
*Obtener la url por la que el cliente accede a esta página
String callPage=request.getHeader("Referente");
*Obtener la ruta real del script actual en el sistema de archivos local
request.getRealPath(request.getServletPath());
*Determinar uno de múltiples envíos
<tipo de entrada=enviar nombre="sub" valor="arriba">
<tipo de entrada=enviar nombre="sub" valor="abajo">
Utilice request.getParameter("sub"); en jsp para distinguir
la respuesta 1.3.
*Tres métodos de redirección de páginas web
(1)respuesta.enviarRedirect(url);
(2)<%response.setStatus(HttpServletResponse.SC_MOVED_PREMANENTLY);
Cadena nowloc="/newpath/index.htm";
respuesta.setHeader("Ubicación",newloc);%>
(3)<jsp:forward page="/newpage.jsp"/>
Tenga en cuenta que el método anterior solo se puede utilizar antes de que se haya enviado cualquier resultado al cliente.
*Desactivar el almacenamiento en caché
<%response.setHeader("Control de caché","no-almacenamiento");
respuesta.setDateHeader("Expires",0);%>
1.4 sesión
*tiempo de supervivencia
<%session.setMaxInactiveInterval(300);%>
*Cerrar sesión
sesión.invalidate();
1.5 excepción
*Manejo de errores de Servlet en páginas jsp
protegido vacío sendErrorRedirect (solicitud HttpServletRequest,
Respuesta HttpServletResponse,String errorPageURL,Throwable e)
lanza ServletException,IOException{
request.setAttibute("javax.servlet.jsp.jspException",e);
getServletConfig().getServletContext();
getRequestDispatcher(errorPageURL).forward(solicitud,respuesta);
}
public void doPost (solicitud HttpServletRequest, respuesta HttpServletResponse) {
intentar{
//
}
atrapar (Excepción e) {intentar {
sendErrorRedirect(solicitud,respuesta,"/jsp/ErrPage.jsp",e);
}catch(Excepción e){e.printStackTrace();}
}
}
* Seguimiento de pila de error de salida en la página jsp
(1)
<%@ página isErrorPage="true%>
<%
out.println("<pre>");
printWriter pw=response.getWriter();
excepción.printStackTrace(pw);
out.println("</pre>");
%>
(2)
<%@ página isErrorPage="true%>
<pre>
<%
excepción.printStackTrace(nuevo PrintWriter(fuera));
%>
</pre>
1.6 Cookies
*Establecer cookies
<%
Cookie micookie=nueva Cookie("unNombre","unValor");
respuesta.addCookie(micookie);
//mycookie.setMaxAge(hora);
%>