O salto de login na memória pode ser digitado para conveniência do usuário
getHeader("Referer"); O método é simples, mas não pode lidar com os parâmetros do post. Eles foram originalmente usados em struts e webwork, para facilitar o entendimento, ele foi reescrito no método jsp
. ------- ------------------------------------------- ------- ------------------------------------------- -------
member.jsp //página de acesso restrito à sessão
<%
String URL = ""
if(session.getAttribute("nomedeusuário")==nulo)
{
url = myRedirect.dealurl(request); //Registre o endereço atual e os parâmetros de solicitação, dealurl processa o URL real para evitar interferência com o URL solicitado, pois haverá caracteres &
response.sendRedirect("weblogin.jsp?url="+url);//Redireciona para a página de login
}
%>
-------------------------------------------------- ----------------------------------------
weblogin.jsp
<%
String url = request.getParameter("url");
String userid =request.getParameter("userid");
String senha =request.getParameter("senha");
if(userid!=null) //Se você estiver fazendo login e enviando, execute o seguinte código
{
if (login bem-sucedido)
{
session.setAttribute("userid",userid);
out.println("<script>alert('Login bem-sucedido, obrigado por visitar');self.location.href='"+myRedirect.geturl(url)+"';</script>");//Redirecionar para a primeira vez O URL solicitado, .geturl(url) converte o endereço convertido novamente no URL real.
}outro{
out.println("<script>alert('Nome de usuário ou senha incorretos');history.back();</script>");
}
}else{//Se não for um envio de login, a interface de login atual será exibida.
%>
<table width="311" height="162" border="0" align="center" cellpadding="0" cellpacing="0">
<tr>
<td width="311" height="162" align="center"> Você ainda não está logado, faça login primeiro<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">Número da conta:</td>
<td width="99" valign="bottom"><input name="userid" type="text" class="textstyle" id="userid" size="12" style="height:20"></ td>
</tr>
<tr>
<td>Senha:</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="Enviar" value="Login">
<a href="reg.jsp" target="_blank">Não registrado</a></td>
</tr>
<tr alinhar="centro">
<td colspan="2" class="font14"><strong><a href="#" onclick="MM_openBrWindow('requestpwd.jsp','pwd','width=300,height=200');return false;">Recuperar senha</a></strong></td>
</tr>
<input name="url" type="hidden" value="<%=url%>">É necessário que haja um oculto aqui para salvá-lo, caso contrário o envio será perdido.
</form>
</tabela>
</td>
</tr>
</tabela>
<%
}
%>
------------------------------------------------ -------------------------------------------------- -----
myRedirect.java
com.util;
importar javax.servlet.http.HttpServletRequest;
import java.util.Enumeration;
public class myRedirect //Classe de conversão para url
{
dealurl de string estática pública (solicitação HttpServletRequest)
{
Stringurl = "";
url = request.getRequestURL()+"?";
url +=param(solicitação);
if(url.indexOf("&")>-1)
url=url.replaceAll("&","@#@");//Na verdade, ele converte caracteres com & em @#@
url de retorno;
}
public static String geturl(String url) //Este é o método de restauração
{
if(url.indexOf("@#@")>-1)
url=url.replaceAll("@#@","&");
url de retorno;
}
parâmetro de String estática pública (solicitação HttpServletRequest)
{
Stringurl = "";
Enumeration param = request.getParameterNames();//Obter todos os nomes de parâmetros
enquanto(param.hasMoreElements())
{
String pname = param.nextElement().toString();
url += pname+"="+request.getParameter(pname)+"&";
}
if(url.endsWith("&"))
{
url = url.substring(0,url.lastIndexOf("&"));
}
url de retorno;
}
}
Desta forma, o navegador irá automaticamente para o endereço que o usuário acabou de solicitar ao fazer login.