Для удобства пользователя можно ввести переход к входу в память.
getHeader("Referer"); Метод прост, но не может обрабатывать параметры сообщения. Первоначально они использовались в стойках и веб-версиях. Чтобы упростить понимание, он был переписан в метод jsp
------- ------- ------------------------------------------- ------- ------------------------------------------- -------
member.jsp //страница с ограниченным доступом к сеансу
<%
Строковый URL = ""
if(session.getAttribute("имя пользователя")==null)
{
url = myRedirect.dealurl(request);//Записываем текущий адрес и параметры запроса, Dealurl обрабатывает фактический URL-адрес, чтобы избежать взаимодействия с запрошенным URL-адресом, поскольку там будут символы &
response.sendRedirect("weblogin.jsp?url="+url);//Перенаправление на страницу входа
}
%>
-------------------------------------------------- ---------------------------------------
weblogin.jsp
<%
Строка URL = request.getParameter("url");
Строка userid =request.getParameter("userid");
Строковый пароль =request.getParameter("пароль");
if(userid!=null) //Если вы входите в систему и отправляете заявку, выполните следующий код
{
if (вход успешный)
{
session.setAttribute("userid",userid);
out.println("<script>alert('Вход выполнен успешно, спасибо за посещение');self.location.href='"+myRedirect.geturl(url)+"';</script>");//Redirect в первый раз Запрошенный URL-адрес .geturl(url) преобразует преобразованный адрес обратно в реальный URL-адрес.
}еще{
out.println("<script>alert('Имя пользователя или пароль неверны');history.back();</script>");
}
}else{//Если это не запрос на вход в систему, будет отображен текущий интерфейс входа.
%>
<table width="311" height="162" border="0" align="center" cellpadding="0" cellpacing="0">
<тр>
<td width="311" height="162" align="center"> Вы еще не вошли в систему, пожалуйста, сначала войдите<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();">
<тр>
<td width="41" height="33" valign="bottom">Номер аккаунта:</td>
<td width="99" valign="bottom"><input name="userid" type="text" class="textstyle" id="userid" size="12" style="height:20"></ тд>
</tr>
<тр>
<td>Пароль:</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="Login">
<a href="reg.jsp" target="_blank">Не зарегистрирован</a>
</tr>
<tr align="center">
<td colspan="2" class="font14"><strong><a href="#" onclick="MM_openBrWindow('requestpwd.jsp','pwd','width=300,height=200');return false;">Получить пароль</a></strong></td>
</tr>
<input name="url" type="hidden" value="<%=url%>">Здесь должен быть скрытый файл, чтобы его сохранить, иначе отправленное сообщение будет потеряно.
</форма>
</таблица>
</td>
</tr>
</таблица>
<%
}
%>
------------------------------------------------ -------------------------------------------------- -----
myRedirect.java
com.util;
импорт javax.servlet.http.HttpServletRequest;
import java.util.Enumeration
public class myRedirect //Класс преобразования для URL-адреса;
{
публичная статическая строка Dealurl (запрос HttpServletRequest)
{
Строковый URL = "";
url = request.getRequestURL()+"?";
URL + = параметр (запрос);
если(url.indexOf("&")>-1)
url=url.replaceAll("&","@#@");//Фактически он преобразует символы с & в @#@
обратный URL;
}
public static String geturl(String url)//Это метод восстановления
{
if(url.indexOf("@#@")>-1)
url=url.replaceAll("@#@","&");
обратный URL;
}
общедоступный статический строковый параметр (запрос HttpServletRequest)
{
Строковый URL = "";
Перечисление param = request.getParameterNames();//Получаем все имена параметров
в то время как (param.hasMoreElements())
{
Строка pname = param.nextElement().toString();
url += pname+"="+request.getParameter(pname)+"&";
}
если(url.endsWith("&"))
{
url = url.substring(0,url.lastIndexOf("&"));
}
обратный URL;
}
}
Таким образом, браузер автоматически перейдет по адресу, который пользователь только что запросил при входе в систему.