Le saut de connexion à la mémoire peut être tapé pour la commodité de l'utilisateur
getHeader("Referer"); La méthode est simple mais ne peut pas gérer les paramètres de post. Ils étaient à l'origine utilisés dans struts et webwork. Afin de la rendre plus facile à comprendre, elle a été réécrite en méthode jsp
-------. ------- ----------------------------------------------- ------- ----------------------------------------------- -------
member.jsp //page d'accès restreint à la session
<%
URL de chaîne = ""
if(session.getAttribute("username")==null)
{
url = myRedirect.dealurl(request);//Enregistrez l'adresse actuelle et les paramètres de la demande, dealurl traite l'URL réelle pour éviter toute interférence avec l'URL demandée, car il y aura des caractères &
réponse.sendRedirect("weblogin.jsp?url="+url);//Redirection vers la page de connexion
}
%>
-------------------------------------------------- ---------------------------------------------
weblogin.jsp
<%
Chaîne url = request.getParameter("url");
String userid =request.getParameter("userid");
Chaîne mot de passe =request.getParameter("mot de passe");
if(userid!=null) //Si vous vous connectez et soumettez, exécutez le code suivant
{
if (connexion réussie)
{
session.setAttribute("userid",userid);
out.println("<script>alert('Connexion réussie, merci de votre visite');self.location.href='"+myRedirect.geturl(url)+"';</script>");//Redirect à la première fois L'URL demandée, .geturl(url) reconvertit l'adresse convertie en l'URL réelle.
}autre{
out.println("<script>alert('Le nom d'utilisateur ou le mot de passe est incorrect');history.back();</script>");
}
}else{//S'il ne s'agit pas d'une soumission de connexion, l'interface de connexion actuelle sera affichée.
%>
<table width="311" height="162" border="0" align="center" cellpadding="0" cellpacing="0">
<tr>
<td width="311" height="162" align="center"> Vous n'êtes pas encore connecté, veuillez d'abord vous connecter<br>
<table width="155" border="0" cellpadding="0" cellpacing="5" class="font12">
<form name="loginfrm" action="weblogin.jsp" method="post" id="loginfrm" onSubmit="return checkfrm();">
<tr>
<td width="41" height="33" valign="bottom">Numéro de compte :</td>
<td width="99" valign="bottom"><input name="userid" type="text" class="textstyle" id="userid" size="12" style="height:20"></ td>
</tr>
<tr>
<td>Mot de passe :</td>
<td><input name="password" type="password" class="textstyle" id="password" size="12" style="height:20;width:94"></td>
</tr>
<tr align="center" valign="bottom">
<td height="21" colspan="2"> <input type="submit" name="Submit" value="Connexion">
<a href="reg.jsp" target="_blank">Non enregistré</a>
</tr>
<tr align="centre">
<td colspan="2" class="font14"><strong><a href="#" onclick="MM_openBrWindow('requestpwd.jsp','pwd','width=300,height=200');return false;">Récupérer le mot de passe</a></strong></td>
</tr>
<input name="url" type="hidden" value="<%=url%>">Il doit y avoir un élément caché ici pour l'enregistrer, sinon la soumission sera perdue.
</form>
</table>
</td>
</tr>
</table>
<%
}
%>
------------------------------------------------ -------------------------------------------------- -----
package
myRedirect.java
com.util ;importer javax.servlet.http.HttpServletRequest ;
import java.util.Enumeration;
classe publique myRedirect //Classe de conversion pour l'URL
{
public static String dealurl (demande HttpServletRequest)
{
URL de chaîne = "" ;
url = request.getRequestURL()+"?";
url +=param(demande);
si(url.indexOf("&")>-1)
url=url.replaceAll("&","@#@");//En fait, il convertit les caractères avec & en @#@
URL de retour ;
}
public static String geturl (String url) // Ceci est la méthode de restauration
{
si(url.indexOf("@#@")>-1)
url=url.replaceAll("@#@","&");
URL de retour ;
}
paramètre de chaîne statique public (demande HttpServletRequest)
{
URL de chaîne = "" ;
Param d'énumération = request.getParameterNames();//Obtenir tous les noms de paramètres
tandis que (param.hasMoreElements())
{
String pname = param.nextElement().toString();
url += pname+"="+request.getParameter(pname)+"&";
}
si(url.endsWith("&"))
{
url = url.substring(0,url.lastIndexOf("&"));
}
URL de retour ;
}
}
De cette manière, le navigateur accèdera automatiquement à l'adresse que l'utilisateur vient de demander lors de sa connexion.