El salto de inicio de sesión de memoria se puede escribir para comodidad del usuario.
getHeader("Referer"); El método es simple pero no puede manejar los parámetros de publicación. Se usaron originalmente en struts y webwork. Para hacerlo más fácil de entender, se reescribió en el método jsp
. ------- ------------------------------------------- ------- ------------------------------------------- -------
member.jsp //página de acceso restringido a la sesión
<%
URL de cadena = ""
if(session.getAttribute("nombre de usuario")==null)
{
url = myRedirect.dealurl(request);// Registre la dirección actual y los parámetros de solicitud, dealurl procesa la URL real para evitar interferencias con la URL solicitada, porque habrá caracteres &
Response.sendRedirect("weblogin.jsp?url="+url);//Redirigir a la página de inicio de sesión
}
%>
-------------------------------------------------- ----------------------------------------
weblogin.jsp
<%
URL de cadena = request.getParameter("url");
Cadena ID de usuario =request.getParameter("ID de usuario");
Contraseña de cadena =request.getParameter("contraseña");
if(userid!=null) //Si inicia sesión y envía, ejecute el siguiente código
{
si (iniciar sesión correctamente)
{
session.setAttribute("ID de usuario", ID de usuario);
out.println("<script>alert('Inicio de sesión exitoso, gracias por visitarnos');self.location.href='"+myRedirect.geturl(url)+"';</script>");//Redirect a la primera vez La URL solicitada, .geturl(url) convierte la dirección convertida nuevamente en la URL real.
}demás{
out.println("<script>alert('El nombre de usuario o la contraseña son incorrectos');history.back();</script>");
}
}else{//Si no se trata de un envío de inicio de sesión, se mostrará la interfaz de inicio de sesión actual.
%>
<table width="311" height="162" border="0" align="center" cellpadding="0" cellspace="0">
<tr>
<td width="311" height="162" align="center"> Aún no has iniciado sesión, inicia sesión primero<br>
<table width="155" border="0" cellpadding="0" cellspace="5" class="font12">
<formulario nombre="loginfrm" action="weblogin.jsp" método="post" id="loginfrm" onSubmit="return checkfrm();">
<tr>
<td width="41" height="33" valign="bottom">Número de cuenta:</td>
<td width="99" valign="bottom"><nombre de entrada="userid" type="text" class="textstyle" id="userid" size="12" style="height:20"></ td>
</tr>
<tr>
<td>Contraseña:</td>
<td><nombre de entrada="contraseña" tipo="contraseña" clase="estilo de texto" id="contraseña" tamaño="12" estilo="alto:20;ancho:94"></td>
</tr>
<tr align="centro" valign="abajo">
<td height="21" colspan="2"> <tipo de entrada="enviar" nombre="Enviar" valor="Iniciar sesión">
<a href="reg.jsp" target="_blank">No registrado</a>
</tr>
<tr align="centro">
<td colspan="2" class="font14"><strong><a href="#" onclick="MM_openBrWindow('requestpwd.jsp','pwd','width=300,height=200');return false;">Recuperar contraseña</a></strong></td>
</tr>
<input name="url" type="hidden" value="<%=url%>">Es necesario que haya un elemento oculto aquí para guardarlo; de lo contrario, el envío se perderá.
</formulario>
</tabla>
</td>
</tr>
</tabla>
<%
}
%>
------------------------------------------------ -------------------------------------------------- -----
myRedirect.java
com.util;
importar javax.servlet.http.HttpServletRequest;
import java.util.Enumeration;
clase pública myRedirect //Clase de conversión para URL
{
URL de cadena estática pública (solicitud HttpServletRequest)
{
URL de cadena = "";
url = solicitud.getRequestURL()+"?";
URL +=param(solicitud);
si(url.indexOf("&")>-1)
url=url.replaceAll("&","@#@");//De hecho, convierte caracteres con & en @#@
URL de retorno;
}
public static String geturl(String url)//Este es el método de restauración
{
si(url.indexOf("@#@")>-1)
url=url.replaceAll("@#@","&");
URL de retorno;
}
parámetro de cadena estática pública (solicitud HttpServletRequest)
{
URL de cadena = "";
Param de enumeración = request.getParameterNames();//Obtener todos los nombres de los parámetros
mientras (param.hasMoreElements())
{
Cadena pname = param.nextElement().toString();
url += pname+"="+request.getParameter(pname)+"&";
}
si(url.endsWith("&"))
{
url = url.substring(0,url.lastIndexOf("&"));
}
URL de retorno;
}
}
De esta forma, el navegador irá automáticamente a la dirección que el usuario acaba de solicitar al iniciar sesión.