demande 1.1
*Récupérez l'objet d'application en jsp tel que : getServletContext().setAttribute("counter",new mycount.Counter());
Par exemple : <jsp:useBean scope="application" id="counter" class="mycounter.Counter"/>
*La méthode de gestion des événements Au démarrage de l'application et Au démarrage de la session dans jsp utilise la classe HttpSessionBindingListener.
Ajouter une séance :
session.putValue("bingdings.listener",new MyListener(getServletContext());
Définissez la classe MyListener :
importer javax.servlet.http.* ;
importer javax.servlet.* ;
la classe publique MyListener implémente HttpSessionBindingListener{
Contexte ServletContext ;
public MyListener (contexte ServletContext){
this.context=contexte;
}
public void valueBound (événement HttpSessionBindingEvent) {
System.out.println("valuebound:quelqu'un vient de lier mon auditeur à une session !");
}
public void valueUnbound (événement HttpSessionBindingEvent){
System.out.println("valueunbound:quelqu'un vient de délier mon auditeur !");
}
}
1.2 demande
*Obtenir l'adresse URL absolue d'un fichier jsp/servlet en cours d'exécution
Stringf file=request.getRequestURL();
if(requet.getQueryString()!=null{
file+='?'+request.getqueryString();
}
URL reconstructedURL=nouvelle URL(request.getScheme(),request.getServerName(),request.getServerPort(),file);
out.println(reconstructedURL.toString());
*Obtenir l'url par laquelle le client accède à cette page
String callPage=request.getHeader("Référent");
*Obtenez le chemin réel du script actuel dans le système de fichiers local
request.getRealPath(request.getServletPath());
*Déterminer l'une des multiples soumissions
<input type=submit name="sub" value="up">
<input type=submit name="sub" value="down">
Utilisez request.getParameter("sub"); dans jsp pour distinguer
la réponse 1.3
*Trois méthodes de redirection de pages Web
(1) réponse.sendRedirect (url);
(2)<%response.setStatus(HttpServletResponse.SC_MOVED_PREMANENTLY);
String nowloc="/newpath/index.htm";
réponse.setHeader("Emplacement",newloc);%>
(3)<jsp:forward page="/newpage.jsp"/>
Notez que la méthode ci-dessus ne peut être utilisée qu'avant qu'une sortie n'ait été envoyée au client.
*Désactiver la mise en cache
<%response.setHeader("Cache-Control","no-store");
réponse.setDateHeader("Expire",0);%>
1.4 session
*temps de survie
<%session.setMaxInactiveInterval(300);%>
*Déconnexion
session.invalidate();
1.5 exception
*Gestion des erreurs de servlet dans les pages jsp
protected void sendErrorRedirect (demande HttpServletRequest,
Réponse HttpServletResponse, String errorPageURL, Throwable e)
lance ServletException,IOException{
request.setAttibute("javax.servlet.jsp.jspException",e);
getServletConfig().getServletContext();
getRequestDispatcher(errorPageURL).forward(request,response);
}
public void doPost (requête HttpServletRequest, réponse HttpServletResponse) {
essayer{
//
}
catch(Exception e){essayer{
sendErrorRedirect(request,response,"/jsp/ErrPage.jsp",e);
}catch(Exception e){e.printStackTrace();}
}
}
* Trace de pile d'erreur de sortie dans la page jsp
(1)
<%@ page isErrorPage="true%>
<%
out.println("<pré>");
printWriter pw=response.getWriter();
exception.printStackTrace(pw);
out.println("</pre>");
%>
(2)
<%@ page isErrorPage="true%>
<pré>
<%
exception.printStackTrace(new PrintWriter(out));
%>
</pre>
1.6 Cookies
*Définir les cookies
<%
Cookie moncookie=nouveau Cookie("aName","aValue");
réponse.addCookie(moncookie);
//mycookie.setMaxAge(time);
%>